ULidarPointCloud

Represents the Point Cloud asset

Windows
MacOS
Linux

Inheritance Hierarchy

References

Module

LidarPointCloudRuntime

Header

/Engine/Plugins/Enterprise/LidarPointCloud/Source/LidarPointCloudRuntime/Public/LidarPointCloud.h

Include

#include "LidarPointCloud.h"

Syntax

UCLASS (BlueprintType, AutoExpandCategories=("Performance", "Rendering|Sprite"),
       AutoCollapseCategories=("Import Settings"))
class ULidarPointCloud :
    public UObject ,
    public IInterface_CollisionDataProvider

Remarks

Represents the Point Cloud asset

Variables

Name Description

Public variable UProperty Category, EditAnywhere BlueprintReadWrite

float

 

CollisionAccuracy

Determines the accuracy (in cm) of the collision for this point cloud.

Public variable

FLidarPointClou...

 

CollisionRendering

Public variable

TSharedPtr < str...

 

ImportSettings

Holds pointer to the Import Settings used for the import.

Public variable UProperty

FDoubleVector

 

LocationOffset

Contains an offset to be added to all points when rendering

Public variable

FLidarPointClou ...

 

Octree

Public variable UProperty

FDoubleVector

 

OriginalCoordinates

Stores the original offset as a double.

Constructors

Name Description

Public function

ULidarPointCloud()

Functions

Name Description

Public function Static

void

 

AlignClouds

(
    TArray < ULidarPointCloud * > Po...
)

Aligns provided clouds based on the relative offset between their Original Coordinates.

Public function UFunction BlueprintCallable, Category

void

 

ApplyColorToAllPoints

(
    const FColor & NewColor,
    const bool & bVisibleOnly
)

Applies the given color to all points

Public function UFunction BlueprintCallable, Category

void

 

ApplyColorToFirstPointByRay

(
    FColor NewColor,
    FVector Origin,
    FVector Direction,
    float Radius,
    bool bVisibleOnly
)

Applies the given color to the first point hit by the given ray

Public function

void

 

ApplyColorToFirstPointByRay

(
    const FColor & NewColor,
    const FLidarPointCloudRay & Ray,
    const float& Radius,
    bool bVisibleOnly
)

Public function UFunction BlueprintCallable, Category

void

 

ApplyColorToPointsByRay

(
    FColor NewColor,
    FVector Origin,
    FVector Direction,
    float Radius,
    bool bVisibleOnly
)

Applies the given color to all points hit by the given ray

Public function

void

 

ApplyColorToPointsByRay

(
    const FColor & NewColor,
    const FLidarPointCloudRay & Ray,
    const float& Radius,
    bool bVisibleOnly
)

Public function UFunction BlueprintCallable, Category

void

 

ApplyColorToPointsInBox

(
    FColor NewColor,
    FVector Center,
    FVector Extent,
    bool bVisibleOnly
)

Applies the given color to all points within the box

Public function

void

 

ApplyColorToPointsInBox

(
    const FColor & NewColor,
    const FBox & Box,
    const bool & bVisibleOnly
)

Public function

void

 

ApplyColorToPointsInSphere

(
    const FColor & NewColor,
    FSphere Sphere,
    const bool & bVisibleOnly
)

Public function UFunction BlueprintCallable, Category

void

 

ApplyColorToPointsInSphere

(
    FColor NewColor,
    FVector Center,
    float Radius,
    bool bVisibleOnly
)

Applies the given color to all points within the sphere

Public function UFunction BlueprintCallable, Category

void

 

BuildCollision()

Builds collision mesh for the cloud, using current collision settings

Public function Static

FBox

 

CalculateBoundsFromPoints

(
    const TArray < FLidarPointCloudPoint ...
)

Public function Static

FBox

 

CalculateBoundsFromPoints

(
    const FLidarPointCloudPoint * P...,
    const int64 & Count
)

Returns bounds fitting the given list of points

Public function Static

FBox

 

CalculateBoundsFromPoints

(
    FLidarPointCloudPoint ** Po...,
    const int64 & Count
)

Returns bounds fitting the given list of points

Public function UFunction BlueprintCallable, Category

void

 

CenterPoints()

Centers this cloud

Public function Static

ULidarPointC ...

 

CreateFromData

(
    const TArray < FLidarPointCloudPoint ...,
    const FLidarPointCloudAsyncParamete ...
)

Public function Static

ULidarPointC ...

 

CreateFromData

(
    TArray < FLidarPointCloudPoint *...,
    const bool & bUseAsync
)

Public function Static

ULidarPointC ...

 

CreateFromData

