Method | Description | |
---|---|---|
AddEdgeVertex ( LibTessDotNet.MeshUtils.Edge eOrg ) : LibTessDotNet.MeshUtils.Edge |
Creates a new edge such that eNew == eOrg.Lnext and eNew.Dst is a newly created vertex. eOrg and eNew will have the same left face.
|
|
Connect ( LibTessDotNet.MeshUtils.Edge eOrg, LibTessDotNet.MeshUtils.Edge eDst ) : LibTessDotNet.MeshUtils.Edge |
Creates a new edge from eOrg->Dst to eDst->Org, and returns the corresponding half-edge eNew. If eOrg->Lface == eDst->Lface, this splits one loop into two, and the newly created loop is eNew->Lface. Otherwise, two disjoint loops are merged into one, and the loop eDst->Lface is destroyed. If (eOrg == eDst), the new face will have only two edges. If (eOrg->Lnext == eDst), the old face is reduced to a single edge. If (eOrg->Lnext->Lnext == eDst), the old face is reduced to two edges.
|
|
Delete ( LibTessDotNet.MeshUtils.Edge eDel ) : void |
Removes the edge eDel. There are several cases: if (eDel->Lface != eDel->Rface), we join two loops into one; the loop eDel->Lface is deleted. Otherwise, we are splitting one loop into two; the newly created loop will contain eDel->Dst. If the deletion of eDel would create isolated vertices, those are deleted as well.
|
|
MakeEdge ( ) : LibTessDotNet.MeshUtils.Edge |
Creates one edge, two vertices and a loop (face). The loop consists of the two new half-edges.
|
|
MergeConvexFaces ( int maxVertsPerFace ) : void | ||
Mesh ( ) : System | ||
OnFree ( ) : void | ||
Reset ( ) : void | ||
Splice ( LibTessDotNet.MeshUtils.Edge eOrg, LibTessDotNet.MeshUtils.Edge eDst ) : void |
Splice is the basic operation for changing the mesh connectivity and topology. It changes the mesh so that eOrg->Onext = OLD( eDst->Onext ) eDst->Onext = OLD( eOrg->Onext ) where OLD(...) means the value before the meshSplice operation. This can have two effects on the vertex structure: - if eOrg->Org != eDst->Org, the two vertices are merged together - if eOrg->Org == eDst->Org, the origin is split into two vertices In both cases, eDst->Org is changed and eOrg->Org is untouched. Similarly (and independently) for the face structure, - if eOrg->Lface == eDst->Lface, one loop is split into two - if eOrg->Lface != eDst->Lface, two distinct loops are joined into one In both cases, eDst->Lface is changed and eOrg->Lface is unaffected. Some special cases: If eDst == eOrg, the operation has no effect. If eDst == eOrg->Lnext, the new face will have a single edge. If eDst == eOrg->Lprev, the old face will have a single edge. If eDst == eOrg->Onext, the new vertex will have a single edge. If eDst == eOrg->Oprev, the old vertex will have a single edge.
|
|
SplitEdge ( LibTessDotNet.MeshUtils.Edge eOrg ) : LibTessDotNet.MeshUtils.Edge |
Splits eOrg into two edges eOrg and eNew such that eNew == eOrg.Lnext. The new vertex is eOrg.Dst == eNew.Org. eOrg and eNew will have the same left face.
|
|
ZapFace ( LibTessDotNet.MeshUtils.Face fZap ) : void |
Destroys a face and removes it from the global face list. All edges of fZap will have a NULL pointer as their left face. Any edges which also have a NULL pointer as their right face are deleted entirely (along with any isolated vertices this produces). An entire mesh can be deleted by zapping its faces, one at a time, in any order. Zapped faces cannot be used in further mesh operations!
|
Method | Description | |
---|---|---|
Check ( ) : void |
public AddEdgeVertex ( LibTessDotNet.MeshUtils.Edge eOrg ) : LibTessDotNet.MeshUtils.Edge | ||
eOrg | LibTessDotNet.MeshUtils.Edge | |
return | LibTessDotNet.MeshUtils.Edge |
public Connect ( LibTessDotNet.MeshUtils.Edge eOrg, LibTessDotNet.MeshUtils.Edge eDst ) : LibTessDotNet.MeshUtils.Edge | ||
eOrg | LibTessDotNet.MeshUtils.Edge | |
eDst | LibTessDotNet.MeshUtils.Edge | |
return | LibTessDotNet.MeshUtils.Edge |
public Delete ( LibTessDotNet.MeshUtils.Edge eDel ) : void | ||
eDel | LibTessDotNet.MeshUtils.Edge | |
return | void |
public MakeEdge ( ) : LibTessDotNet.MeshUtils.Edge | ||
return | LibTessDotNet.MeshUtils.Edge |
public MergeConvexFaces ( int maxVertsPerFace ) : void | ||
maxVertsPerFace | int | |
return | void |
public Splice ( LibTessDotNet.MeshUtils.Edge eOrg, LibTessDotNet.MeshUtils.Edge eDst ) : void | ||
eOrg | LibTessDotNet.MeshUtils.Edge | |
eDst | LibTessDotNet.MeshUtils.Edge | |
return | void |
public SplitEdge ( LibTessDotNet.MeshUtils.Edge eOrg ) : LibTessDotNet.MeshUtils.Edge | ||
eOrg | LibTessDotNet.MeshUtils.Edge | |
return | LibTessDotNet.MeshUtils.Edge |
public ZapFace ( LibTessDotNet.MeshUtils.Face fZap ) : void | ||
fZap | LibTessDotNet.MeshUtils.Face | |
return | void |