Fish - FiberLib for VISH 0.3
Fish - The Fiber Bundle API for the Vish Visualization Shell
Fiber::RegularlyFragmentedClusteredPointCloudGrid Struct Reference

Grid type for a fragmented point cloud proving a cell look into presorted vertices. More...

#include <RegularlyFragmentedClusteredPointCloudGrid.hpp>

Inheritance diagram for Fiber::RegularlyFragmentedClusteredPointCloudGrid:
Fiber::FragmentedUniformGrid3DPoints Fiber::RegularlyFragmentedGridWithCartesianVertices< 3 > Fiber::RegularlyFragmentedGrid< VertexDims > Fiber::GridWithCartesianVertices Fiber::RegularlyFragmentedGridBase Fiber::TypedGrid Fiber::TypedGrid Eagle::StrongPtr< Object, ObjectBase > Eagle::StrongPtr< Object, ObjectBase > MemCore::WeakPtr< Object, ObjectBase > MemCore::WeakPtr< Object, ObjectBase > MemCore::DynPtr< Object, ObjectBase > MemCore::DynPtr< Object, ObjectBase >

Classes

struct  FragmentWorker
 Class which can be used, when working with one explicit fragment only, providing all required data arrays for the vertex cluster. More...

Public Types

typedef RefPtr< UniformCartesianArrayCellArray_t
typedef RefPtr< MemArray< 1, vc_index_t > > ClusterStartsArray_t
typedef RefPtr< MemArray< 1, vc_index_t > > ClusterArray_t
typedef std::map< vc_index_t, vc_index_t > IndexMap_t
Public Types inherited from Fiber::FragmentedUniformGrid3DPoints
typedef MemArray< 1, Eagle::PhysicalSpace::pointCoordsArray_t
Public Types inherited from Fiber::RegularlyFragmentedGridWithCartesianVertices< 3 >
typedef MemArrayBase< VertexDims > CoordsArray_t
Public Types inherited from Fiber::RegularlyFragmentedGrid< VertexDims >
typedef MemArray< VertexDims, RefPtr< FragmentID > > FragmentArray_t
Public Types inherited from Eagle::StrongPtr< Object, ObjectBase >
typedef WeakPtr< Object, ObjectBase >::ObjectBase_t ObjectBase_t
Public Types inherited from MemCore::WeakPtr< Object, ObjectBase >
typedef Object object_t
typedef ObjectBase ObjectBase_t
typedef RefPtrTypeTrait< Object, ObjectBase >::ReferencePointerType pointer_t
typedef RefPtrTypeTrait< Object, ObjectBase >::ReferenceValueType refvalue_t
Public Types inherited from MemCore::DynPtr< Object, ObjectBase >
typedef Object object_t

Public Member Functions

 RegularlyFragmentedClusteredPointCloudGrid (const RefPtr< Grid > &G)
CellArray_t getCellArray (const MultiIndex< 3 > &frag) const
ClusterStartsArray_t getClusterStartsArray (const MultiIndex< 3 > &frag) const
ClusterArray_t getClusterLookUpArray (const MultiIndex< 3 > &frag) const
bool findFragment (const Eagle::PhysicalSpace::point &query_position, MultiIndex< 3 > &index) const
 Get the multindex of the regular fragment the point is located in.
bool findCell (const Eagle::PhysicalSpace::point &query_position, const MultiIndex< 3 > &frag_index, MultiIndex< 3 > &cell_index) const
 Get the cell index of the cell-cluster lookup in a given fragment.
bool findFragmentAndCell (const Eagle::PhysicalSpace::point &query_position, MultiIndex< 3 > &frag_index, MultiIndex< 3 > &cell_index) const
 Get the multindex of the regular fragment the point is located in and the cell index of the cell-cluster lookup.
RefPtr< Chunk< MultiIndex< 3 > > > findCellsManhatten (const Eagle::PhysicalSpace::point &query_position, double radius) const
RefPtr< Chunk< MultiIndex< 3 > > > findCells (const Eagle::PhysicalSpace::point &query_position, double radius)
 Get a chunk of cluster cells around the query point.
RefPtr< Chunk< MultiIndex< 3 > > > findCells (const Eagle::PhysicalSpace::point &query_position, double radius, const MultiIndex< 3 > &frag_index)
 Get a chunk of cluster cells around the query point in a given fragment.
RefPtr< Chunk< Eagle::PhysicalSpace::point > > findPoints (const Eagle::PhysicalSpace::point &query_position, double radius)
 Get a chunk of points around the qurey point.
RefPtr< Chunk< Eagle::PhysicalSpace::point > > findPoints (const Eagle::PhysicalSpace::point &query_position, double radius, const MultiIndex< 3 > &frag_index)
 Get a chunk of points around the qurey point.