(
    TArray < FLidarPointCloudPoint *...,
    const FLidarPointCloudAsyncParamete ...
)

Public function Static

ULidarPointC ...

 

CreateFromData

(
    T Points,
    const int64 & Count,
    const FLidarPointCloudAsyncParamete ...
)

Returns new Point Cloud object created from the data provided.

Public function Static

ULidarPointC ...

 

CreateFromData

(
    const TArray < FLidarPointCloudPoint ...,
    const bool & bUseAsync
)

Public function Static

ULidarPointC ...

 

CreateFromFile

(
    const FString & Filename,
    TSharedPtr < struct FLidarPointCloud ...,
    UObject * InParent,
    FName InName,
    EObjectFlags Flags
)

Returns new Point Cloud object imported using the settings provided.

Public function Static

ULidarPointC ...

 

CreateFromFile

(
    const FString & Filename,
    const FLidarPointCloudAsyncParamete ...,
    TSharedPtr < struct FLidarPointCloud ...,
    UObject * InParent,
    FName InName,
    EObjectFlags Flags
)

Public function

void

 

ExecuteActionOnAllPoints

(
    TFunction < void ...,
    const bool & bVisibleOnly
)

Executes the provided action on each of the points.

Public function

void

 

ExecuteActionOnFirstPointByRay

(
    TFunction < void ...,
    const FLidarPointCloudRay & Ray,
    const float& Radius,
    bool bVisibleOnly
)

Executes the provided action on the first point hit by the given ray.

Public function

void

 

ExecuteActionOnPointsByRay

(
    TFunction < void ...,
    const FLidarPointCloudRay & Ray,
    const float& Radius,
    bool bVisibleOnly
)

Executes the provided action on each of the points hit by the given ray.

Public function

void

 

ExecuteActionOnPointsInBox

(
    TFunction < void ...,
    const FBox & Box,
    const bool & bVisibleOnly
)

Public function

void

 

ExecuteActionOnPointsInBox

(
    TFunction < void ...,
    const FVector & Center,
    const FVector & Extent,
    const bool & bVisibleOnly
)

Executes the provided action on each of the points within the given box.

Public function

void

 

ExecuteActionOnPointsInSphere

(
    TFunction < void ...,
    FSphere Sphere,
    const bool & bVisibleOnly
)

Public function

void

 

ExecuteActionOnPointsInSphere

(
    TFunction < void ...,
    const FVector & Center,
    const float& Radius,
    const bool & bVisibleOnly
)

Executes the provided action on each of the points within the given sphere.

Public function UFunction BlueprintCallable, Category

bool

 

Export

(
    const FString & Filename
)

Exports this Point Cloud to the given filename.

Public function

UBodySetup &...

 

GetBodySetup()

Public function Const UFunction BlueprintPure, Category

FBox

 

GetBounds()

Public function

TArray < uint ...

 

GetClassificationsImported()

Public function Const UFunction BlueprintPure, Category

int32

 

GetDataSize()

Returns the amount of memory in MB used to store the point cloud.

Public function Const

FDoubleVecto ...

 

GetLocationOffset()

Returns the Cloud's offset from the 0,0,0 coordinate

Public function Const UFunction BlueprintPure, Category

int32

 

GetNumLODs()

Public function Const UFunction BlueprintPure, Category

int32

 

GetNumNodes()

Public function Const UFunction BlueprintPure, Category

int32

 

GetNumPoints()

Public function

void

 

GetPoints

(
    TArray < FLidarPointCloudPoint *...,
    int64 StartIndex,
    int64 Count
)

Public function

TArray < FLid ...

 

GetPoints

(
    int64 StartIndex,
    int64 Count
)

Populates the given array with points from the tree

Public function Const UFunction BlueprintPure, Category

TArray < FLid ...

 

GetPointsAsCopies

(
    bool bReturnWorldSpace,
    int32 StartIndex,
    int32 Count
)

Returns an array with copies of points from the tree If ReturnWorldSpace is selected, the points' locations will be converted into absolute value, otherwise they will be relative to the center of the cloud.

Public function Const

void

 

GetPointsAsCopies

(
    TArray < FLidarPointCloudPoint >& P...,
    bool bReturnWorldSpace,
    int64 StartIndex,
    int64 Count
)

Returns an array with copies of points from the tree If ReturnWorldSpace is selected, the points' locations will be converted into absolute value, otherwise they will be relative to the center of the cloud.

Public function Const UFunction BlueprintPure, Category, Meta

FBox

 

GetPointsBounds()

Public function

void

 

GetPointsInBox

(
    TArray < FLidarPointCloudPoint *...,
    const FBox & Box,
    const bool & bVisibleOnly
)

