Navigation
API > API/Plugins > API/Plugins/DynamicMesh
FIntrinsicEdgeFlipMesh augments the base class FSimpleIntrinsicEdgeFlipMesh with the addition of a 'normal coordinate' based correspondence with the surface mesh.
This class supports both the trace of intrinsic mesh edges across the surface mesh, and the trace of surface mesh edges across the intrinsic mesh.
Note, because only edge flips are supported (no edge split or triangle pokes), the vertex set of the intrinsic mesh and the surface (i.e. extrinsic) mesh will be the same.
The expected use // generate the implicit mesh from a surface mesh FIntrinsicEdgeFlipMesh ImplicitMesh( DynamicMesh );
.. do some edge flips .. perhaps FlipToDelaunay( ImplicitMesh, ..)
// if only a small percentage of the intrinsic edges are to be traced, this can be done directly as auto TracedIntrinsicEdge = ImplicitMesh.TraceEdge(IntrinsicEdgeID);
// alternately if a large number of edges will be traced, a correspondence will be more efficient. // create a correspondence that allows the edges of the implicit mesh to be traced on the surface mesh
FIntrinsicEdgeFlipMesh::FEdgeCorrespondence Correspondence = ImplicitMesh.ComputeEdgeCorrespondence();
for (.. doing multiple traces.. )
{
// trace desired edge across the surface mesh
int32 IntrinsicEdgeID =
auto TracedIntrinsicEdge = Correspondence.TraceEdge(IntrinsicEdgeID);
}
NB: The lifetime of this structure should not exceed that of the original FDynamicMesh as this class holds a pointer to that mesh to reference locations on its surface. Also, this class isn't currently expected to work with surface meshes that have bow-ties.
Note: This assumes but does not check that the FDynamicMesh3 "Surface Mesh" has consistent orientation of all triangles.
| Name | FIntrinsicEdgeFlipMesh |
| Type | class |
| Header File | /Engine/Plugins/Runtime/GeometryProcessing/Source/DynamicMesh/Public/Operations/IntrinsicTriangulationMesh.h |
| Include Path | #include "Operations/IntrinsicTriangulationMesh.h" |
Syntax
class FIntrinsicEdgeFlipMesh : public UE::Geometry::FSimpleIntrinsicEdgeFlipMesh
Inheritance Hierarchy
- FSimpleIntrinsicEdgeFlipMesh → FIntrinsicEdgeFlipMesh
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
| Operations/IntrinsicTriangulationMesh.h | |||
FIntrinsicEdgeFlipMesh
(
const FDynamicMesh3& SurfaceMesh |
FIntrinsicEdgeFlipMesh Methods | Operations/IntrinsicTriangulationMesh.h | |
FIntrinsicEdgeFlipMesh
(
const FIntrinsicEdgeFlipMesh& |
Operations/IntrinsicTriangulationMesh.h |
Typedefs
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| FEdge | FSimpleIntrinsicEdgeFlipMesh::FEdge | Operations/IntrinsicTriangulationMesh.h | |
| FEdgeAndCrossingIdx | IntrinsicCorrespondenceUtils::FNormalCoordinates::FEdgeAndCrossingIdx | Operations/IntrinsicTriangulationMesh.h | |
| FEdgeCorrespondence | TEdgeCorrespondence< FIntrinsicEdgeFlipMesh > | Operations/IntrinsicTriangulationMesh.h | |
| FEdgeFlipInfo | FSimpleIntrinsicEdgeFlipMesh::FEdgeFlipInfo | Operations/IntrinsicTriangulationMesh.h | |
| FNormalCoordinates | IntrinsicCorrespondenceUtils::FNormalCoordinates | Operations/IntrinsicTriangulationMesh.h | |
| FSurfacePoint | IntrinsicCorrespondenceUtils::FSurfacePoint | Operations/IntrinsicTriangulationMesh.h | |
| MyBase | FSimpleIntrinsicEdgeFlipMesh | Operations/IntrinsicTriangulationMesh.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FEdgeCorrespondence ComputeEdgeCorrespondence() |
Operations/IntrinsicTriangulationMesh.h | ||
EMeshResult FlipEdge
(
int32 EID, |
Flip a single edge in the Intrinsic Mesh. | Operations/IntrinsicTriangulationMesh.h | |
const FDynamicMesh3 * GetExtrinsicMesh() |
Operations/IntrinsicTriangulationMesh.h | ||
TArray< FEdgeAndCrossingIdx > GetImplicitEdgeCrossings
(
const int32 SurfaceEID, |
Trace the specified surface (extrinsic) mesh edge across the intrinsic mesh. | Operations/IntrinsicTriangulationMesh.h | |
const IntrinsicCorrespondenceUtils::FNormalCoordinates & GetNormalCoordinates() |
Operations/IntrinsicTriangulationMesh.h | ||
FSurfacePoint GetVertexSurfacePoint
(
int32 VID |
Operations/IntrinsicTriangulationMesh.h | ||
bool IsSurfaceVertex
(
int VID |
Operations/IntrinsicTriangulationMesh.h | ||
| Note: when tracing few edges, this method is preferred to using the FEdgeCorrespondence based tracing (see FEdgeCorrespondence below). | Operations/IntrinsicTriangulationMesh.h | ||
TArray< FSurfacePoint > TraceSurfaceEdge
(
int32 SurfaceEID, |
Trace the specified surface (extrinsic) mesh edge across the intrinsic mesh. | Operations/IntrinsicTriangulationMesh.h |