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); } } }
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; } } } }
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); } } }