Navigation
API > API/Plugins > API/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. |