Public Member Functions inherited from Fiber::FragmentedUniformGrid3DPoints
 FragmentedUniformGrid3DPoints (const RefPtr< Grid > &grid)
RefPtr< CoordsArray_t > getCoords (const MultiIndex< 3 > &I) const
 Get the coordinates for the given fragment via its fragment index.
bool isValid () const
Public Member Functions inherited from Fiber::RegularlyFragmentedGridWithCartesianVertices< 3 >
RefPtr< CreativeArrayBasegetCoordCreator (const MultiIndex< VertexDims > &I) const
RefPtr< MemBasegetCoordData (const MultiIndex< VertexDims > &I) const
RefPtr< CoordsArray_t > getCoords (const MultiIndex< VertexDims > &I) const
RefPtr< RegularlyFragmentedField< VertexDims > > newVertexField (const char *Fieldname)
 Create a new regularly fragmented field on the vertices under the given name, overwriting an existing field.
RefPtr< RegularlyFragmentedField< VertexDims > > getVertexField (const char *Fieldname)
 Find a new regularly fragmented field on the vertices under the given name, creating a new one if not found.
MultiIndex< VertexDims > NumberOfFragments () const
 Get the number of fragments here as multi-dimensional index.
bool isValid () const
bool assign (const RefPtr< Grid > &theGrid)
Public Member Functions inherited from Fiber::RegularlyFragmentedGrid< VertexDims >
MultiIndex< VertexDims > NumberOfFragments () const
 Get the number of fragments here as multi-dimensional index.
RefPtr< FragmentIDgetFragmentID (const MultiIndex< VertexDims > &FragmentIndex) const
 Get the fragment ID for the given fragment index.
 RegularlyFragmentedGrid (const RefPtr< Grid > &G=nullptr)
bool assign (const RefPtr< Grid > &theGrid)
Public Member Functions inherited from Fiber::RegularlyFragmentedGridBase
bool assign (const RefPtr< Grid > &theGrid)
Public Member Functions inherited from Fiber::TypedGrid
bool assign (const RefPtr< Grid > &theGrid)
bool invalidate ()
 Invalidate the stored Grid pointer and return false.
Public Member Functions inherited from Eagle::StrongPtr< Object, ObjectBase >
StrongPtrassignStrong (const DynPtr_t &other)
StrongPtrassignStrong (const ReferenceBase< ObjectBase_t > *Obj)
StrongPtrassignStrong (const std::nullptr_t &)
auto operator() (Arguments...parameters) const -> decltype((*this->getPtrValue())(parameters...))
refvalue_toperator* () const
pointer_t operator-> () const
StrongPtroperator= (const DynPtr_t &other)
StrongPtroperator= (const ReferenceBase< ObjectBase_t > *Obj)
StrongPtroperator= (const std::initializer_list< StrongPtr > &other)
StrongPtroperator= (const std::nullptr_t &)
StrongPtroperator= (const StrongPtr &other)
auto operator[] (const IndexType &I) const -> decltype((*this->getPtrValue())[I])
 StrongPtr (const ReferenceBase< ObjectBase_t > *Obj)
 StrongPtr (const ReferenceBase< ObjectBase_t > *Obj, const NotNullPtr &)
 StrongPtr (const std::nullptr_t &)
 StrongPtr (const StrongPtr< ChildObject, ObjectBase > &Other)
 StrongPtr (const StrongPtr< Object, ObjectBase > &Other)
 StrongPtr (const WeakPtr< ChildObject, ObjectBase_t > &Other)
Public Member Functions inherited from MemCore::WeakPtr< Object, ObjectBase >
 WeakPtr (const std::nullptr_t &)
 WeakPtr (const ReferenceBase< ObjectBase > *Obj)
 WeakPtr (const ReferenceBase< ObjectBase > *Obj, const NotNullPtr &)
 WeakPtr (const WeakPtr< AnyObject, ObjectBase > &Other)
 WeakPtr (const WeakPtr &Other)
pointer_t getPtrValue () const
pointer_t operator-> () const
refvalue_toperator* () const
size_t operator~ () const
WeakPtrassignWeak (const WeakPtr &other)
WeakPtroperator= (const WeakPtr &other)
Public Member Functions inherited from MemCore::DynPtr< Object, ObjectBase >
const DynPtrgetDynPtr () const noexcept
const type_info & getType () const noexcept
bool isAssignable (const DynPtr< ObjectBase, ObjectBase > &Other) const noexcept
 operator void * () const noexcept
