Navigation
API > API/Plugins > API/Plugins/DynamicMesh
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.
| Name | FMeshRefinerBase |
| Type | class |
| Header File | /Engine/Plugins/Runtime/GeometryProcessing/Source/DynamicMesh/Public/MeshRefinerBase.h |
| Include Path | #include "MeshRefinerBase.h" |
Syntax
class FMeshRefinerBase : public UE::Geometry::FMeshRefinerBaseFixLayout
Inheritance Hierarchy
- FMeshRefinerBaseFixLayout → FMeshRefinerBase
Derived Classes
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
| MeshRefinerBase.h | |||
FMeshRefinerBase
(
const FMeshRefinerBase& |
MeshRefinerBase.h | ||
FMeshRefinerBase
(
FDynamicMesh3* MeshIn |
MeshRefinerBase.h | ||
| MeshRefinerBase.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ~FMeshRefinerBase() |
MeshRefinerBase.h |
Enums
Public
| Name | Remarks |
|---|---|
| ETargetProjectionMode | Options for projecting vertices onto target surface |
| EVertexControl |
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| AllowCollapseFixedVertsWithSameSetID | bool | If true, then when two Fixed vertices have the same non-invalid SetID, we treat them as not fixed and allow collapse | MeshRefinerBase.h | |
| DEBUG_CHECK_LEVEL | int | 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) | MeshRefinerBase.h | |
| DebugEdges | TArray< int > | This is a debugging aid, will break to debugger if these edges are touched, in debug builds | MeshRefinerBase.h | |
| ENABLE_PROFILING | bool | Set to true to profile various passes | MeshRefinerBase.h | |
| Progress | FProgressCancel * | Set this to be able to cancel running Remesher/Reducer | MeshRefinerBase.h | |
| ProjectionMode | ETargetProjectionMode | Method to use to project vertices onto target surface. Default is no projection. | MeshRefinerBase.h | |
| VertexControlF | TFunction< EVertexControl(int)> | This function allows client to specify fine-grained control over what happens to specific vertices. | MeshRefinerBase.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual bool Cancelled() |
If this returns true, abort computation. | MeshRefinerBase.h | |
const TOptional< FMeshConstraints > & GetConstraints() |
Get the current mesh constraints | MeshRefinerBase.h | |
double GetEdgeFlipTolerance() |
MeshRefinerBase.h | ||
FDynamicMesh3 * GetMesh() |
Get the current mesh we are operating on | MeshRefinerBase.h | |
IProjectionTarget * ProjectionTarget() |
Get the current Projection Target | MeshRefinerBase.h | |
void SetEdgeFlipTolerance
(
double NewTolerance |
Set edge flip tolerance. Value is clamped to range [-1,1] | MeshRefinerBase.h | |
void SetExternalConstraints
(
TOptional< FMeshConstraints > ConstraintsIn |
Set external constraints. Note that this object will be updated during computation. | MeshRefinerBase.h | |
void SetMeshChangeTracker
(
FDynamicMeshChangeTracker* Tracker |
Mesh Change Tracking support | MeshRefinerBase.h | |
void SetProjectionTarget
(
IProjectionTarget* TargetIn |
Set a Projection Target | MeshRefinerBase.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
bool CanCollapseEdge
(
int eid, |
Figure out if we can collapse edge eid=[a,b] under current constraint set. | MeshRefinerBase.h | |
bool CanCollapseVertex
(
int eid, |
Resolve vertex constraints for collapsing edge eid=[a,b]. | MeshRefinerBase.h | |
bool CheckIfCollapseCreatesFlipOrInvalid
(
int vid, |
Check if edge collapse will create a face-normal flip. | MeshRefinerBase.h | |
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 | MeshRefinerBase.h | |
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) | MeshRefinerBase.h | |
bool CheckIfFlipInvertsNormals
(
int a, |
Check if edge flip might reverse normal direction. | MeshRefinerBase.h | |
double ComputeEdgeFlipMetric
(
const FVector3d& Direction0, |
MeshRefinerBase.h | ||
void DebugCheckUVSeamConstraints() |
MeshRefinerBase.h | ||
void DebugCheckVertexConstraints() |
MeshRefinerBase.h | ||
virtual void DoDebugChecks
(
bool bEndOfPass |
MeshRefinerBase.h | ||
bool GetVertexConstraint
(
int VertexID, |
MeshRefinerBase.h | ||
FVertexConstraint GetVertexConstraint
(
int VertexID |
MeshRefinerBase.h | ||
bool IsVertexPositionConstrained
(
int VertexID |
MeshRefinerBase.h | ||
void RuntimeDebugCheck
(
int EdgeID |
Testing/debug/profiling stuff | MeshRefinerBase.h | |
virtual void SaveEdgeBeforeModify
(
int32 EdgeID |
MeshRefinerBase.h | ||
virtual void SaveTriangleBeforeModify
(
int32 TriangleID |
MeshRefinerBase.h | ||
virtual void SaveVertexTrianglesBeforeModify
(
int32 VertexID |
MeshRefinerBase.h |
Operators
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
| MeshRefinerBase.h | |||
FMeshRefinerBase & operator=
(
const FMeshRefinerBase& |
MeshRefinerBase.h |