Navigation
API > API/Plugins > API/Plugins/DynamicMesh
Inheritance Hierarchy
- FMeshRefinerBase
- FRemesher
- FQueueRemesher
- FNormalFlowRemesher
- FSubRegionRemesher
- FRestrictedSubRegionRemesher
- TMeshSimplification
References
| Module | DynamicMesh |
| Header | /Engine/Plugins/Runtime/GeometryProcessing/Source/DynamicMesh/Public/MeshRefinerBase.h |
| Include | #include "MeshRefinerBase.h" |
Syntax
class FMeshRefinerBase
Remarks
This is a base class that implements common functionality for various triangle mesh resampling strategies (ie FRemesher and FReducer). You probably should not use this class directly.
Variables
| Type | Name | Description | |
|---|---|---|---|
| FDynamicMeshChangeTracker * | ActiveChangeTracker | ||
| bool | AllowCollapseFixedVertsWithSameSetID | If true, then when two Fixed vertices have the same non-invalid SetID, we treat them as not fixed and allow collapse | |
| TOptional< FMeshConstraints > | Constraints | Constraints are used to control how certain edges and vertices can be modified | |
| int | DEBUG_CHECK_LEVEL | 0 = no checking, 1 = check constraints each pass, 2 = and check validity each pass, 3 = and check validity after every mesh change (v slow but best for debugging) | |
| TArray< int > | DebugEdges | This is a debugging aid, will break to debugger if these edges are touched, in debug builds | |
| double | EdgeFlipTolerance | If normals dot product is less than this, we consider it a normal flip. default = 0 | |
| bool | ENABLE_PROFILING | Set to true to profile various passes | |
| FDynamicMesh3 * | Mesh | Mesh that will be refined | |
| FProgressCancel * | Progress | Set this to be able to cancel running Remesher/Reducer | |
| ETargetProjectionMode | ProjectionMode | Method to use to project vertices onto target surface. Default is no projection. | |
| IProjectionTarget * | ProjTarget | Vertices can be projected onto this surface when they are modified | |
| double | TinyTriangleThreshold | Avoid creation of triangles smaller than this value. | |
| TFunction< EVertexControl(int)> | VertexControlF | This function allows client to specify fine-grained control over what happens to specific vertices. |
Constructors
| Type | Name | Description | |
|---|---|---|---|
FMeshRefinerBase
(
FDynamicMesh3* MeshIn |
|||
FMeshRefinerBase
(
const FMeshRefinerBase& |
|||
Destructors
| Type | Name | Description | |
|---|---|---|---|
Functions
| Type | Name | Description | |
|---|---|---|---|
| bool | Cancelled () |
If this returns true, abort computation. | |
| bool | CanCollapseEdge
(
int eid, |
Figure out if we can collapse edge eid=[a,b] under current constraint set. | |
| bool | CanCollapseVertex
(
int eid, |
Resolve vertex constraints for collapsing edge eid=[a,b]. | |
| bool | CheckIfCollapseCreatesFlipOrInvalid
(
int vid, |
Check if edge collapse will create a face-normal flip. | |
| bool | CheckIfCollapseCreatesTinyTriangle
(
int vid, |
Check if edge collapse will create a triangle with small area (either all vertices are close together, or in a sliver configuration) This only checks one-ring of vid, so you have to call it twice, with vid and vother reversed, to check both one-rings | |
| bool | CheckIfFlipCreatesTinyTriangle
(
int OriginalEdgeVertexA, |
Check if edge flip might create a triangle with small area (either all vertices are close together, or in a sliver configuration) | |
| bool | CheckIfFlipInvertsNormals
(
int a, |
Check if edge flip might reverse normal direction. | |
| double | ComputeEdgeFlipMetric
(
const FVector3d& Direction0, |
||
| void | |||
| void | |||
| void | DoDebugChecks
(
bool bEndOfPass |
||
| const TOptional< FMeshConstraints > & | Get the current mesh constraints | ||
| double | |||
| FDynamicMesh3 * | GetMesh () |
Get the current mesh we are operating on | |
| bool | GetVertexConstraint
(
int VertexID, |
||
| FVertexConstraint | GetVertexConstraint
(
int VertexID |
||
| bool | IsVertexPositionConstrained
(
int VertexID |
||
| IProjectionTarget * | Get the current Projection Target | ||
| void | RuntimeDebugCheck
(
int EdgeID |
Testing/debug/profiling stuff | |
| void | SaveEdgeBeforeModify
(
int32 EdgeID |
||
| void | SaveTriangleBeforeModify
(
int32 TriangleID |
||
| void | SaveVertexTrianglesBeforeModify
(
int32 VertexID |
||
| void | SetEdgeFlipTolerance
(
double NewTolerance |
Set edge flip tolerance. Value is clamped to range [-1,1] | |
| void | SetExternalConstraints
(
TOptional< FMeshConstraints > ConstraintsIn |
Set external constraints. Note that this object will be updated during computation. | |
| void | SetMeshChangeTracker
(
FDynamicMeshChangeTracker* Tracker |
Mesh Change Tracking support | |
| void | SetProjectionTarget
(
IProjectionTarget* TargetIn |
Set a Projection Target |
Operators
| Type | Name | Description | |
|---|---|---|---|
| FMeshRefinerBase & | operator=
(
FMeshRefinerBase&& |
||
| FMeshRefinerBase & | operator=
(
const FMeshRefinerBase& |
Enums
| Type | Name | Description | |
|---|---|---|---|
| ETargetProjectionMode | Options for projecting vertices onto target surface | ||
| EVertexControl |