bool operator! () const noexcept
void speak (const char *s, const char *prefix="") const noexcept
void Speak (const char *s, const char *prefix="") const
Public Member Functions inherited from Fiber::GridWithCartesianVertices
 GridWithCartesianVertices (const RefPtr< Grid > &theGrid=nullptr)
bool assign (const RefPtr< Grid > &theGrid)
bool isValid () const

Static Public Member Functions

static SkeletonID ClusterCellID ()
static SkeletonID ClusterLookUpID ()
static int getCellsWherePointIsInGhostZone (const MultiIndex< 3 > &current, const MultiIndex< 3 > &max_cells, const Eagle::PhysicalSpace::point &pos, const Eagle::PhysicalSpace::point &t_min, const Eagle::PhysicalSpace::tvector &t_diag, double ghost_r, Eagle::FixedArray< MultiIndex< 3 >, 7 > &cells)
static bool create (RefPtr< Grid > &RegularGrid, const RefPtr< RegularlyFragmentedField< 3 > > &CellPositions, const RefPtr< RegularlyFragmentedField< 3 > > &ClusterAsPointsPositions, const RefPtr< RegularlyFragmentedField< 3 > > &ClusterAsCellPositions)
static bool create (RefPtr< Grid > &grid, const MultiIndex< 3 > &fragment_resolution, const RefPtr< Eagle::BoundingBox > &bb)
Static Public Member Functions inherited from Fiber::FragmentedUniformGrid3DPoints
static FragmentedUniformGrid3DPoints create (Grid &grid, const MultiIndex< 3 > &nr_fragments, const Eagle::point3 &start, const Eagle::point3 &end)
 Create a fragmented uniform grid in cartesian coordinates within the given bounding box as specified by the two points.
static FragmentedUniformGrid3DPoints create (Grid &grid, const MultiIndex< 3 > &nr_fragments, const Eagle::BoundingBox &bb)
Static Public Member Functions inherited from Fiber::RegularlyFragmentedGridWithCartesianVertices< 3 >
static RegularlyFragmentedGridWithCartesianVertices create (Grid &myGrid, const MultiIndex< VertexDims > &NumberOfFragments, bool NeedPerFragmentData=false)
 Create a regularly fragmented grid with cartesian vertices.
Static Public Member Functions inherited from Fiber::RegularlyFragmentedGrid< VertexDims >
static SkeletonID FragmentSkeletonID (int IndexDepth=0, int RefLevel=0)
static SkeletonID ID ()
static SkeletonID FragmentSkeletonID (const SkeletonID &S)
static RegularlyFragmentedGrid create (Grid &myGrid, const RefPtr< RegularlyFragmentedField< VertexDims > > &VertexPositions, const SkeletonID &FragmentedSkeletonID)
 Create a fragment skeleton on the given Grid.
static RegularlyFragmentedGrid create (Grid &myGrid, const RefPtr< RegularlyFragmentedField< VertexDims > > &VertexPositions, const RefPtr< Skeleton > &Vertices)
static RegularlyFragmentedGrid create (Grid &myGrid, const RefPtr< RegularlyFragmentedField< VertexDims > > &VertexPositions)
static RegularlyFragmentedGrid createFragmentSkeleton (Grid &myGrid, const RefPtr< Skeleton > &Vertices, const RefPtr< RegularlyFragmentedField< VertexDims > > &VertexPositions, Skeleton &FragmentSkeleton)
static RegularlyFragmentedGrid createWithCartesianVertices (Grid &myGrid, const MultiIndex< VertexDims > &NumberOfFragments)
Static Public Member Functions inherited from Fiber::RegularlyFragmentedGridBase
static SkeletonID FragmentVerticesSkeletonID ()
static SkeletonID computeFragmentSkeletonID (const Field &F, const SkeletonID &SID)
static void create (Grid &myGrid)
Static Public Member Functions inherited from MemCore::DynPtr< Object, ObjectBase >
static const DynPtrgetNullPtr () noexcept
Static Public Member Functions inherited from Fiber::GridWithCartesianVertices
static GridWithCartesianVertices create (Grid &myGrid, int Dims, const RefPtr< Field > &Positions)

Public Attributes

RefPtr< SkeletonCell
RefPtr< SkeletonCluster
RefPtr< RepresentationCellsAsCartesian
RefPtr< RepresentationClusterAsPoints
RefPtr< RepresentationClusterAsCells
RefPtr< RegularlyFragmentedField< 3 > > CellPositions
RefPtr< RegularlyFragmentedField< 3 > > ClusterAsPointsPositions
RefPtr< RegularlyFragmentedField< 3 > > ClusterAsCellPositions
Public Attributes inherited from Fiber::FragmentedUniformGrid3DPoints
RefPtr< UniformCartesianArrayFragmentCoordinates
 The coordinates, i.e. corner points, of each fragment.
