public List<Pos3Norm3VertexSDX> GetVertices(D2DGeometry geometry, float height = 24.0f) { List<Pos3Norm3VertexSDX> vertices = new List<Pos3Norm3VertexSDX>(); //Empty mesh if (geometry == null) { Pos3Norm3VertexSDX zero = new Pos3Norm3VertexSDX(); vertices.Add(zero); vertices.Add(zero); vertices.Add(zero); return vertices; } D2DGeometry flattenedGeometry = this.FlattenGeometry(geometry, sc_flatteningTolerance); D2DGeometry outlinedGeometry = this.OutlineGeometry(flattenedGeometry); //Add snap here ExtrudingSink sink = new ExtrudingSink(vertices, height); outlinedGeometry.Simplify(GeometrySimplificationOption.Lines, sink); outlinedGeometry.Tessellate(sink); flattenedGeometry.Dispose(); outlinedGeometry.Dispose(); return vertices; }
public void GetVertices(D2DGeometry geometry, List <Pos3Norm3VertexSDX> vertices, float height = 24.0f) { vertices.Clear(); //Empty mesh if (geometry == null) { Pos3Norm3VertexSDX zero = new Pos3Norm3VertexSDX(); vertices.Add(zero); vertices.Add(zero); vertices.Add(zero); } using (D2DGeometry flattenedGeometry = this.FlattenGeometry(geometry, sc_flatteningTolerance)) { using (D2DGeometry outlinedGeometry = this.OutlineGeometry(flattenedGeometry)) { using (ExtrudingSink sink = new ExtrudingSink(vertices, height)) { outlinedGeometry.Simplify(GeometrySimplificationOption.Lines, sink); outlinedGeometry.Tessellate(sink); } } } }