Navigation
Unreal Engine C++ API Reference > Plugins > LidarPointCloudRuntime
References
Module | LidarPointCloudRuntime |
Header | /Engine/Plugins/Enterprise/LidarPointCloud/Source/LidarPointCloudRuntime/Public/LidarPointCloudOctree.h |
Include | #include "LidarPointCloudOctree.h" |
Syntax
class FLidarPointCloudOctree
Remarks
Used for efficient handling of point cloud data.
Variables
Type | Name | Description | |
---|---|---|---|
![]() |
FCriticalSection | DataLock | Used for thread safety between rendering and asset operations. |
![]() |
FCriticalSection | DataReleaseLock | Used to prevent auto-release of nodes if they are in use by other threads |
Constructors
Type | Name | Description | |
---|---|---|---|
![]() |
|||
![]() |
FLidarPointCloudOctree
(
ULidarPointCloud* Owner |
||
![]() |
FLidarPointCloudOctree
(
const FLidarPointCloudOctree& |
||
![]() |
Destructors
Type | Name | Description | |
---|---|---|---|
![]() |
Functions
Type | Name | Description | |
---|---|---|---|
![]() |
void | ApplyColorToAllPoints
(
const FColor& NewColor, |
Applies the given color to all points |
![]() |
void | ApplyColorToFirstPointByRay
(
const FColor& NewColor, |
Applies the given color to the first point hit by the given ray |
![]() |
void | ApplyColorToPointsByRay
(
const FColor& NewColor, |
Applies the given color to all points hit by the given ray |
![]() |
void | ApplyColorToPointsInBox
(
const FColor& NewColor, |
Applies the given color to all points within the box |
![]() |
void | ApplyColorToPointsInSphere
(
const FColor& NewColor, |
Applies the given color to all points within the sphere |
![]() |
void | BuildCollision
(
const float& Accuracy, |
Builds collision using the accuracy provided |
![]() |
void | BuildStaticMeshBuffers
(
float CellSize, |
Constructs and returns the MeshBuffers struct from the data |
![]() |
void | BuildStaticMeshBuffersForSelection
(
float CellSize, |
|
![]() |
void | CalculateNormals
(
FThreadSafeBool* bCancelled, |
Calculates Normals for the provided points If a nullptr is passed, the calculation will be executed on the whole cloud |
![]() |
void | ||
![]() |
void | ||
![]() |
void | ||
![]() |
void | Empty
(
bool bDestroyNodes |
Removes all points and, optionally, all nodes except for the root node. Retains the bounds. |
![]() |
void | ExecuteActionOnAllPoints
(
TFunction< void(FLidarPointCloudPoint*)> Action, |
Executes the provided action on each of the points. |
![]() |
void | ExecuteActionOnFirstPointByRay
(
TFunction< void(FLidarPointCloudPoint*)> Action, |
Executes the provided action on the first point hit by the given ray. |
![]() |
void | ExecuteActionOnPointsByRay
(
TFunction< void(FLidarPointCloudPoint*)> Action, |
Executes the provided action on each of the points hit by the given ray. |
![]() |
void | ExecuteActionOnPointsInBox
(
TFunction< void(FLidarPointCloudPoint*)> Action, |
Executes the provided action on each of the points within the given box. |
![]() |
void | ExecuteActionOnPointsInSphere
(
TFunction< void(FLidarPointCloudPoint*)> Action, |
Executes the provided action on each of the points within the given sphere. |
![]() ![]() |
int64 | Returns the amount of memory used by this Octree, including the BulkData | |
![]() ![]() |
int64 | Returns the amount of memory used by this Octree, excluding the BulkData | |
![]() ![]() |
FBox | GetBounds () |
Returns the Cloud bounds. |
![]() ![]() |
const FTriMeshCollisionData * | Returns pointer to the collision data | |
![]() ![]() |
float | Returns an estimated spacing between points | |
![]() ![]() |
FVector3f | GetExtent () |
Returns the extent of the Cloud's bounds. |
![]() ![]() |
int32 | GetNumLODs () |
Returns the number of different LODs. |
![]() ![]() |
int32 | GetNumNodes () |
Returns the total number of nodes. |
![]() ![]() |
int32 | Returns the total number of nodes. | |
![]() ![]() |
int64 | GetNumPoints () |
Returns the total number of points. |
![]() ![]() |
int64 | Returns the total number of visible points. | |
![]() ![]() |
ULidarPointCloud * | GetOwner () |
Returns a pointer to the Point Cloud asset, which owns this Octree. |
![]() |
void | GetPoints
(
TArray64< FLidarPointCloudPoint* >& SelectedPoints, |
Populates the given array with points from the tree |
![]() |
void | GetPoints
(
TArray< FLidarPointCloudPoint* >& SelectedPoints, |
Populates the given array with points from the tree |
![]() ![]() |
void | GetPointsAsCopies
(
TArray64< FLidarPointCloudPoint >& SelectedPoints, |
Populates the given array with copies of points from the tree |
![]() ![]() |
void | GetPointsAsCopies
(
TArray< FLidarPointCloudPoint >& SelectedPoints, |
Populates the given array with copies of points from the tree |
![]() |
void | Executes the provided action on batches of points. | |
![]() |
void | GetPointsInBox
(
TArray64< FLidarPointCloudPoint* >& SelectedPoints, |
Populates the array with the list of pointers to points within the given box. |
![]() ![]() |
void | GetPointsInBox
(
TArray< const FLidarPointCloudPoint* >& SelectedPoints, |
Populates the array with the list of pointers to points within the given box. |
![]() ![]() |
void | GetPointsInBox
(
TArray64< const FLidarPointCloudPoint* >& SelectedPoints, |
Populates the array with the list of pointers to points within the given box. |
![]() |
void | GetPointsInBox
(
TArray< FLidarPointCloudPoint* >& SelectedPoints, |
Populates the array with the list of pointers to points within the given box. |
![]() ![]() |
void | GetPointsInBoxAsCopies
(
TArray64< FLidarPointCloudPoint >& SelectedPoints, |
Populates the array with the list of pointers to points within the given box. |
![]() ![]() |
void | GetPointsInBoxAsCopies
(
TArray< FLidarPointCloudPoint >& SelectedPoints, |
Populates the array with the list of pointers to points within the given box. |
![]() |
void | GetPointsInConvexVolume
(
TArray64< FLidarPointCloudPoint* >& SelectedPoints, |
Populates the array with the list of points within the given convex volume. |
![]() |
void | GetPointsInConvexVolume
(
TArray< FLidarPointCloudPoint* >& SelectedPoints, |
Populates the array with the list of points within the given convex volume. |
![]() |
void | GetPointsInSphere
(
TArray< FLidarPointCloudPoint* >& SelectedPoints, |
Populates the array with the list of points within the given sphere. |
![]() |
void | GetPointsInSphere
(
TArray64< FLidarPointCloudPoint* >& SelectedPoints, |
Populates the array with the list of points within the given sphere. |
![]() ![]() |
void | GetPointsInSphereAsCopies
(
TArray< FLidarPointCloudPoint >& SelectedPoints, |
Populates the array with the list of points within the given sphere. |
![]() ![]() |
void | GetPointsInSphereAsCopies
(
TArray64< FLidarPointCloudPoint >& SelectedPoints, |
Populates the array with the list of points within the given sphere. |
![]() |
IAsyncReadFileHandle * | ||
![]() ![]() |
float | Returns the grid cell size at root level. | |
![]() ![]() |
void | GetSelectedPoints
(
TArray64< FLidarPointCloudPoint* >& SelectedPoints |
|
![]() ![]() |
void | GetSelectedPointsAsCopies
(
TArray64< FLidarPointCloudPoint >& SelectedPoints, |
|
![]() ![]() |
void | GetSelectedPointsInBox
(
TArray64< const FLidarPointCloudPoint* >& SelectedPoints, |
|
![]() ![]() |
bool | Returns true, if the Octree has collision built | |
![]() ![]() |
bool | HasData () |
Returns true if the Root node exists and has any data assigned. |
![]() ![]() |
bool | HasPointsByRay
(
const FLidarPointCloudRay& Ray, |
Returns true if there are any points hit by the given ray. |
![]() ![]() |
bool | HasPointsInBox
(
const FBox& Box, |
Returns true if there are any points within the given box. |
![]() ![]() |
bool | HasPointsInSphere
(
const FSphere& Sphere, |
Returns true if there are any points within the given sphere. |
![]() ![]() |
bool | ||
![]() |
void | HideAll () |
Marks all points hidden |
![]() |
void | HideSelected () |
|
![]() |
void | Initialize
(
const FVector3f& InExtent |
Initializes the Octree properties. |
![]() |
void | InsertPoint
(
const FLidarPointCloudPoint* Point, |
Inserts the given point into the Octree structure, internally thread-safe. |
![]() |
void | InsertPoints
(
const FLidarPointCloudPoint* Points, |
Inserts group of points into the Octree structure, internally thread-safe. |
![]() |
void | InsertPoints
(
FLidarPointCloudPoint** Points, |
Inserts group of points into the Octree structure, internally thread-safe. |
![]() |
void | InsertPoints
(
FLidarPointCloudPoint* Points, |
Inserts group of points into the Octree structure, internally thread-safe. |
![]() |
void | ||
![]() ![]() |
bool | Returns true, if the cloud is fully and persistently loaded. | |
![]() ![]() |
bool | ||
![]() |
void | LoadAllNodes
(
bool bLoadPersistently |
Loads all nodes. |
![]() |
void | This should to be called if any manual modification to individual points' visibility has been made. | |
![]() |
void | Marks render data of all nodes as dirty. | |
![]() |
void | MarkRenderDataInConvexVolumeDirty
(
const FConvexVolume& ConvexVolume |
Marks render data of all nodes within the given convex volume as dirty. |
![]() |
void | MarkRenderDataInSphereDirty
(
const FSphere& Sphere |
Marks render data of all nodes within the given sphere as dirty. |
![]() ![]() |
int64 | ||
![]() |
void | ||
![]() |
void | ||
![]() |
bool | RaycastMulti
(
const FLidarPointCloudRay& Ray, |
Performs a raycast test against the point cloud. |
![]() |
bool | RaycastMulti
(
const FLidarPointCloudRay& Ray, |
Performs a raycast test against the point cloud. |
![]() |
FLidarPointCloudPoint * | RaycastSingle
(
const FLidarPointCloudRay& Ray, |
Performs a raycast test against the point cloud. Returns the pointer if hit or nullptr otherwise. |
![]() |
void | Recalculates and updates points bounds. | |
![]() |
void | RegisterTraversalOctree
(
TWeakPtr< FLidarPointCloudTraversalOctree, ESPMode::ThreadSafe > TraversalOctree |
Adds the given traversal octree to the list of linked octrees. |
![]() |
void | ReleaseAllNodes
(
bool bIncludePersistent |
Releases all nodes. Optionally, releases persistent nodes too. |
![]() |
void | Removes collision mesh data | |
![]() |
void | RemoveFirstPointByRay
(
const FLidarPointCloudRay& Ray, |
Removes the first point hit by the given ray |
![]() |
void | Removes all hidden points | |
![]() |
void | RemovePoint
(
const FLidarPointCloudPoint* Point |
Attempts to remove the given point. |
![]() |
void | RemovePoint
(
FLidarPointCloudPoint Point |
Attempts to remove the given point. |
![]() |
void | RemovePoints
(
TArray< FLidarPointCloudPoint* >& Points |
Removes points in bulk |
![]() |
void | RemovePoints
(
TArray64< FLidarPointCloudPoint* >& Points |
Removes points in bulk |
![]() |
void | RemovePointsByRay
(
const FLidarPointCloudRay& Ray, |
Removes all points hit by the given ray |
![]() |
void | RemovePointsInBox
(
const FBox& Box, |
Removes all points within the given box |
![]() |
void | RemovePointsInSphere
(
const FSphere& Sphere, |
Removes all points within the given sphere |
![]() |
void | ResetNormals () |
Resets all normals information |
![]() |
void | SelectByConvexVolume
(
const FConvexVolume& ConvexVolume, |
|
![]() |
void | SelectBySphere
(
const FSphere& Sphere, |
|
![]() |
void | SetVisibilityOfFirstPointByRay
(
const bool& bNewVisibility, |
Sets visibility of the first point hit by the given ray. |
![]() |
void | SetVisibilityOfPointsByRay
(
const bool& bNewVisibility, |
Sets visibility of points hit by the given ray. |
![]() |
void | SetVisibilityOfPointsInBox
(
const bool& bNewVisibility, |
Sets visibility of points within the given box. |
![]() |
void | SetVisibilityOfPointsInSphere
(
const bool& bNewVisibility, |
Sets visibility of points within the given sphere. |
![]() |
void | StreamNodes
(
TArray< FLidarPointCloudOctreeNode* >& Nodes, |
Streams requested nodes or extends their lifetime, if already loaded Unloads all unused nodes with expired lifetime |
![]() |
void | UnhideAll () |
Marks all points visible |
![]() |
void | UnregisterTraversalOctree
(
FLidarPointCloudTraversalOctree* TraversalOctree |
Removes the given traversal octree from the list |
Operators
Type | Name | Description | |
---|---|---|---|
![]() |
FLidarPointCloudOctree & | ||
![]() |
FLidarPointCloudOctree & | operator=
(
const FLidarPointCloudOctree& |
Classes
Type | Name | Description | |
---|---|---|---|
![]() |
FSharedLODData | Stores shared per-LOD node data. |
Constants
Name | Description |
---|---|
MaxBucketSize | Maximum number of unallocated points to keep inside the node before they need to be converted in to a full child node |
MaxNodeDepth | Maximum allowed depth for any node |
NodeGridResolution | Virtual grid resolution to divide the node into |
Deprecated Functions
Type | Name | Description | |
---|---|---|---|
![]() |
void | GetPointsInFrustum
(
TArray64< FLidarPointCloudPoint* >& SelectedPoints, |
Use GetPointsInConvexVolume instead. |
![]() |
void | GetPointsInFrustum
(
TArray< FLidarPointCloudPoint* >& SelectedPoints, |
Use GetPointsInConvexVolume instead. |
![]() |
void | MarkRenderDataInFrustumDirty
(
const FConvexVolume& Frustum |
Use MarkRenderDataInConvexVolumeDirty instead. |