Populates the array with the list of points within the given box.

Public function

void

 

GetPointsInBoxAsCopies

(
    TArray < FLidarPointCloudPoint >& S...,
    const FBox & Box,
    const bool & bVisibleOnly,
    bool bReturnWorldSpace
)

Returns an array with copies of points within the given box If ReturnWorldSpace is selected, the points' locations will be converted into absolute value, otherwise they will be relative to the center of the cloud.

Public function UFunction BlueprintPure, Category

TArray < FLid ...

 

GetPointsInBoxAsCopies

(
    FVector Center,
    FVector Extent,
    bool bVisibleOnly,
    bool bReturnWorldSpace
)

Returns an array with copies of points within the given box If ReturnWorldSpace is selected, the points' locations will be converted into absolute value, otherwise they will be relative to the center of the cloud.

Public function

void

 

GetPointsInFrustum

(
    TArray < FLidarPointCloudPoint *...,
    const FConvexVolume & Frustum,
    const bool & bVisibleOnly
)

Populates the array with the list of points within the given frustum.

Public function

void

 

GetPointsInSphere

(
    TArray < FLidarPointCloudPoint *...,
    FSphere Sphere,
    const bool & bVisibleOnly
)

Populates the array with the list of points within the given sphere.

Public function

void

 

GetPointsInSphereAsCopies

(
    TArray < FLidarPointCloudPoint >& S...,
    FSphere Sphere,
    const bool & bVisibleOnly,
    bool bReturnWorldSpace
)

Returns an array with copies of points within the given sphere If ReturnWorldSpace is selected, the points' locations will be converted into absolute value, otherwise they will be relative to the center of the cloud.

Public function UFunction BlueprintPure, Category

TArray < FLid ...

 

GetPointsInSphereAsCopies

(
    FVector Center,
    float Radius,
    bool bVisibleOnly,
    bool bReturnWorldSpace
)

Returns an array with copies of points within the given sphere If ReturnWorldSpace is selected, the points' locations will be converted into absolute value, otherwise they will be relative to the center of the cloud.

Public function Const UFunction BlueprintPure, Category

FString

 

GetSourcePath()

Public function Const UFunction BlueprintPure, Category

bool

 

HasCollisionData()

Returns true, if the Octree has collision built

Public function UFunction BlueprintCallable, Category

void

 

HideAll()

Marks all points hidden

Public function UFunction BlueprintCallable, Category

void

 

Initialize

(
    const FBox & NewBounds
)

Re-initializes the asset with new bounds. Warning: Will erase all currently held data!

Public function UFunction BlueprintCallable, Category

void

 

InsertPoint

(
    const FLidarPointCloudPoint & Point,
    ELidarPointCloudDuplicateHandling D...,
    bool bRefreshPointsBounds,
    const FVector & Translation
)

Inserts the given point into the Octree structure.

Public function

bool

 

InsertPoints

(
    T InPoints,
    const int64 & Count,
    ELidarPointCloudDuplicateHandling D...,
    bool bRefreshPointsBounds,
    const FVector & Translation,
    FThreadSafeBool * bCanceled,
    TFunction < void > ProgressCal...
)

Inserts group of points into the Octree structure, multi-threaded.

Public function UFunction BlueprintCallable, Category

void

 

InsertPoints

(
    const TArray < FLidarPointCloudPoint ...,
    ELidarPointCloudDuplicateHandling D...,
    bool bRefreshPointsBounds,
    const FVector & Translation
)

Inserts group of points into the Octree structure, multi-threaded.

Public function

bool

 

InsertPoints_NoLock

(
    T InPoints,
    const int64 & Count,
    ELidarPointCloudDuplicateHandling D...,
    bool bRefreshPointsBounds,
    const FVector & Translation,
    FThreadSafeBool * bCanceled,
    TFunction < void > ProgressCal...
)

Public function Const UFunction BlueprintCallable, Category

bool

 

IsCentered()

Returns true, if the cloud has been centered.

Public function Const UFunction BlueprintPure, Category

bool

 

IsFullyLoaded()

Returns true, if the cloud is fully and persistently loaded.

Public function

bool

 

LineTraceMulti

(
    const FLidarPointCloudRay & Ray,
    const float& Radius,
    bool bVisibleOnly,
    bool bReturnWorldSpace,
    TArray < FLidarPointCloudPoint >& O...
)

Public function

bool

 

LineTraceMulti

(
    const FLidarPointCloudRay & Ray,
    const float& Radius,
    bool bVisibleOnly,
    TArray < FLidarPointCloudPoint *...
)

Public function UFunction BlueprintPure, Category, Meta

bool

 

