Module |
|
Header |
/Engine/Plugins/Experimental/GeometryProcessing/Source/GeometricObjects/Public/Parameterization/MeshLocalParam.h |
Include |
#include "Parameterization/MeshLocalParam.h" |
template<class PointSetType>
class TMeshLocalParam
TMeshLocalParam computes a local UV parameterization of a set of connected PointsWithNormals, where "local" means "in a geodesic disc around a starting point".
The computation is based on region-growing, and geodesic distances are actually graph distances, measured with Dijkstras algorithm.
Templated on the point set type, which must provide positions, normals, and neighbours. Currently will only work for FDynamicMesh3 and FDynamicPointSet3 because of call to PointSetType->VtxVerticesItr()
Name | Description | ||
---|---|---|---|
|
TDynamicVector<... |
AllocatedNodes |
|
|
IDToNodeIndexMap |
To avoid constructing FGraphNode for all input points (because we are computing a "local" param), we only allocate on demand, and then store a sparse mapping in IDToNodeIndexMap |
|
|
double |
MaxGraphDistance |
Max distances encountered during last compute |
|
double |
MaxUVDistance |
|
|
ParamMode |
Type of local parameterization to compute |
|
|
const PointSetT... |
PointSet |
|
|
Queue |
Queue of nodes to process (for dijkstra front propagation) |
|
|
SeedFrame |
Seed frame, unwrap is centered around this position/axes |
Name | Description | |
---|---|---|
|
TMeshLocalParam ( |
Name | Description | ||
---|---|---|---|
|
ApplyUVs ( |
Apply a function to each calculated UV |
|
|
ComputeLocalUV |
||
|
ComputeToMaxDistance |
Computes UVs outwards from seed frame/nbrs to all points that are less/equal to ComputeToMaxDistance from the seed. |
|
|
GetFrame ( |
||
|
double |
GetMaxGraphDistance() |
|
|
double |
GetMaxUVDistance() |
|
|
const FGraph... |
GetNodeForPointSetID ( |
|
|
FGraphNode &... |
GetNodeForPointSetID |
|
|
GetNormal ( |
||
|
GetPosition ( |
||
|
GetUV ( |
||
|
FAxisAligned... |
GetUVBounds() |
|
|
HasUV ( |
||
|
InvalidUV() |
||
|
PropagateUV |
Calculate the UV value at Position based on the existing NbrUV, using the frame at NbrFrame, and the original SeedFrame |
|
|
Reset() |
Reset internal data structures but keep allocated memory |
|
|
TransformUV ( |
Scale and then Translate all calculated UV values |
|
|
UpdateNeighboursSparse ( |
Given new Distance/UV at Parent, check if any of its neighbours are in the queue, and if they are, and the new graph distance is shorter, update their queue position (this is basically the update step of Disjktras algorithm) |
|
|
UpdateUVExpmap ( |
||
|
UpdateUVExpmapUpwind ( |
||
|
UpdateUVPlanar ( |
Name |
Description |
|
---|---|---|
|
FGraphNode |
Information about each active/computed point |