Workspace 6.21.5
Public Types | Public Member Functions | List of all members
SplitAndLodPointCloud::PatchList Class Reference

Represents a list of patches; sub-regions of a point cloud.

#include <Rendering/SceneComponents/splitandlodpointcloud.h>

Public Types

using const_iterator = Application::IndexBasedIterator< PatchList, true >
 
using difference_type = long
 
using iterator = Application::IndexBasedIterator< PatchList, false >
 
using size_type = int
 
using value_type = Rendering::MeshModelInstance
 

Public Member Functions

 PatchList (Mesh::MeshModelLibrary &sourceMeshes)
 
iterator begin ()
 
const_iterator begin () const
 
void clear ()
 
iterator end ()
 
const_iterator end () const
 
LodSettings::LodNumber getMaxLod () const
 
Mesh::MeshModelInterfacegetPointCloudForPatch (int patchIndex, LodSettings::LodNumber globalLod)
 
Mesh::MeshModelInterfacegetPointCloudForPatch (iterator iter, LodSettings::LodNumber globalLod)
 
Mesh::MeshModelInterfacegetPointCloudForPatch (Rendering::MeshModelInstance &patch, LodSettings::LodNumber globalLod)
 
bool getPointCloudsIntersectingBoundingBox (MeshList &pointClouds, const Mesh::BoundingBoxMinimal &bounds, LodSettings::LodNumber lodLevel=0)
 
bool getPointCloudsIntersectingViewFrustum (MeshList &pointClouds, const ViewFrustumPlanes &planes, LodSettings::LodNumber lodLevel=0)
 
bool getPointsInBoundingBox (MeshList &pointClouds, const Mesh::BoundingBoxMinimal &bounds, LodSettings::LodNumber lodLevel=0)
 
bool getPointsInViewFrustum (MeshList &pointClouds, const ViewFrustumPlanes &planes, LodSettings::LodNumber lodLevel=0)
 
Mesh::MeshModelLibrarygetSourceMeshes ()
 
Rendering::MeshModelInstanceoperator[] (int i)
 
const Rendering::MeshModelInstanceoperator[] (int i) const
 
int size () const
 

Member Typedef Documentation

◆ const_iterator

◆ difference_type

using difference_type = long

◆ iterator

◆ size_type

using size_type = int

◆ value_type

Constructor & Destructor Documentation

◆ PatchList()

PatchList ( Mesh::MeshModelLibrary sourceMeshes)

Member Function Documentation

◆ begin() [1/2]

iterator begin ( )
inline

◆ begin() [2/2]

const_iterator begin ( ) const
inline

◆ clear()

void clear ( )

◆ end() [1/2]

iterator end ( )
inline

◆ end() [2/2]

const_iterator end ( ) const
inline

◆ getMaxLod()

quint8 getMaxLod ( ) const

◆ getPointCloudForPatch() [1/3]

Mesh::MeshModelInterface * getPointCloudForPatch ( int  patchIndex,
LodSettings::LodNumber  globalLod 
)

◆ getPointCloudForPatch() [2/3]

Mesh::MeshModelInterface * getPointCloudForPatch ( iterator  iter,
LodSettings::LodNumber  globalLod 
)

◆ getPointCloudForPatch() [3/3]

Mesh::MeshModelInterface * getPointCloudForPatch ( Rendering::MeshModelInstance patch,
LodSettings::LodNumber  globalLod 
)
Parameters
patchThe patch for which we wish to retrieve point cloud information at a particular global LOD level.
globalLodThe global level of detail for which we wish to retrieve the point cloud information. Expected to be in the range [0,maxLod_].

Returns the poiint cloud corresponding to the specified patch and the specified level of detail. The level of detail is specified in the global LOD range (i.e. across all patches in the set that was processed).

Returns
The point cloud for the patch at the level of detail globalLod.

◆ getPointCloudsIntersectingBoundingBox()

bool getPointCloudsIntersectingBoundingBox ( MeshList pointClouds,
const Mesh::BoundingBoxMinimal bounds,
LodSettings::LodNumber  lodLevel = 0 
)
Parameters
pointClouds(out) Output list of point clouds at the specified global LOD.
boundsBounding region from which point data is to be obtained.
lodLevelThe LOD at which to query the patches, zero being the most detailed. Note that the valid range of this number depends on the LODs computed across all patches, stored as the maxLod() property of the PatchList.

Returns a list of point clouds that intersect the specified region. Because these patches remain unchanged from the base implementation, ownership of the clouds remains in the hands of the PatchList - no cleanup is required.

Returns
true if the point clouds were able to be obtained, false if some invalid data was supplied to the method such as lodLevel being out of range, or the MeshModelInterface objects in meshSources being out-of-date and requiring update (only applicable if a workflow is in use).

◆ getPointCloudsIntersectingViewFrustum()

bool getPointCloudsIntersectingViewFrustum ( MeshList pointClouds,
const ViewFrustumPlanes planes,
LodSettings::LodNumber  lodLevel = 0 
)
Parameters
pointClouds(out) Output list of point clouds at the specified global LOD.
planesNormalised view frustum planes.
lodLevelThe LOD at which to query the patches, zero being the most detailed. Note that the valid range of this number depends on the LODs computed across all patches, stored as the maxLod() property of the PatchList.
Returns

◆ getPointsInBoundingBox()

bool getPointsInBoundingBox ( MeshList pointClouds,
const Mesh::BoundingBoxMinimal bounds,
LodSettings::LodNumber  lodLevel = 0 
)
Parameters
pointClouds(out) Output list of point clouds at the specified global LOD.
boundsBounding region from which point data is to be obtained.
lodLevelThe LOD at which to query the patches, zero being the most detailed. Note that the valid range of this number depends on the LODs computed across all patches, stored as the maxLod() property of the PatchList.

Returns a list of point clouds, each containing only the points from the relevant patch that are contained within the specified region.

Note
The point clouds returned by this method are filters of the original patch clouds, so ownership lies with the calling code - it is the responsibility of the caller to delete the returned clouds.
Returns
true if the point clouds were able to be obtained, false if some invalid data was supplied to the method such as lodLevel being out of range, or the MeshModelInterface objects in meshSources being out-of-date and requiring update (only applicable if a workflow is in use).

◆ getPointsInViewFrustum()

bool getPointsInViewFrustum ( MeshList pointClouds,
const ViewFrustumPlanes planes,
LodSettings::LodNumber  lodLevel = 0 
)
Parameters
pointClouds(out) Output list of point clouds at the specified global LOD.
planesNormalised view frustum planes.
lodLevelThe LOD at which to query the patches, zero being the most detailed. Note that the valid range of this number depends on the LODs computed across all patches, stored as the maxLod() property of the PatchList.
Returns
true if the point clouds were able to be obtained, false if some invalid data was supplied to the method such as lodLevel being out of range, or the MeshModelInterface objects in meshSources being out-of-date and requiring update (only applicable if a workflow is in use).

◆ getSourceMeshes()

Mesh::MeshModelLibrary & getSourceMeshes ( )
inline

◆ operator[]() [1/2]

Rendering::MeshModelInstance & operator[] ( int  i)
inline

◆ operator[]() [2/2]

const Rendering::MeshModelInstance & operator[] ( int  i) const
inline

◆ size()

int size ( ) const
inline