LineTraceMulti

(
    FVector Origin,
    FVector Direction,
    float Radius,
    bool bVisibleOnly,
    bool bReturnWorldSpace,
    TArray < FLidarPointCloudPoint >& O...
)

Performs a raycast test against the point cloud.

Public function UFunction BlueprintPure, Category, Meta

bool

 

LineTraceSingle

(
    FVector Origin,
    FVector Direction,
    float Radius,
    bool bVisibleOnly,
    FLidarPointCloudPoint & PointHit
)

Performs a raycast test against the point cloud. Returns the pointer if hit or nullptr otherwise.

Public function

FLidarPointC ...

 

LineTraceSingle

(
    const FLidarPointCloudRay & Ray,
    const float& Radius,
    const bool & bVisibleOnly
)

Public function UFunction BlueprintCallable, Category

void

 

LoadAllNodes()

Persistently loads all nodes.

Public function UFunction BlueprintCallable, Category

void

 

MarkPointVisibilityDirty()

This should to be called if any manual modification to individual points' visibility has been made.

Public function UFunction BlueprintCallable, Category

void

 

Merge

(
    TArray < ULidarPointCloud * > Po...
)

Merges this point cloud with the ones provided

Public function

void

 

Merge

(
    TArray < ULidarPointCloud * > Po...,
    TFunction < void > ProgressCal...
)

Public function UFunction BlueprintCallable, Category

void

 

MergeSingle

(
    ULidarPointCloud * PointCloudTo...
)

Merges this point cloud with the one provided

Public function

FOnPointClou ...

 

OnPointCloudCollisionUpdated()

Public function

FOnPointClou ...

 

OnPointCloudRebuilt()

Public function

FOnPointClou ...

 

OnPreSaveCleanup()

Public function UFunction BlueprintCallable, Category

void

 

RefreshBounds()

Recalculates and updates points bounds.

Public function UFunction BlueprintCallable, Category

void

 

RefreshRendering()

Public function

void

 

Reimport

(
    const FLidarPointCloudAsyncParamete ...
)

Re-imports the cloud from it's original source file, overwriting any current point information.

Public function UFunction BlueprintCallable, Category, Meta

void

 

Reimport

(
    UObject * WorldContextObject,
    bool bUseAsync,
    FLatentActionInfo LatentInfo,
    ELidarPointCloudAsyncMode & AsyncMo...,
    float& Progress
)

Re-imports the cloud from it's original source file, overwriting any current point information.

Public function UFunction BlueprintCallable, Category

void

 

RemoveCollision()

Removes collision mesh from the cloud.

Public function UFunction BlueprintCallable, Category

void

 

RemoveHiddenPoints()

Removes all hidden points

Public function

void

 

RemovePoint

(
    const FLidarPointCloudPoint * P...
)

Public function UFunction BlueprintCallable, Category

void

 

RemovePoint

(
    FLidarPointCloudPoint Point
)

Attempts to remove the given point.

Public function

void

 

RemovePoint_NoLock

(
    const FLidarPointCloudPoint * P...
)

Public function

void

 

RemovePoint_NoLock

(
    FLidarPointCloudPoint Point
)

Public function

void

 

RemovePoints

(
    TArray < FLidarPointCloudPoint *...
)

Removes points in bulk

Public function

void

 

RemovePoints_NoLock

(
    TArray < FLidarPointCloudPoint *...
)

Public function

void

 

RemovePointsByRay

(
    const FLidarPointCloudRay & Ray,
    const float& Radius,
    const bool & bVisibleOnly
)

Public function UFunction BlueprintCallable, Category

void

 

RemovePointsByRay

(
    FVector Origin,
    FVector Direction,
    float Radius,
    bool bVisibleOnly
)

Removes all points hit by the given ray

Public function UFunction BlueprintCallable, Category

void

 

RemovePointsInBox

(
    FVector Center,
    FVector Extent,
    bool bVisibleOnly
)

Removes all points within the given box

Public function

void

 

RemovePointsInBox

(
    const FBox & Box,
    const bool & bVisibleOnly
)

Public function

void

 

RemovePointsInSphere

(
    FSphere Sphere,
    const bool & bVisibleOnly
)

Public function UFunction BlueprintCallable, Category

void

 

RemovePointsInSphere

(
    FVector Center,
    float Radius,
    bool bVisibleOnly
)

Removes all points within the given sphere

Public function UFunction BlueprintCallable, Category, Meta

void

 

ResetVisibilityAsync()

Public function UFunction BlueprintCallable, Category

void

 

RestoreOriginalCoordinates()

Restores original coordinates

Public function

bool

 

SetData

