GetInternalVxs() public method

public GetInternalVxs ( ) : VertexStore
return VertexStore
Exemplo n.º 1
0
        public void Render(VertexStoreSnap vertexSource, double x, double y, ColorRGBA color)
        {
            var inputVxs = vertexSource.GetInternalVxs();
            var vxs      = Affine.TranslateTransformToVxs(vertexSource, x, y);//Affine.NewTranslation(x, y).TransformToVxs (inputVxs);

            Render(vxs, color);
        }
        public void AddPath(VertexStoreSnap snap)
        {
            double x = 0;
            double y = 0;

            if (m_cellAARas.Sorted)
            {
                Reset();
            }

            if (snap.VxsHasMoreThanOnePart)
            {
                //****
                //render all parts
                VertexStore vxs = snap.GetInternalVxs();
                int         j   = vxs.Count;

                for (int i = 0; i < j; ++i)
                {
                    var cmd = vxs.GetVertex(i, out x, out y);
                    if (cmd != VertexCmd.Stop)
                    {
                        AddVertex(cmd, x, y);
                    }
                }
            }
            else
            {
                VertexSnapIter snapIter = snap.GetVertexSnapIter();
                VertexCmd      cmd;
                int            dbugVertexCount = 0;

                while ((cmd = snapIter.GetNextVertex(out x, out y)) != VertexCmd.Stop)
                {
                    dbugVertexCount++;
                    AddVertex(cmd, x, y);
                }
            }
        }
Exemplo n.º 3
0
        public void AddPath(VertexStoreSnap snap)
        {

            double x = 0;
            double y = 0;

            if (m_cellAARas.Sorted) { Reset(); }
            //--------------------------------------------
            if (snap.VxsHasMoreThanOnePart)
            {
                var vxs = snap.GetInternalVxs();
                int j = vxs.Count;
                for (int i = 0; i < j; ++i)
                {
                    var cmd = vxs.GetVertex(i, out x, out y);
                    switch (cmd)
                    {
                        case VertexCmd.Stop:
                            {
                                //stop 
                            } break;
                        case VertexCmd.MoveTo:
                            {
                                MoveTo(x, y);
                            } break;
                        case VertexCmd.LineTo: 
                        case VertexCmd.P2c: 
                        case VertexCmd.P3c:
                            { 
                                //curve must be flatten before using here
                                LineTo(x, y);
                            } break;
                        default:
                            {
                                if (VertexHelper.IsClose(cmd))
                                {
                                    ClosePolygon();
                                }
                            } break;
                    }
                }
            }
            else
            {
                var snapIter = snap.GetVertexSnapIter();
                VertexCmd cmd;
                bool stop = false;
                while (!stop)
                {
                    cmd = snapIter.GetNextVertex(out x, out y);
                    switch (cmd)
                    {
                        case VertexCmd.Stop:
                            {
                                stop = true;
                            } break;
                        case VertexCmd.MoveTo:
                            {
                                MoveTo(x, y);
                            } break;
                        case VertexCmd.LineTo: 
                        case VertexCmd.P2c: 
                        case VertexCmd.P3c:
                            {
                                LineTo(x, y);
                            } break;
                        default:
                            {
                                if (VertexHelper.IsClose(cmd))
                                {
                                    ClosePolygon();
                                }
                            } break;
                    }
                }
            }

        }
Exemplo n.º 4
0
 internal VertexSnapIter(VertexStoreSnap vsnap)
 {
     this.vxs = vsnap.GetInternalVxs();
     this.currentIterIndex = vsnap.StartAt;
 }
Exemplo n.º 5
0
 internal VertexSnapIter(VertexStoreSnap vsnap)
 {
     this.vxs = vsnap.GetInternalVxs();
     this.currentIterIndex = vsnap.StartAt;
 }
        /// <summary>
        /// we do NOT store snap ***
        /// </summary>
        /// <param name="snap"></param>
        public void AddPath(VertexStoreSnap snap)
        {
            //-----------------------------------------------------
            //*** we extract vertext command and coord(x,y) from
            //the snap but not store the snap inside rasterizer
            //-----------------------------------------------------

            double x = 0;
            double y = 0;
            if (m_cellAARas.Sorted) { Reset(); }
            float offsetOrgX = OffsetOriginX;
            float offsetOrgY = OffsetOriginY;

            if (snap.VxsHasMoreThanOnePart)
            {
                //****
                //render all parts
                VertexStore vxs = snap.GetInternalVxs();
                int j = vxs.Count;
                for (int i = 0; i < j; ++i)
                {
                    var cmd = vxs.GetVertex(i, out x, out y);
                    if (cmd != VertexCmd.Stop)
                    {
                        AddVertex(cmd, x + offsetOrgX, y + offsetOrgY);
                    }
                }
            }
            else
            {
                VertexSnapIter snapIter = snap.GetVertexSnapIter();
                VertexCmd cmd;
#if DEBUG
                int dbugVertexCount = 0;
#endif
                while ((cmd = snapIter.GetNextVertex(out x, out y)) != VertexCmd.Stop)
                {
#if DEBUG
                    dbugVertexCount++;
#endif
                    AddVertex(cmd, x + offsetOrgX, y + offsetOrgY);
                }
            }
        }