Navigation
API > API/Runtime > API/Runtime/GeometryCore
Classes
| Type | Name | Description | |
|---|---|---|---|
| FBRIOPoints | Generate a "Biased Randomized Insertion Order" (BRIO) ordering for a point set by randomly bucketing the points, then applying Z-Order-Curve sorting (above) to each bucket This gives an ordering with point locality but enough randomization to typically avoid worst case behavior if using the ordering for Delaunay meshing | ||
| FDynamicFlagArray | Utility class that allows for get/set of a flag for each integer ID, where the flag set automatically grows to contain whatever integer ID is passed | ||
| FGeometrySet3 | FGeometrySet3 stores a set of 3D Points and Polyline curves, and supports spatial queries against these sets. | ||
| FHitIntersectionResult | |||
| FIntersectionsQueryResult | |||
| FOccupancyGrid3 | Sample mesh occupancy in a voxel grid by using the mesh's winding number, on voxel corners, to determine whether the voxel is fully contained within the interior of the mesh, touches the mesh's boundary, or is fully contained on the exterior of the mesh. | ||
| FPointIntersection | Intersection query result types for triangle mesh intersections | ||
| FPointSetHashtable | FPointSetHashTable builds a spatial data structure that supports efficient range queries on a point set (in FPointSetAdapterd form). | ||
| FPolygonIntersection | |||
| FPriorityOrderPoints | Generate a "priority ordering" for a point set | ||
| FSegmentIntersection | |||
| FSegmentTree3 | FSegmentTree3 is a spatial data structure for a set of 3D line segments. | ||
| FSparseDynamicOctree3 | FSparseDynamicOctree3 sorts objects with axis-aligned bounding boxes into a dynamic sparse octree of axis-aligned uniform grid cells. | ||
| FSparseDynamicPointOctree3 | FSparseDynamicPointOctree3 sorts Points with axis-aligned bounding boxes into a dynamic sparse octree of axis-aligned uniform grid cells. | ||
| FSparseOctreeCell | FSparseOctreeCell is a Node in a SparseDynamicOctree3. | ||
| FSparsePointOctreeCell | FSparsePointOctreeCell is a Node in a SparseDynamicOctree3. | ||
| FZOrderCurvePoints | Generate a "z-order curve" ordering for a point set by distributing the points to a quad- or octree and then reading the points indices back in tree traversal order This is useful for giving the points spatial locality so points that are close together in the ordering tend to be close together spatially, also | ||
| IIntersectionTarget | IIntersectionTarget is an object that can be intersected with a ray | ||
| IMeshSpatial | IMeshSpatial is an extension of ISpatial specifically for meshes | ||
| IOrientedProjectionTarget | IOrientedProjectionTarget is a projection target that can return a normal in addition to the projected point | ||
| IProjectionTarget | IProjectionTarget is an object that supports projecting a 3D point onto it | ||
| ISpatial | ISpatial is a base interface for spatial queries | ||
| TBasicBlockedDenseGrid3 | TBasicBlockedDenseGrid3 represents a 3D blocked uniform grid. | ||
| TBlockData3 | Block Data Buffer, holds linear array of typed data. | ||
| TBlockData3Layout | Consistent translation between a linear array of size BlockSize to a 3d layout. | ||
| TBlockedDenseGrid3 | TBlockedDenseGrid adds thread-safe access functions to the 3D blocked uniform grid, TBasicBlockedDenseGrid3. | ||
| TBlockedGrid3 | TBlockedGrid3 represents a 3D uniform grid. | ||
| TBlockedGrid3Layout | Spatial decomposition of a region of 3d ijk space into 3d cubes of size BlockSize (per side). | ||
| TDenseGrid2 | 2D dense grid of scalar values. | ||
| TDenseGrid3 | 3D dense grid of floating-point scalar values. | ||
| TMeshAABBTree3 | |||
| TMeshSpatialSort | Sorts a list meshes into a list of "Nests" where each Nest has an outer shell mesh and a list of contained-inside meshes | ||
| TMeshWindingNumberGrid | Sample mesh winding number (MWN) on a discrete grid. | ||
| TPointHashGrid2 | Hash Grid for values associated with 2D points. | ||
| TPointHashGrid3 | Hash Grid for values associated with 3D points. | ||
| TSampledScalarField2 | TSampledScalarField2 implements a generic 2D grid of values that can be interpolated in various ways. | ||
| TSparseGrid3 | Dynamic sparse 3D grid. |
Typedefs
| Name | Description |
|---|---|
| FBlockedDenseGrid3d | |
| FBlockedDenseGrid3f | |
| FBlockedDenseGrid3i | |
| FBlockedGrid3b | Note the bool grid uses a bitfield specialization |
| FBlockedGrid3d | |
| FBlockedGrid3f | Note on the block size: 8 seems to be the sweet spot with vastly better performance in SDF generation perhaps because a float block can fit in the L1 cache with room to spare. |
| FBlockedGrid3i | |
| FDenseGrid2d | |
| FDenseGrid2f | |
| FDenseGrid2i | |
| FDenseGrid3d | |
| FDenseGrid3f | |
| FDenseGrid3i | |
| FMatrix3d | |
| FSampledScalarField2d | |
| FSampledScalarField2f | |
| FTriangle3d | |
| TPointHashGrid2d | |
| TPointHashGrid2f | |
| TPointHashGrid3d | |
| TPointHashGrid3f |
Functions
| Type | Name | Description | |
|---|---|---|---|
| void | FastTriWinding::ComputeCoeffs
(
const TriangleMeshType& Mesh, |
Precompute constant coefficients of triangle winding number approximation (evaluated in parallel for large sets of triangles) P: 'Center' of expansion for Triangles (area-weighted centroid avg) R: max distance from P to Triangles Order1: first-order vector coeff Order2: second-order matrix coeff TriCache: precomputed triangle centroid/normal/area | |
| void | FastTriWinding::ComputeCoeffsSerial
(
const TriangleMeshType& Mesh, |
Precompute constant coefficients of triangle winding number approximation (serial implementation) P: 'Center' of expansion for Triangles (area-weighted centroid avg) R: max distance from P to Triangles Order1: first-order vector coeff Order2: second-order matrix coeff TriCache: precomputed triangle centroid/normal/area | |
| double | FastTriWinding::EvaluateOrder1Approx
(
const FVector3d& Center, |
Evaluate first-order FWN approximation at point Q, relative to Center c | |
| double | FastTriWinding::EvaluateOrder2Approx
(
const FVector3d& Center, |
Evaluate second-order FWN approximation at point Q, relative to Center c | |
| double | FastTriWinding::Order1Approx
(
const FTriangle3d& T, |
Triangle-winding-number first-order approximation. | |
| double | FastTriWinding::Order2Approx
(
const FTriangle3d& T, |
Triangle-winding-number second-order approximation T is triangle, P is 'Center' of cluster of dipoles, Q is evaluation point (This is really just for testing) | |
| void | UE::Geometry::DenseGrid::AtomicDecrement
(
FDenseGrid2i& Grid, |
||
| void | UE::Geometry::DenseGrid::AtomicDecrement
(
FDenseGrid3i& Grid, |
||
| void | UE::Geometry::DenseGrid::AtomicIncDec
(
FDenseGrid2i& Grid, |
||
| void | UE::Geometry::DenseGrid::AtomicIncDec
(
FDenseGrid3i& Grid, |
||
| void | UE::Geometry::DenseGrid::AtomicIncrement
(
FDenseGrid2i& Grid, |
||
| void | UE::Geometry::DenseGrid::AtomicIncrement
(
FDenseGrid3i& Grid, |