Class MeshInsertUVPolyCurve
Cut mesh with a path of 2D line segments
Assumptions:
- mesh vertex x/y coordinates are 2D coordinates we want to use. Replace PointF if this is not the case.
- segments of Curve lie entirely within UV-triangles
Limitations:
- currently not robust to near-parallel line segments that are within epsilon-band of the
input loop. In this case, we will include all such segments in the 'cut' set, but we
will probably not be able to find a connected path through them.
- not robust to degenerate geometry. Strongly recommend that you use Validate() and/or
preprocess the input mesh to remove degenerate faces/edges
Inheritance
MeshInsertUVPolyCurve
Namespace: g3
Assembly: cs.temp.dll.dll
Syntax
public class MeshInsertUVPolyCurve
Constructors
MeshInsertUVPolyCurve(DMesh3, Polygon2d)
Declaration
public MeshInsertUVPolyCurve(DMesh3 mesh, Polygon2d loop)
Parameters
MeshInsertUVPolyCurve(DMesh3, PolyLine2d)
Declaration
public MeshInsertUVPolyCurve(DMesh3 mesh, PolyLine2d path)
Parameters
MeshInsertUVPolyCurve(DMesh3, PolyLine2d, Boolean)
Declaration
public MeshInsertUVPolyCurve(DMesh3 mesh, PolyLine2d curve, bool isLoop = false)
Parameters
Fields
Curve
Declaration
Field Value
CurveVertices
Declaration
public int[] CurveVertices
Field Value
EnableCutSpansAndLoops
Declaration
public bool EnableCutSpansAndLoops
Field Value
IsLoop
Declaration
Field Value
Loops
Declaration
public List<EdgeLoop> Loops
Field Value
Mesh
Declaration
Field Value
OnCutEdges
Declaration
public HashSet<int> OnCutEdges
Field Value
Type |
Description |
HashSet<Int32> |
|
PointF
Declaration
public Func<int, Vector2d> PointF
Field Value
SetPointF
Declaration
public Action<int, Vector2d> SetPointF
Field Value
Spans
Declaration
public List<EdgeSpan> Spans
Field Value
SpatialEpsilon
Declaration
public double SpatialEpsilon
Field Value
UseTriSpatial
Declaration
public bool UseTriSpatial
Field Value
Methods
Apply()
Declaration
public virtual bool Apply()
Returns
Simplify()
Generally after calling Apply(), we have over-triangulated the mesh, because we have split
the original edges multiple times, etc. This function will walk the edges and collapse
the unnecessary edges/vertices along the inserted loops.
Declaration
Validate(Double)
Declaration
public virtual ValidationStatus Validate(double fDegenerateTol = 9.9999999747524271E-07)
Parameters
Type |
Name |
Description |
Double |
fDegenerateTol |
|
Returns