Class MeshTrimLoop
Delete triangles inside on/near-surface trimming curve, and then adapt the new
boundary loop to conform to the loop.
[DANGER] To use this class, we require a spatial data structure we can project onto.
Currently we assume that this is a DMesh3AABBTree because if you don't provide a
seed triangle, we use FindNearestTriangle() to find this index on the input mesh.
So, it must be a tree for the exact same mesh (!).
However we then delete a bunch of triangles and use this spatial DS only for reprojection.
Possibly these should be two separate things? Or force caller to provide seed triangle
for trim loop, instead of solving this problem for them?
(But basically there is no way around having a full mesh copy...)
TODO:
- output boundary EdgeLoop that has been aligned w/ trim curve
- handle cases where input mesh has open borders
Namespace: g3
Assembly: cs.temp.dll.dll
Syntax
public class MeshTrimLoop
Constructors
MeshTrimLoop(DMesh3, DCurve3, Vector3d, DMeshAABBTree3)
Declaration
public MeshTrimLoop(DMesh3 mesh, DCurve3 trimline, Vector3d vSeedPt, DMeshAABBTree3 spatial = null)
Parameters
MeshTrimLoop(DMesh3, DCurve3, Int32, DMeshAABBTree3)
Cut mesh with plane. Assumption is that plane normal is Z value.
Declaration
public MeshTrimLoop(DMesh3 mesh, DCurve3 trimline, int tSeedTID, DMeshAABBTree3 spatial = null)
Parameters
Fields
Mesh
Declaration
Field Value
RemeshBorderRings
Declaration
public int RemeshBorderRings
Field Value
RemeshRounds
Declaration
Field Value
SmoothingAlpha
Declaration
public double SmoothingAlpha
Field Value
Spatial
Declaration
public DMeshAABBTree3 Spatial
Field Value
TargetEdgeLength
Declaration
public double TargetEdgeLength
Field Value
TrimLine
Declaration
Field Value
Methods
Trim()
Declaration
public virtual bool Trim()
Returns
Validate()
Declaration
public virtual ValidationStatus Validate()
Returns