TRemoveOccludedTriangles

Remove "occluded" triangles, i.e. triangles on the "inside" of the mesh(es).

Windows
MacOS
Linux

References

Module

DynamicMesh

Header

/Engine/Plugins/Experimental/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.

Variables

Name Description

Public variable

int

 

AddRandomRays

Number of additional ray directions to add to raycast-based occlusion checks, beyond the default +/- major axis directions

Public variable

int

 

AddTriangleSamples

Number of additional samples to add per triangle

Public variable

bool

 

bRemoveFailed

True if it wanted to remove triangles but the actual remove operation failed

Public variable

EOcclusionCalcu...

 

InsideMode

Public variable

FDynamicMesh3 &...

 

Mesh

Public variable

double

 

NormalOffset

We nudge points out by this amount to try to counteract numerical issues

Public variable

FProgressCancel...

 

Progress

Set this to be able to cancel running operation

Public variable

TArray< int >

 

RemovedT

Indices of removed triangles. will be empty if nothing removed

Public variable

EOcclusionTrian...

 

TriangleSamplingMethod

Input settings

Public variable

double

 

WindingIsoValue

Use this as winding isovalue for WindingNumber mode

Constructors

Name Description

Public function

TRemoveOccludedTriangles

(
    FDynamicMesh3* Mesh
)

Destructors

Name Description

Public function Virtual

~TRemoveOccludedTriangles()

Functions

Name Description

Public function Virtual

bool

 

Apply

(
    const FTransform3d& MeshLocalToOcc...,
    TMeshAABBTree3< OccluderTriangleMes...
)

Remove the occluded triangles single instance case w/out precomputed winding tree

Public function Virtual

bool

 

Apply

(
    const TArrayView< const FTransform3...,
    TMeshAABBTree3< OccluderTriangleMes...,
    TFastWindingTree< OccluderTriangleM...
)

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

Public function Virtual

bool

 

Apply

(
    const FTransform3d& MeshLocalToOcc...,
    TMeshAABBTree3< OccluderTriangleMes...,
    TFastWindingTree< OccluderTriangleM...
)

Remove the occluded triangles single instance case

Protected function Virtual

bool

 

Cancelled()

If this returns true, abort computation.

Public function Virtual

EOperationVa...

 

Validate()

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss