Class EdgeLoop
Sequential set of vertices/edges in a mesh, that form a closed loop.
If all you have are the vertices, use EdgeLoop.VertexLoopToEdgeLoop() to construct an EdgeLoop
Namespace: g3
Assembly: cs.temp.dll.dll
Syntax
Constructors
EdgeLoop(DMesh3)
Declaration
public EdgeLoop(DMesh3 mesh)
Parameters
Type |
Name |
Description |
DMesh3 |
mesh |
|
EdgeLoop(DMesh3, Int32[], Int32[], Boolean)
Declaration
public EdgeLoop(DMesh3 mesh, int[] vertices, int[] edges, bool bCopyArrays)
Parameters
EdgeLoop(EdgeLoop)
Declaration
public EdgeLoop(EdgeLoop copy)
Parameters
Fields
BowtieVertices
Declaration
public int[] BowtieVertices
Field Value
Edges
Declaration
Field Value
Mesh
Declaration
Field Value
Vertices
Declaration
Field Value
Properties
EdgeCount
Declaration
public int EdgeCount { get; }
Property Value
VertexCount
Declaration
public int VertexCount { get; }
Property Value
Methods
CheckValidity(FailMode)
Exhaustively check that verts and edges of this EdgeLoop are consistent. Not for production use.
Declaration
public bool CheckValidity(FailMode eFailMode = FailMode.Throw)
Parameters
Type |
Name |
Description |
FailMode |
eFailMode |
|
Returns
CorrectOrientation()
if this is a border edge-loop, we can check that it is oriented correctly, and
if not, reverse it.
Returns true if we reversed orientation.
Declaration
public bool CorrectOrientation()
Returns
CountWithinTolerance(Vector3d, Double, out Int32)
Declaration
public int CountWithinTolerance(Vector3d v, double tol, out int last_in_tol)
Parameters
Returns
FindNearestVertex(Vector3d)
find index of vertices of loop that is closest to point v
Declaration
public int FindNearestVertex(Vector3d v)
Parameters
Returns
FindVertexIndex(Int32)
find index of vertex vID in Vertices list, or -1 if not found
Declaration
public int FindVertexIndex(int vID)
Parameters
Type |
Name |
Description |
Int32 |
vID |
|
Returns
FromEdges(DMesh3, IList<Int32>)
construct EdgeLoop from a list of edges of mesh
Declaration
public static EdgeLoop FromEdges(DMesh3 mesh, IList<int> edges)
Parameters
Returns
FromVertices(DMesh3, IList<Int32>)
construct EdgeLoop from a list of vertices of mesh
Declaration
public static EdgeLoop FromVertices(DMesh3 mesh, IList<int> vertices)
Parameters
Returns
FromVertices(DMesh3, IList<Int32>, Boolean)
construct EdgeLoop from a list of vertices of mesh
if loop is a boundary edge, we can correct orientation if requested
Declaration
public static EdgeLoop FromVertices(DMesh3 mesh, IList<int> vertices, bool bAutoOrient = true)
Parameters
Returns
GetBounds()
Declaration
public AxisAlignedBox3d GetBounds()
Returns
GetVertex(Int32)
Declaration
public Vector3d GetVertex(int i)
Parameters
Type |
Name |
Description |
Int32 |
i |
|
Returns
GetVertexSpan(Int32, Int32, Int32[], Boolean)
stores vertices [starti, starti+1, ... starti+count-1] in span, and returns span, or null if invalid range
Declaration
public int[] GetVertexSpan(int starti, int count, int[] span, bool reverse = false)
Parameters
Returns
IsBoundaryLoop(DMesh3)
Check if all edges of this loop are boundary edges.
If testMesh != null, will check that mesh instead of internal Mesh
Declaration
public bool IsBoundaryLoop(DMesh3 testMesh = null)
Parameters
Type |
Name |
Description |
DMesh3 |
testMesh |
|
Returns
IsInternalLoop()
check if all edges of this loop are internal edges (ie none on boundary)
Declaration
public bool IsInternalLoop()
Returns
IsSameLoop(EdgeLoop, Boolean, Double)
Declaration
public bool IsSameLoop(EdgeLoop Loop2, bool bReverse2 = false, double tolerance = 1E-08)
Parameters
Returns
Reverse()
Declaration
ToCurve(DMesh3)
Declaration
public DCurve3 ToCurve(DMesh3 sourceMesh = null)
Parameters
Type |
Name |
Description |
DMesh3 |
sourceMesh |
|
Returns
VertexLoopToEdgeLoop(DMesh3, Int32[])
Convert a vertex loop to an edge loop. This should be somewhere else...
Declaration
public static int[] VertexLoopToEdgeLoop(DMesh3 mesh, int[] vertex_loop)
Parameters
Returns