Navigation
API > API/Plugins > API/Plugins/DynamicMesh > API/Plugins/DynamicMesh/Operations
References
| Module | DynamicMesh |
| Header | /Engine/Plugins/Runtime/GeometryProcessing/Source/DynamicMesh/Public/Operations/RemoveOccludedTriangles.h |
| Include | #include "Operations/RemoveOccludedTriangles.h" |
Syntax
template<typename OccluderTriangleMeshType>
class TRemoveOccludedTriangles
Remarks
Remove "occluded" triangles, i.e. triangles on the "inside" of the mesh(es). This is a fuzzy definition, current implementation has a couple of options including a winding number-based version and an ambient-occlusion-ish version, where if face is occluded for all test rays, then we classify it as inside and remove it.
Note this class always removes triangles from an FDynamicMesh3, but can use any mesh type to define the occluding geometry (as long as the mesh type implements the TTriangleMeshAdapter fns)
Variables
| Type | Name | Description | |
|---|---|---|---|
| int | AddRandomRays | Number of additional ray directions to add to raycast-based occlusion checks, beyond the default +/- major axis directions | |
| int | AddTriangleSamples | Number of additional samples to add per triangle | |
| bool | bRemoveFailed | True if it wanted to remove triangles but the actual remove operation failed | |
| EOcclusionCalculationMode | InsideMode | ||
| FDynamicMesh3 * | Mesh | ||
| double | NormalOffset | We nudge points out by this amount to try to counteract numerical issues | |
| FProgressCancel * | Progress | Set this to be able to cancel running operation | |
| TArray< int > | RemovedT | Outputsindices of removed triangles. will be empty if nothing removed | |
| EOcclusionTriangleSampling | TriangleSamplingMethod | Input settings | |
| double | WindingIsoValue | Use this as winding isovalue for WindingNumber mode |
Constructors
| Type | Name | Description | |
|---|---|---|---|
TRemoveOccludedTriangles
(
FDynamicMesh3* Mesh |
Destructors
| Type | Name | Description | |
|---|---|---|---|
Functions
| Type | Name | Description | |
|---|---|---|---|
| bool | Apply
(
const FTransformSRT3d& MeshLocalToOccluderSpace, |
Remove the occluded triangles single instance case w/out precomputed winding tree | |
| bool | Apply
(
const TArrayView< const FTransformSRT3d > MeshLocalToOccluderSpaces, |
Remove the occluded triangles, considering the given occluder AABB tree (which may represent more geometry than a single mesh) See simpler invocations below for the single instance case or the case where you'd like the spatial data structures built for you | |
| bool | Apply
(
const FTransformSRT3d& MeshLocalToOccluderSpace, |
Remove the occluded triangles single instance case | |
| bool | Apply
(
const TArrayView< const FTransformSRT3d > MeshLocalToOccluderSpaces, |
Remove the occluded triangles, considering the given occluder AABB trees (which may represent more geometry than a single mesh) See simpler invocations below for the single instance case or the case where you'd like the spatial data structures built for you | |
| bool | Cancelled () |
If this returns true, abort computation. | |
| bool | Remove triangles that were selected (the triangle IDs in the RemoveT array) | ||
| bool | Select
(
const FTransformSRT3d& MeshLocalToOccluderSpace, |
Select the occluded triangles single instance case w/out precomputed winding tree | |
| bool | Select
(
const TArrayView< const FTransformSRT3d > MeshLocalToOccluderSpaces, |
Select the occluded triangles, considering the given occluder AABB tree (which may represent more geometry than a single mesh) See simpler invocations below for the single instance case or the case where you'd like the spatial data structures built for you | |
| bool | Select
(
const FTransformSRT3d& MeshLocalToOccluderSpace, |
Select the occluded triangles single instance case | |
| bool | Select
(
const TArrayView< const FTransformSRT3d > MeshLocalToOccluderSpaces, |
Select the occluded triangles, considering the given occluder AABB trees (which may represent more geometry than a single mesh) See simpler invocations below for the single instance case or the case where you'd like the spatial data structures built for you Selection will be stored in the RemovedT array, but no triangles will be removed. | |
| EOperationValidationResult | Validate () |