VertexCenteredMobius() public method

Returns a Mobius transform that can be used to create a dual {q,p} tiling. This Mobius transform will center the tiling on a vertex.
public VertexCenteredMobius ( ) : Mobius
return R3.Math.Mobius
コード例 #1
0
ファイル: Tiling.cs プロジェクト: remuladgryta/MagicTile
        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();
        }
コード例 #2
0
ファイル: Tiling.cs プロジェクト: roice3/Honeycombs
        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();
        }