Module |
|
Header |
/Engine/Plugins/Experimental/GeometryProcessing/Source/GeometricObjects/Public/Spatial/MeshWindingNumberGrid.h |
Include |
#include "Spatial/MeshWindingNumberGrid.h" |
template<class TriangleMeshType>
class TMeshWindingNumberGrid
Sample mesh winding number (MWN) on a discrete grid. Can sample full grid, or compute MWN values along a specific iso-contour and then fill in rest of grid with correctly-signed values via fast sweeping (this is the default)
TODO:
I think we are over-exploring the grid most of the time. eg along an x-ray that intersects the surface, we only need at most 2 cells, but we are computing at least 3, and possibly 5.
it may be better to use something like bloomenthal polygonizer continuation? where we are keeping track of active edges instead of active cells?
Name | Description | ||
---|---|---|---|
|
int |
BufferCells |
How many cells around border should we keep |
|
bWantMeshSDFGrid |
In NarrowBand mode, we compute mesh SDF grid; if true then it can be accessed via SDFGrid function after Compute() |
|
|
CancelF |
If this function returns true, we should abort calculation |
|
|
double |
CellSize |
Size of cubes in the grid |
|
ComputeMode |
||
|
FastWinding |
||
|
GridOrigin |
Computed results |
|
|
const TriangleM... |
Mesh |
|
|
MeshSDF |
SDF grid we compute in narrow-band mode. |
|
|
WindingGrid |
||
|
float |
WindingIsoValue |
In narrow-band mode, if mesh is not closed, we will explore space around this MWN iso-value |
Name | Description | |
---|---|---|
|
TMeshWindingNumberGrid ( |
Name | Description | ||
---|---|---|---|
|
constexpr co... |
At ( |
|
|
CellCenter ( |
||
|
Compute() |
||
|
Dimensions() |
||
|
float |
GetValue ( |
Name |
Description |
|
---|---|---|
|
EComputeModes |
Should we compute MWN at all grid cells (expensive!!) or only in narrow band. |