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