public BasicConstraint(IRoomShapeGeometry <TConfiguration> roomShapeGeometry, IConfigurationSpaces <TConfiguration> configurationSpaces, ILevelDescription <TNode> mapDescription, bool optimizeCorridors) { this.configurationSpaces = configurationSpaces; this.mapDescription = mapDescription; this.optimizeCorridors = optimizeCorridors; this.roomShapeGeometry = roomShapeGeometry; }
public ConfigurationSpacesGrid2D(ILevelDescription <TNode> levelDescription, ILineIntersection <OrthogonalLineGrid2D> lineIntersection = null) { this.levelDescription = levelDescription; this.lineIntersection = lineIntersection ?? new OrthogonalLineIntersection(); configurationSpacesGenerator = new ConfigurationSpacesGenerator(new PolygonOverlap(), DoorHandler.DefaultHandler, this.lineIntersection, new GridPolygonUtils()); Initialize(); }
public MinimumDistanceConstraint(ILevelDescription <TNode> mapDescription, IRoomShapeGeometry <TConfiguration> roomShapeGeometry, int minimumDistance) { this.mapDescription = mapDescription; this.roomShapeGeometry = roomShapeGeometry; this.minimumDistance = minimumDistance; graph = mapDescription.GetGraph(); }
public CorridorConstraint(ILevelDescription <TNode> mapDescription, IConfigurationSpaces <TConfiguration> configurationSpaces, IRoomShapeGeometry <TConfiguration> roomShapeGeometry) { this.mapDescription = mapDescription; this.configurationSpaces = configurationSpaces; this.roomShapeGeometry = roomShapeGeometry; graphWithoutCorridors = mapDescription.GetGraphWithoutCorridors(); graph = mapDescription.GetGraph(); }
protected AbstractLayoutController(int averageSize, ILevelDescription <TNode> levelDescription, IRoomShapesHandler <TLayout, TNode, TShapeContainer> roomShapesHandler, IRoomShapeGeometry <TConfiguration> roomShapeGeometry) { AverageSize = averageSize; LevelDescription = levelDescription; RoomShapesHandler = roomShapesHandler; RoomShapeGeometry = roomShapeGeometry; StageOneGraph = levelDescription.GetGraphWithoutCorridors(); }
public RoomShapesHandlerGrid2D( TwoWayDictionary <RoomTemplateInstanceGrid2D, IntAlias <PolygonGrid2D> > intAliasMapping, ILevelDescription <TNode> mapDescription, Dictionary <TNode, List <WeightedShape> > shapesForNodes, RoomTemplateRepeatMode?repeatModeOverride = null, RoomTemplateRepeatMode?repeatModeDefault = null) { this.intAliasMapping = intAliasMapping; this.mapDescription = mapDescription; this.shapesForNodes = shapesForNodes; this.repeatModeDefault = repeatModeDefault; this.repeatModeOverride = repeatModeOverride; graphWithoutCorridors = mapDescription.GetGraphWithoutCorridors(); Initialize(); }
public LayoutController( int averageSize, ILevelDescription <TNode> levelDescription, ConstraintsEvaluator <TNode, TConfiguration, TEnergyData> constraintsEvaluator, IRoomShapesHandler <TLayout, TNode, TShapeContainer> roomShapesHandler, bool throwIfRepeatModeNotSatisfied, IConfigurationSpaces <TConfiguration, Vector2Int> simpleConfigurationSpaces, IRoomShapeGeometry <TConfiguration> roomShapeGeometry) : base(averageSize, levelDescription, roomShapesHandler, roomShapeGeometry) { this.constraintsEvaluator = constraintsEvaluator; this.throwIfRepeatModeNotSatisfied = throwIfRepeatModeNotSatisfied; this.simpleConfigurationSpaces = simpleConfigurationSpaces; }
public TwoStageChainDecomposition(ILevelDescription <TNode> mapDescription, IChainDecomposition <TNode> decomposition) { this.mapDescription = mapDescription; this.decomposition = decomposition; }
// TODO: remove when possible public Dictionary <Tuple <TNode, TNode>, IRoomDescription> GetNodesToCorridorMapping <TNode>(ILevelDescription <TNode> mapDescription) { var mapping = new Dictionary <Tuple <TNode, TNode>, IRoomDescription>(); var graph = mapDescription.GetGraph(); foreach (var room in graph.Vertices) { var roomDescription = mapDescription.GetRoomDescription(room); if (roomDescription.IsCorridor) { var neighbors = graph.GetNeighbours(room).ToList(); mapping.Add(new Tuple <TNode, TNode>(neighbors[0], neighbors[1]), roomDescription); mapping.Add(new Tuple <TNode, TNode>(neighbors[1], neighbors[0]), roomDescription); } } return(mapping); }
public LevelDescriptionMapping(ILevelDescription <TNode> levelDescription) { this.levelDescription = levelDescription; roomDescriptions = new IRoomDescription[levelDescription.GetGraph().VerticesCount]; DoMapping(); }