Public Attributes inherited from Fiber::RegularlyFragmentedGridWithCartesianVertices< 3 >
RefPtr< RepresentationFragmentVerticesInCartesianCoordinates
 Collection of fields that are defined per fragment vertex in cartesian coordinates.
RefPtr< RepresentationPerFragmentDataInCartesianCoordinates
 Collection of fields that are defined per fragment in cartesian coordinates.
RefPtr< RegularlyFragmentedField< VertexDims > > Positions
 Field for the vertex coordinates.
Public Attributes inherited from Fiber::RegularlyFragmentedGrid< VertexDims >
RefPtr< SkeletonFragmentSkeleton
RefPtr< RepresentationFragmentsAsVertices
 Fields per fragment providing coordinate-independent information.
RefPtr< FragmentArray_t > FragmentArray
Public Attributes inherited from Fiber::RegularlyFragmentedGridBase
RefPtr< SkeletonFragmentVerticesSkeleton
 The Skeleton containing the vertices of fragments, i.e.
Public Attributes inherited from Fiber::GridWithCartesianVertices
RefPtr< SkeletonVertices
RefPtr< RepresentationCartesianVertices
 Collection of all fields given on vertices relative to cartesian coordinates.
RefPtr< FieldCartesianPositions

Additional Inherited Members

Static Public Attributes inherited from Fiber::RegularlyFragmentedGrid< VertexDims >
static constexpr int Dims = VertexDims
Protected Member Functions inherited from MemCore::WeakPtr< Object, ObjectBase >
 WeakPtr (Object *that, const SelfInitialize &)
Protected Member Functions inherited from MemCore::DynPtr< Object, ObjectBase >
 DynPtr (const DynPtr< AnyObject, ObjectBase > &Other) noexcept
 DynPtr (const std::nullptr_t &) noexcept

Detailed Description

Grid type for a fragmented point cloud proving a cell look into presorted vertices.

Author
: marcel

Member Function Documentation

◆ findCell()

bool Fiber::RegularlyFragmentedClusteredPointCloudGrid::findCell ( const Eagle::PhysicalSpace::point & query_position,
const MultiIndex< 3 > & frag_index,
MultiIndex< 3 > & cell_index ) const

Get the cell index of the cell-cluster lookup in a given fragment.

Returns
false if outside, true if inside the corresponding indices

Referenced by findFragmentAndCell().

◆ findCells() [1/2]

RefPtr< Chunk< MultiIndex< 3 > > > Fiber::RegularlyFragmentedClusteredPointCloudGrid::findCells ( const Eagle::PhysicalSpace::point & query_position,
double radius )

Get a chunk of cluster cells around the query point.

References findCells().

Referenced by findCells().

◆ findCells() [2/2]

RefPtr< Chunk< MultiIndex< 3 > > > Fiber::RegularlyFragmentedClusteredPointCloudGrid::findCells ( const Eagle::PhysicalSpace::point & query_position,
double radius,
const MultiIndex< 3 > & frag_index )

Get a chunk of cluster cells around the query point in a given fragment.

◆ findFragment()

bool Fiber::RegularlyFragmentedClusteredPointCloudGrid::findFragment ( const Eagle::PhysicalSpace::point & query_position,
MultiIndex< 3 > & index ) const

Get the multindex of the regular fragment the point is located in.

Returns
false if outside, true if inside the corresponding index

References findFragment(), and Fiber::FragmentedUniformGrid3DPoints::FragmentCoordinates.

Referenced by findFragment(), and findFragmentAndCell().

◆ findFragmentAndCell()

bool Fiber::RegularlyFragmentedClusteredPointCloudGrid::findFragmentAndCell ( const Eagle::PhysicalSpace::point & query_position,
MultiIndex< 3 > & frag_index,
MultiIndex< 3 > & cell_index ) const

Get the multindex of the regular fragment the point is located in and the cell index of the cell-cluster lookup.

Returns
false if outside, true if inside the corresponding indices

References findCell(), and findFragment().

◆ findPoints() [1/2]

RefPtr< Chunk< Eagle::PhysicalSpace::point > > Fiber::RegularlyFragmentedClusteredPointCloudGrid::findPoints ( const Eagle::PhysicalSpace::point & query_position,
double radius )

Get a chunk of points around the qurey point.

◆ findPoints() [2/2]

RefPtr< Chunk< Eagle::PhysicalSpace::point > > Fiber::RegularlyFragmentedClusteredPointCloudGrid::findPoints ( const Eagle::PhysicalSpace::point & query_position,
double radius,
const MultiIndex< 3 > & frag_index )

Get a chunk of points around the qurey point.