(
    TArray < FLidarPointCloudPoint *...
)

Public function UFunction BlueprintCallable, Category

bool

 

SetData

(
    const TArray < FLidarPointCloudPoint ...
)

Reinitializes the cloud with the new set of data.

Public function

bool

 

SetData

(
    T Points,
    const int64 & Count,
    TFunction < void > ProgressCal...
)

Public function

void

 

SetLocationOffset

(
    FDoubleVector Offset
)

Public function UFunction BlueprintCallable, Category

void

 

SetLocationOffset

(
    FVector Offset
)

Applies given offset to this point cloud.

Public function UFunction BlueprintCallable, Category

void

 

SetSourcePath

(
    const FString & NewSourcePath
)

Public function

void

 

SetVisibilityOfFirstPointByRay

(
    const bool & bNewVisibility,
    const FLidarPointCloudRay & Ray,
    const float& Radius
)

Public function UFunction BlueprintCallable, Category

void

 

SetVisibilityOfFirstPointByRay

(
    bool bNewVisibility,
    FVector Origin,
    FVector Direction,
    float Radius
)

Sets visibility of the first point hit by the given ray.

Public function

void

 

SetVisibilityOfPointsByRay

(
    const bool & bNewVisibility,
    const FLidarPointCloudRay & Ray,
    const float& Radius
)

Public function UFunction BlueprintCallable, Category

void

 

SetVisibilityOfPointsByRay

(
    bool bNewVisibility,
    FVector Origin,
    FVector Direction,
    float Radius
)

Sets visibility of points hit by the given ray.

Public function UFunction BlueprintCallable, Category, Meta

void

 

SetVisibilityOfPointsByRayAsync

(
    bool bNewVisibility,
    FVector Origin,
    FVector Direction,
    float Radius
)

Public function

void

 

SetVisibilityOfPointsInBox

(
    const bool & bNewVisibility,
    const FBox & Box
)

Public function UFunction BlueprintCallable, Category

void

 

SetVisibilityOfPointsInBox

(
    bool bNewVisibility,
    FVector Center,
    FVector Extent
)

Sets visibility of points within the given box.

Public function UFunction BlueprintCallable, Category, Meta

void

 

SetVisibilityOfPointsInBoxAsync

(
    bool bNewVisibility,
    FVector Center,
    FVector Extent
)

Public function UFunction BlueprintCallable, Category

void

 

SetVisibilityOfPointsInSphere

(
    bool bNewVisibility,
    FVector Center,
    float Radius
)

Sets visibility of points within the given sphere.

Public function

void

 

SetVisibilityOfPointsInSphere

(
    const bool & bNewVisibility,
    FSphere Sphere
)

Public function UFunction BlueprintCallable, Category, Meta

void

 

SetVisibilityOfPointsInSphereAsync

(
    bool bNewVisibility,
    FVector Center,
    float Radius
)

Public function UFunction BlueprintCallable, Category, Meta

void

 

ShiftPointsBy

(
    FVector Offset,
    bool bRefreshPointsBounds
)

Public function UFunction BlueprintCallable, Category

void

 

UnhideAll()

Marks all points visible

Overridden from UObject

Name Description

Public function Virtual

void

 

BeginDestroy()

Called before destroying the object.

Public function Virtual Const

void

 

GetAssetRegistryTags

(
    TArray < FAssetRegistryTag >& OutTa...
)

Gathers a list of asset registry searchable tags which are name/value pairs with some type information This only needs to be implemented for asset objects

Public function Virtual

void

 

PostEditChangeProperty

(
    FPropertyChangedEvent & PropertyCha...
)

Called when a property on this object has been modified externally

Public function Virtual

void

 

PostLoad()

Do any object-specific cleanup required immediately after loading an object.

Public function Virtual

void

 

PreSave

(
    const ITargetPlatform * TargetP...
)

Presave function.

Public function Virtual

void

 

Serialize

(
    FArchive & Ar
)

Handles reading, writing, and reference collecting using FArchive .

Overridden from IInterface_CollisionDataProvider

Name Description

Public function Virtual Const

bool

 

ContainsPhysicsTriMeshData

(
    bool InUseAllTriData
)

Interface for checking if the implementing objects contains triangle mesh collision data

Public function Virtual

bool

 

GetPhysicsTriMeshData

(
    FTriMeshCollisionData * Collisi...,
    bool InUseAllTriData
)

Interface for retrieving triangle mesh collision data from the implementing object

Public function Virtual

bool

 

WantsNegXTriMesh()

Do we want to create a negative version of this mesh

Constants

Name

Description

PointCloudFileGUID

Required for file versioning

PointCloudFileVersion

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback