Navigation
API > API/Plugins > API/Plugins/DynamicMesh
Warnings * Currently "boundary" edges of the ROI that are split will result in the ROI growing to include both new edges created by the split.
Inheritance Hierarchy
- FMeshRefinerBase
- FRemesher
- FSubRegionRemesher
- FRestrictedSubRegionRemesher
References
| Module | DynamicMesh |
| Header | /Engine/Plugins/Runtime/GeometryProcessing/Source/DynamicMesh/Public/SubRegionRemesher.h |
| Include | #include "SubRegionRemesher.h" |
Syntax
class FSubRegionRemesher : public UE::Geometry::FRemesher
Remarks
FSubRegionRemesher is an extension of FRemesher that allows for constraining remeshing to a localized region of a mesh. Currently this is initialized from a Vertex ROI.
Currently "boundary" edges of the ROI that are split will result in the ROI growing to include both new edges created by the split.
Variables
| Type | Name | Description | |
|---|---|---|---|
| bool | bTrackRemoved | Controls whether RemovedLastPass will be populated | |
| int | CurEdge | Index of current edge in .Edges we are at in StartEdges/GetNextEdge modulo-iteration | |
| TSet< int > | EdgeROI | Active set of edges we will consider for remeshing. | |
| TArray< int > | Edges | Static list of edges to consider during a pass (set in UpdateROI which must be called each pass) | |
| FUniqueIndexSet | InitialROIEdgeVertices | Temporary data structure used to quickly convert vertex set to edge set. | |
| FUniqueIndexSet | InitialROITriangles | Temporary data structure used to quickly convert vertex set to triangle set. | |
| uint32 | LastRemeshPassCounter | ||
| uint32 | LastUpdateROICounter | Counters for making sure that UpdateROI has been called | |
| TSet< int > | RemovedLastPassTris | Set of triangles removed in last pass. Enable this by calling BeginTrackRemovedTrisInPass() | |
| TArray< FVector3d > | SmoothedPositions | ||
| TArray< int32 > | SmoothIndices | Localized smoothing | |
| TSet< int > | TriangleROI | Active set of triangles. | |
| TSet< int > | VertexROI | Set of vertices in ROI. |
Constructors
| Type | Name | Description | |
|---|---|---|---|
FSubRegionRemesher
(
FDynamicMesh3* Mesh |
Destructors
| Type | Name | Description | |
|---|---|---|---|
Functions
| Type | Name | Description | |
|---|---|---|---|
| void | AddEdgeToTriangleROI
(
int EdgeID |
||
| void | AddVertexToTriangleROI
(
int VertexID |
||
| void | Call before BasicRemeshPass() to enable tracking of removed triangles | ||
| const TSet< int32 > & | Call after BasicRemeshPass() to disable and return tracking of removed triangles | ||
| TSet< int > && | Extract final triangle ROI. | ||
| const TArray< int > & | This is only valid after calling UpdateROI() and before calling BasicRemeshPass(). | ||
| const TSet< int > & | |||
| const TSet< int > & | |||
| const TSet< int > & | |||
| void | InitializeFromTriangleROI
(
const TSet< int >& InTriangleROI |
||
| void | Initialize edge-subregion ROI from the VertexROI member that has been externally initialized | ||
| void | Reset () |
||
| void | SaveActiveROI
(
FDynamicMeshChangeTracker* Change |
Tell a MeshChangeTracker about the set of triangles that we might modify in the next remesh pass. | |
| void | SetInitialVertexROI
(
const TSet< int >& Vertices |
||
| void | SetInitialVertexROI
(
TSet< int >&& Vertices |
||
| void | SetInitialVertexROI
(
const TArray< int >& Vertices |
||
| void | UpdateROI () |
Update the internal data structures in preparation for a call to FRemesher::BasicRemeshPass. | |
| EVertexControl | VertexFilter
(
int VertexID |
Overridden from FRemesher
| Type | Name | Description | |
|---|---|---|---|
| void | Forwards to FRemesher::BasicRemeshPass | ||
| void | FullSmoothPass_Buffer
(
bool bParallel |
Applies a smoothing pass to the mesh, storing intermediate positions in a buffer and then writing them at the end (so, no order effect) | |
| int | GetNextEdge
(
int CurEdgeID, |
||
| void | OnEdgeCollapse
(
int EdgeID, |
Callback for subclasses to override to implement custom behavior | |
| void | OnEdgeFlip
(
int EdgeID, |
Callback for subclasses to override to implement custom behavior | |
| void | OnEdgeSplit
(
int EdgeID, |
Callbacks and in-progress informationCallback for subclasses to override to implement custom behavior | |
| int | StartEdges () |
Specialization of Remesher functionality |