public void GenerateInternal(TilingConfig config, Polytope.Projection projection = Polytope.Projection.FaceCentered) { this.TilingConfig = config; // Create a base tile. Tile tile = CreateBaseTile(config); // Handle edge/vertex centered projections. if (projection == Polytope.Projection.VertexCentered) { Mobius mobius = config.VertexCenteredMobius(); tile.Transform(mobius); } else if (projection == Polytope.Projection.EdgeCentered) { Mobius mobius = config.EdgeMobius(); tile.Transform(mobius); } TransformAndAdd(tile); List <Tile> tiles = new List <Tile>(); tiles.Add(tile); Dictionary <Vector3D, bool> completed = new Dictionary <Vector3D, bool>(); completed[tile.Boundary.Center] = true; ReflectRecursive(tiles, completed); FillOutIsometries(tile, m_tiles, config.Geometry); FillOutIncidences(); }
public void GenerateInternal( TilingConfig config, Polytope.Projection projection = Polytope.Projection.FaceCentered ) { this.TilingConfig = config; // Create a base tile. Tile tile = CreateBaseTile( config ); // Handle edge/vertex centered projections. if( projection == Polytope.Projection.VertexCentered ) { Mobius mobius = config.VertexCenteredMobius(); tile.Transform( mobius ); } else if( projection == Polytope.Projection.EdgeCentered ) { Mobius mobius = config.EdgeMobius(); tile.Transform( mobius ); } TransformAndAdd( tile ); List<Tile> tiles = new List<Tile>(); tiles.Add( tile ); Dictionary<Vector3D,bool> completed = new Dictionary<Vector3D,bool>(); completed[tile.Boundary.Center] = true; ReflectRecursive( tiles, completed ); FillOutIsometries( tile, m_tiles, config.Geometry ); FillOutIncidences(); }