Ponca  6d7f3619cbd70eb6ac131a3267ba1a351b1c9d07
Point Cloud Analysis library
Loading...
Searching...
No Matches
Spatial Partitioning module

This modules includes classes and methods for Spatial Partitioning and queries. More...

Classes

struct  Ponca::QueryInputBase
 Base class for queries input type. More...
 
struct  Ponca::QueryOutputBase
 Base class for queries output types. More...
 
struct  Ponca::QueryOutputBase::DummyOutputParameter
 
struct  Ponca::QueryInput< InputType_ >
 Base class for Query input type. More...
 
struct  Ponca::QueryInputIsIndex< Index >
 Extension of QueryInput that handles an index based search, in a partitioning structure. More...
 
struct  Ponca::QueryInputIsPosition< DataPoint >
 Extension of QueryInput that handles a position based search, in a partitioning structure. More...
 
struct  Ponca::QueryOutputIsRange< Index, Scalar >
 Class to construct the range query output. More...
 
struct  Ponca::QueryOutputIsNearest< Index, Scalar >
 Class to construct the nearest query output. More...
 
struct  Ponca::QueryOutputIsKNearest< Index, Scalar, MAX_KNN_SIZE >
 Class to construct the knearest queries. More...
 
struct  Ponca::Query< Input_, Output_ >
 Composes the Query object depending on an input type and output type. More...
 

Macros

#define POINT_QUERY_DOC(OUT_TYPE)
 
#define INDEX_QUERY_DOC(OUT_TYPE)
 Base Query class combining QueryInputIsPosition and QueryOutputIs##OUT_TYPE##.
 

Typedefs

template<typename Index , typename DataPoint , int MAX_KNN_SIZE>
using Ponca::KNearestPointQuery = Query< QueryInputIsPosition< DataPoint >, QueryOutputIsKNearest< Index, typename DataPoint::Scalar, MAX_KNN_SIZE > >
 Base Query alias combining QueryInputIsIndex and QueryOutputIs##OUT_TYPE##.
 
template<typename Index , typename DataPoint >
using Ponca::NearestPointQuery = Query< QueryInputIsPosition< DataPoint >, QueryOutputIsNearest< Index, typename DataPoint::Scalar > >
 
template<typename Index , typename DataPoint >
using Ponca::RangePointQuery = Query< QueryInputIsPosition< DataPoint >, QueryOutputIsRange< Index, typename DataPoint::Scalar > >
 
template<typename Index , typename Scalar , int MAX_KNN_SIZE>
using Ponca::KNearestIndexQuery = Query< QueryInputIsIndex< Index >, QueryOutputIsKNearest< Index, Scalar, MAX_KNN_SIZE > >
 
template<typename Index , typename Scalar >
using Ponca::NearestIndexQuery = Query< QueryInputIsIndex< Index >, QueryOutputIsNearest< Index, Scalar > >
 
template<typename Index , typename Scalar >
using Ponca::RangeIndexQuery = Query< QueryInputIsIndex< Index >, QueryOutputIsRange< Index, Scalar > >
 

Detailed Description

This modules includes classes and methods for Spatial Partitioning and queries.


Class Documentation

◆ Ponca::QueryInputBase

struct Ponca::QueryInputBase

Base class for queries input type.

Definition at line 26 of file query.h.

+ Inheritance diagram for Ponca::QueryInputBase:
+ Collaboration diagram for Ponca::QueryInputBase:

◆ Ponca::QueryOutputBase

struct Ponca::QueryOutputBase

Base class for queries output types.

QueryOutput objects are the return types of the searches of the accelerating structures defined in the SpatialPartitioning module.

They are used for easy access to the result outputs. (e.g. to iterate over the neighbors of the evaluated point using a rangeNeighborsQuery request).

Definition at line 39 of file query.h.

+ Inheritance diagram for Ponca::QueryOutputBase:
+ Collaboration diagram for Ponca::QueryOutputBase:

◆ Ponca::QueryOutputBase::DummyOutputParameter

struct Ponca::QueryOutputBase::DummyOutputParameter

Definition at line 41 of file query.h.

+ Collaboration diagram for Ponca::QueryOutputBase::DummyOutputParameter:

◆ Ponca::QueryInput

struct Ponca::QueryInput
template<typename InputType_>
struct Ponca::QueryInput< InputType_ >

Base class for Query input type.

Stores internally a value that is related to the point about to be evaluated (e.g. the position of the point, or its index)

Warning
This class has to be specialized for a specific input type, and can't be used as is.
See also
QueryInputIsIndex, QueryInputIsPosition

Definition at line 56 of file query.h.

+ Inheritance diagram for Ponca::QueryInput< InputType_ >:
+ Collaboration diagram for Ponca::QueryInput< InputType_ >:

Public Types

using InputType = InputType_
 Alias to the templated input type.
 

Public Member Functions

 QueryInput (InputType input)
 Default constructor that initialize the input field.
 
const InputTypeinput () const
 Read access to the input.
 

Protected Member Functions

void setInput (const InputType &input)
 Edit the input.
 

Member Typedef Documentation

◆ InputType

Alias to the templated input type.

Definition at line 59 of file query.h.

Constructor & Destructor Documentation

◆ QueryInput()

template<typename InputType_ >
Ponca::QueryInput< InputType_ >::QueryInput ( InputType  input)
inline

Default constructor that initialize the input field.

Definition at line 62 of file query.h.

Member Function Documentation

◆ input()

template<typename InputType_ >
const InputType & Ponca::QueryInput< InputType_ >::input ( ) const
inline

Read access to the input.

Definition at line 65 of file query.h.

◆ setInput()

template<typename InputType_ >
void Ponca::QueryInput< InputType_ >::setInput ( const InputType input)
inlineprotected

Edit the input.

Warning
Need to be used carefully. Modifying a query input while iterating on the query will result in undefined behavior. Simplest way to avoid this is to restart the iteration on the query. Usefull to avoid query reallocation between different requests.

Definition at line 76 of file query.h.

◆ Ponca::QueryInputIsIndex

struct Ponca::QueryInputIsIndex
template<typename Index>
struct Ponca::QueryInputIsIndex< Index >

Extension of QueryInput that handles an index based search, in a partitioning structure.

Stores internally the index of the evaluated point.

See also
QueryInput

Definition at line 90 of file query.h.

+ Inheritance diagram for Ponca::QueryInputIsIndex< Index >:
+ Collaboration diagram for Ponca::QueryInputIsIndex< Index >:

Public Types

using Base = QueryInput< Index >
 Alias to the inherited type.
 
using InputType = typename Base::InputType
 Alias to the templated input type (Index)
 
- Public Types inherited from Ponca::QueryInput< Index >
using InputType = Index
 Alias to the templated input type.
 

Public Member Functions

 QueryInputIsIndex (const InputType &point=-1)
 Default constructor that initialize the input index.
 
void operator() (const InputType &point=InputType::Zero())
 Access operator that resets the input index.
 
- Public Member Functions inherited from Ponca::QueryInput< Index >
 QueryInput (InputType input)
 Default constructor that initialize the input field.
 
const InputTypeinput () const
 Read access to the input.
 

Protected Member Functions

template<typename IndexType >
bool skipIndexFunctor (IndexType idx) const
 Functor used to check if a given Idx must be skipped.
 
template<typename VectorType , typename Container >
const VectorType getInputPosition (const Container &c)
 Generic method to access input position. The VectorType needs to be passed as a template argument.
 
- Protected Member Functions inherited from Ponca::QueryInput< Index >
void setInput (const InputType &input)
 Edit the input.
 

Member Typedef Documentation

◆ Base

template<typename Index >
using Ponca::QueryInputIsIndex< Index >::Base = QueryInput<Index>

Alias to the inherited type.

Definition at line 93 of file query.h.

◆ InputType

template<typename Index >
using Ponca::QueryInputIsIndex< Index >::InputType = typename Base::InputType

Alias to the templated input type (Index)

Definition at line 95 of file query.h.

Constructor & Destructor Documentation

◆ QueryInputIsIndex()

template<typename Index >
Ponca::QueryInputIsIndex< Index >::QueryInputIsIndex ( const InputType point = -1)
inline

Default constructor that initialize the input index.

Definition at line 98 of file query.h.

Member Function Documentation

◆ getInputPosition()

template<typename Index >
template<typename VectorType , typename Container >
const VectorType Ponca::QueryInputIsIndex< Index >::getInputPosition ( const Container c)
inlineprotected

Generic method to access input position. The VectorType needs to be passed as a template argument.

Definition at line 112 of file query.h.

◆ operator()()

template<typename Index >
void Ponca::QueryInputIsIndex< Index >::operator() ( const InputType point = InputType::Zero())
inline

Access operator that resets the input index.

Definition at line 101 of file query.h.

◆ skipIndexFunctor()

template<typename Index >
template<typename IndexType >
bool Ponca::QueryInputIsIndex< Index >::skipIndexFunctor ( IndexType  idx) const
inlineprotected

Functor used to check if a given Idx must be skipped.

Definition at line 106 of file query.h.

◆ Ponca::QueryInputIsPosition

struct Ponca::QueryInputIsPosition
template<typename DataPoint>
struct Ponca::QueryInputIsPosition< DataPoint >

Extension of QueryInput that handles a position based search, in a partitioning structure.

Stores internally the position of the evaluated point.

See also
QueryInput

Definition at line 125 of file query.h.

+ Inheritance diagram for Ponca::QueryInputIsPosition< DataPoint >:
+ Collaboration diagram for Ponca::QueryInputIsPosition< DataPoint >:

Public Types

using Base = QueryInput< typename DataPoint::VectorType >
 Alias to the inherited type.
 
using InputType = typename Base::InputType
 Alias to the templated input type (Index)
 
- Public Types inherited from Ponca::QueryInput< DataPoint::VectorType >
using InputType = DataPoint::VectorType
 Alias to the templated input type.
 

Public Member Functions

 QueryInputIsPosition (const InputType &point=InputType::Zero())
 Default constructor that initialize the input position.
 
void operator() (const InputType &point=InputType::Zero())
 Access operator that resets the input point.
 
- Public Member Functions inherited from Ponca::QueryInput< DataPoint::VectorType >
 QueryInput (InputType input)
 Default constructor that initialize the input field.
 
const InputTypeinput () const
 Read access to the input.
 

Protected Member Functions

template<typename IndexType >
bool skipIndexFunctor (IndexType idx) const
 Functor used to check if a given Idx must be skipped.
 
template<typename VectorType = typename DataPoint::VectorType, typename Container >
const VectorType getInputPosition (const Container &)
 Generic method to access input position. The VectorType needs to be passed as a template argument.
 
- Protected Member Functions inherited from Ponca::QueryInput< DataPoint::VectorType >
void setInput (const InputType &input)
 Edit the input.
 

Member Typedef Documentation

◆ Base

template<typename DataPoint >
using Ponca::QueryInputIsPosition< DataPoint >::Base = QueryInput<typename DataPoint::VectorType>

Alias to the inherited type.

Definition at line 128 of file query.h.

◆ InputType

template<typename DataPoint >
using Ponca::QueryInputIsPosition< DataPoint >::InputType = typename Base::InputType

Alias to the templated input type (Index)

Definition at line 130 of file query.h.

Constructor & Destructor Documentation

◆ QueryInputIsPosition()

template<typename DataPoint >
Ponca::QueryInputIsPosition< DataPoint >::QueryInputIsPosition ( const InputType point = InputType::Zero())
inline

Default constructor that initialize the input position.

Definition at line 133 of file query.h.

Member Function Documentation

◆ getInputPosition()

template<typename DataPoint >
template<typename VectorType = typename DataPoint::VectorType, typename Container >
const VectorType Ponca::QueryInputIsPosition< DataPoint >::getInputPosition ( const Container )
inlineprotected

Generic method to access input position. The VectorType needs to be passed as a template argument.

Definition at line 147 of file query.h.

◆ operator()()

template<typename DataPoint >
void Ponca::QueryInputIsPosition< DataPoint >::operator() ( const InputType point = InputType::Zero())
inline

Access operator that resets the input point.

Definition at line 136 of file query.h.

◆ skipIndexFunctor()

template<typename DataPoint >
template<typename IndexType >
bool Ponca::QueryInputIsPosition< DataPoint >::skipIndexFunctor ( IndexType  idx) const
inlineprotected

Functor used to check if a given Idx must be skipped.

Definition at line 141 of file query.h.

◆ Ponca::QueryOutputIsRange

struct Ponca::QueryOutputIsRange
template<typename Index, typename Scalar>
struct Ponca::QueryOutputIsRange< Index, Scalar >

Class to construct the range query output.

Stores internally the radius value of a range request.

See also
QueryOutputBase

Definition at line 160 of file query.h.

+ Inheritance diagram for Ponca::QueryOutputIsRange< Index, Scalar >:
+ Collaboration diagram for Ponca::QueryOutputIsRange< Index, Scalar >:

Public Types

using OutputParameter = Scalar
 Alias to Output type.
 

Public Member Functions

 QueryOutputIsRange (OutputParameter radius=OutputParameter(0))
 Default constructor that initialize the output parameter value.
 
void operator() (OutputParameter radius)
 Access operator that resets the output parameter.
 
Scalar radius () const
 Generic method to access the radius.
 
Scalar squaredRadius () const
 Generic method to access the radius squared.
 
void setRadius (Scalar radius)
 Set the radius distance of the query.
 
void setSquaredRadius (Scalar radius)
 Set the squared radius distance of the query.
 

Protected Member Functions

void reset ()
 Reset Query for a new search.
 
Scalar descentDistanceThreshold () const
 Distance threshold used during tree descent to select nodes to explore.
 

Protected Attributes

Scalar m_squared_radius {0}
 Radius used for the search.
 

Member Typedef Documentation

◆ OutputParameter

template<typename Index , typename Scalar >
using Ponca::QueryOutputIsRange< Index, Scalar >::OutputParameter = Scalar

Alias to Output type.

Definition at line 163 of file query.h.

Constructor & Destructor Documentation

◆ QueryOutputIsRange()

template<typename Index , typename Scalar >
Ponca::QueryOutputIsRange< Index, Scalar >::QueryOutputIsRange ( OutputParameter  radius = OutputParameter(0))
inline

Default constructor that initialize the output parameter value.

Definition at line 166 of file query.h.

Member Function Documentation

◆ descentDistanceThreshold()

template<typename Index , typename Scalar >
Scalar Ponca::QueryOutputIsRange< Index, Scalar >::descentDistanceThreshold ( ) const
inlineprotected

Distance threshold used during tree descent to select nodes to explore.

Definition at line 207 of file query.h.

◆ operator()()

template<typename Index , typename Scalar >
void Ponca::QueryOutputIsRange< Index, Scalar >::operator() ( OutputParameter  radius)
inline

Access operator that resets the output parameter.

Definition at line 172 of file query.h.

◆ radius()

template<typename Index , typename Scalar >
Scalar Ponca::QueryOutputIsRange< Index, Scalar >::radius ( ) const
inline

Generic method to access the radius.

Warning
This getter method is more expensive to process than squaredRadius, because it computes the square root of the squared radius each time it is called. This is done this way to avoid having to store internally two values related to the radius.

squaredRadius is overall better for distance comparison.

See also
squaredRadius

Definition at line 184 of file query.h.

◆ reset()

template<typename Index , typename Scalar >
void Ponca::QueryOutputIsRange< Index, Scalar >::reset ( )
inlineprotected

Reset Query for a new search.

Definition at line 205 of file query.h.

◆ setRadius()

template<typename Index , typename Scalar >
void Ponca::QueryOutputIsRange< Index, Scalar >::setRadius ( Scalar  radius)
inline

Set the radius distance of the query.

Note
Store internally the squared radius for faster distance comparison

Definition at line 198 of file query.h.

◆ setSquaredRadius()

template<typename Index , typename Scalar >
void Ponca::QueryOutputIsRange< Index, Scalar >::setSquaredRadius ( Scalar  radius)
inline

Set the squared radius distance of the query.

Definition at line 201 of file query.h.

◆ squaredRadius()

template<typename Index , typename Scalar >
Scalar Ponca::QueryOutputIsRange< Index, Scalar >::squaredRadius ( ) const
inline

Generic method to access the radius squared.

Definition at line 191 of file query.h.

Member Data Documentation

◆ m_squared_radius

template<typename Index , typename Scalar >
Scalar Ponca::QueryOutputIsRange< Index, Scalar >::m_squared_radius {0}
protected

Radius used for the search.

Definition at line 209 of file query.h.

◆ Ponca::QueryOutputIsNearest

struct Ponca::QueryOutputIsNearest
template<typename Index, typename Scalar>
struct Ponca::QueryOutputIsNearest< Index, Scalar >

Class to construct the nearest query output.

Stores internally the nearest neighbor and the Distance threshold (for tree descent).

See also
QueryOutputBase

Definition at line 219 of file query.h.

+ Inheritance diagram for Ponca::QueryOutputIsNearest< Index, Scalar >:
+ Collaboration diagram for Ponca::QueryOutputIsNearest< Index, Scalar >:

Public Types

using OutputParameter = typename QueryOutputBase::DummyOutputParameter
 Alias to Output type.
 

Public Member Functions

 QueryOutputIsNearest ()
 Default constructor.
 
void operator() ()
 Access operator.
 
Index get () const
 Get the closest points.
 

Protected Member Functions

void reset ()
 Reset Query for a new search.
 
Scalar descentDistanceThreshold () const
 Distance threshold used during tree descent to select nodes to explore.
 

Protected Attributes

Index m_nearest {-1}
 Index of the nearest neighbor.
 
Scalar m_squared_distance {std:: numeric_limits < Scalar > ::max()}
 Distance to the nearest neighbor.
 

Member Typedef Documentation

◆ OutputParameter

template<typename Index , typename Scalar >
using Ponca::QueryOutputIsNearest< Index, Scalar >::OutputParameter = typename QueryOutputBase::DummyOutputParameter

Alias to Output type.

Definition at line 222 of file query.h.

Constructor & Destructor Documentation

◆ QueryOutputIsNearest()

template<typename Index , typename Scalar >
Ponca::QueryOutputIsNearest< Index, Scalar >::QueryOutputIsNearest ( )
inline

Default constructor.

Definition at line 225 of file query.h.

Member Function Documentation

◆ descentDistanceThreshold()

template<typename Index , typename Scalar >
Scalar Ponca::QueryOutputIsNearest< Index, Scalar >::descentDistanceThreshold ( ) const
inlineprotected

Distance threshold used during tree descent to select nodes to explore.

Definition at line 241 of file query.h.

◆ get()

template<typename Index , typename Scalar >
Index Ponca::QueryOutputIsNearest< Index, Scalar >::get ( ) const
inline

Get the closest points.

Definition at line 231 of file query.h.

◆ operator()()

template<typename Index , typename Scalar >
void Ponca::QueryOutputIsNearest< Index, Scalar >::operator() ( )
inline

Access operator.

Definition at line 228 of file query.h.

◆ reset()

template<typename Index , typename Scalar >
void Ponca::QueryOutputIsNearest< Index, Scalar >::reset ( )
inlineprotected

Reset Query for a new search.

Definition at line 235 of file query.h.

Member Data Documentation

◆ m_nearest

template<typename Index , typename Scalar >
Index Ponca::QueryOutputIsNearest< Index, Scalar >::m_nearest {-1}
protected

Index of the nearest neighbor.

Definition at line 244 of file query.h.

◆ m_squared_distance

template<typename Index , typename Scalar >
Scalar Ponca::QueryOutputIsNearest< Index, Scalar >::m_squared_distance {std:: numeric_limits < Scalar > ::max()}
protected

Distance to the nearest neighbor.

Definition at line 246 of file query.h.

◆ Ponca::QueryOutputIsKNearest

struct Ponca::QueryOutputIsKNearest
template<typename Index, typename Scalar, int MAX_KNN_SIZE>
struct Ponca::QueryOutputIsKNearest< Index, Scalar, MAX_KNN_SIZE >

Class to construct the knearest queries.

Stores internally the neighbors collection of the knn request and the Distance threshold (for tree descent).

See also
QueryOutputBase
Template Parameters
MAX_KNN_SIZEMaximum size of the K-neighborhood

Definition at line 257 of file query.h.

+ Inheritance diagram for Ponca::QueryOutputIsKNearest< Index, Scalar, MAX_KNN_SIZE >:
+ Collaboration diagram for Ponca::QueryOutputIsKNearest< Index, Scalar, MAX_KNN_SIZE >:

Public Types

using OutputParameter = Index
 Alias to Output type.
 
using Queue = LimitedPriorityQueue< IndexSquaredDistance< Index, Scalar >, MAX_KNN_SIZE >
 Alias to LimitedPriorityQueue.
 

Public Member Functions

 QueryOutputIsKNearest (OutputParameter k=0)
 Default constructor that initialize the output parameter value.
 
void operator() (OutputParameter k)
 Access operator that resets the output parameter.
 
Queuequeue ()
 Access to the priority queue storing the neighbors.
 

Protected Member Functions

void reset ()
 Reset Query for a new search.
 
Scalar descentDistanceThreshold () const
 Distance threshold used during tree descent to select nodes to explore.
 

Protected Attributes

Queue m_queue
 Queue storing the neighbors.
 

Member Typedef Documentation

◆ OutputParameter

template<typename Index , typename Scalar , int MAX_KNN_SIZE>
using Ponca::QueryOutputIsKNearest< Index, Scalar, MAX_KNN_SIZE >::OutputParameter = Index

Alias to Output type.

Definition at line 260 of file query.h.

◆ Queue

template<typename Index , typename Scalar , int MAX_KNN_SIZE>
using Ponca::QueryOutputIsKNearest< Index, Scalar, MAX_KNN_SIZE >::Queue = LimitedPriorityQueue<IndexSquaredDistance<Index, Scalar>, MAX_KNN_SIZE>

Alias to LimitedPriorityQueue.

Definition at line 262 of file query.h.

Constructor & Destructor Documentation

◆ QueryOutputIsKNearest()

template<typename Index , typename Scalar , int MAX_KNN_SIZE>
Ponca::QueryOutputIsKNearest< Index, Scalar, MAX_KNN_SIZE >::QueryOutputIsKNearest ( OutputParameter  k = 0)
inline

Default constructor that initialize the output parameter value.

Definition at line 265 of file query.h.

Member Function Documentation

◆ descentDistanceThreshold()

template<typename Index , typename Scalar , int MAX_KNN_SIZE>
Scalar Ponca::QueryOutputIsKNearest< Index, Scalar, MAX_KNN_SIZE >::descentDistanceThreshold ( ) const
inlineprotected

Distance threshold used during tree descent to select nodes to explore.

Definition at line 281 of file query.h.

◆ operator()()

template<typename Index , typename Scalar , int MAX_KNN_SIZE>
void Ponca::QueryOutputIsKNearest< Index, Scalar, MAX_KNN_SIZE >::operator() ( OutputParameter  k)
inline

Access operator that resets the output parameter.

Definition at line 268 of file query.h.

◆ queue()

template<typename Index , typename Scalar , int MAX_KNN_SIZE>
Queue & Ponca::QueryOutputIsKNearest< Index, Scalar, MAX_KNN_SIZE >::queue ( )
inline

Access to the priority queue storing the neighbors.

Definition at line 271 of file query.h.

◆ reset()

template<typename Index , typename Scalar , int MAX_KNN_SIZE>
void Ponca::QueryOutputIsKNearest< Index, Scalar, MAX_KNN_SIZE >::reset ( )
inlineprotected

Reset Query for a new search.

Definition at line 275 of file query.h.

Member Data Documentation

◆ m_queue

template<typename Index , typename Scalar , int MAX_KNN_SIZE>
Queue Ponca::QueryOutputIsKNearest< Index, Scalar, MAX_KNN_SIZE >::m_queue
protected

Queue storing the neighbors.

Definition at line 283 of file query.h.

◆ Ponca::Query

struct Ponca::Query
template<typename Input_, typename Output_>
struct Ponca::Query< Input_, Output_ >

Composes the Query object depending on an input type and output type.

Template Parameters
Input_The query input type corresponds to the value used for the search.
Output_The query output type corresponds to the results of the search (it can be iterated over).

Definition at line 293 of file query.h.

+ Inheritance diagram for Ponca::Query< Input_, Output_ >:
+ Collaboration diagram for Ponca::Query< Input_, Output_ >:

Public Types

using QueryInType = Input_
 Alias to the input type.
 
using QueryOutType = Output_
 Alias to the output type.
 

Public Member Functions

 Query (const typename QueryInType::InputType &in)
 Default constructor that initialize the input parameter only.
 
 Query (const typename QueryOutType::OutputParameter &outParam, const typename QueryInType::InputType &in)
 Default constructor that initialize the input and output parameters.
 
template<typename Base , typename... outputType>
Base & operator() (const typename QueryInType::InputType &in, outputType &&... out)
 Access operator that resets the input and output parameters.
 
template<typename Base >
Base & operator() (const typename QueryInType::InputType &in)
 Access operator that resets the input parameter only.
 

Member Typedef Documentation

◆ QueryInType

template<typename Input_ , typename Output_ >
using Ponca::Query< Input_, Output_ >::QueryInType = Input_

Alias to the input type.

Definition at line 296 of file query.h.

◆ QueryOutType

template<typename Input_ , typename Output_ >
using Ponca::Query< Input_, Output_ >::QueryOutType = Output_

Alias to the output type.

Definition at line 298 of file query.h.

Constructor & Destructor Documentation

◆ Query() [1/2]

template<typename Input_ , typename Output_ >
Ponca::Query< Input_, Output_ >::Query ( const typename QueryInType::InputType &  in)
inline

Default constructor that initialize the input parameter only.

Definition at line 306 of file query.h.

◆ Query() [2/2]

template<typename Input_ , typename Output_ >
Ponca::Query< Input_, Output_ >::Query ( const typename QueryOutType::OutputParameter &  outParam,
const typename QueryInType::InputType &  in 
)
inline

Default constructor that initialize the input and output parameters.

Definition at line 309 of file query.h.

Member Function Documentation

◆ operator()() [1/2]

template<typename Input_ , typename Output_ >
template<typename Base >
Base & Ponca::Query< Input_, Output_ >::operator() ( const typename QueryInType::InputType &  in)
inline

Access operator that resets the input parameter only.

Definition at line 326 of file query.h.

◆ operator()() [2/2]

template<typename Input_ , typename Output_ >
template<typename Base , typename... outputType>
Base & Ponca::Query< Input_, Output_ >::operator() ( const typename QueryInType::InputType &  in,
outputType &&...  out 
)
inline

Access operator that resets the input and output parameters.

Definition at line 317 of file query.h.

Macro Definition Documentation

◆ INDEX_QUERY_DOC

#define INDEX_QUERY_DOC (   OUT_TYPE)

Base Query class combining QueryInputIsPosition and QueryOutputIs##OUT_TYPE##.

PointQuery objects acts as a Range that can be iterated over.

They are used as the return type for the index searches

and they allow easy access to the result outputs.

This specialization of the PointQuery concept is used to iterate over the neighbors of a given point \ position, using a ##OUT_TYPE## Point Query request.

Definition at line 341 of file query.h.

◆ POINT_QUERY_DOC

#define POINT_QUERY_DOC (   OUT_TYPE)

Definition at line 333 of file query.h.

Typedef Documentation

◆ KNearestIndexQuery

template<typename Index , typename Scalar , int MAX_KNN_SIZE>
using Ponca::KNearestIndexQuery = typedef Query<QueryInputIsIndex<Index>, QueryOutputIsKNearest<Index, Scalar, MAX_KNN_SIZE> >

Definition at line 365 of file query.h.

◆ KNearestPointQuery

template<typename Index , typename DataPoint , int MAX_KNN_SIZE>
using Ponca::KNearestPointQuery = typedef Query<QueryInputIsPosition<DataPoint>, QueryOutputIsKNearest<Index, typename DataPoint::Scalar, MAX_KNN_SIZE> >

Base Query alias combining QueryInputIsIndex and QueryOutputIs##OUT_TYPE##.

IndexQuery objects acts as a Range that can be iterated over.

They are used as the return type for the index searches

and they allow easy access to the result outputs.

This specialization of the IndexQuery concept is used to iterate over the neighbors of a given point index, \ using a ##OUT_TYPE## Index Query request.

Template Parameters
MAX_KNN_SIZEMaximum size of the K-neighborhood

Definition at line 352 of file query.h.

◆ NearestIndexQuery

Definition at line 368 of file query.h.

◆ NearestPointQuery

template<typename Index , typename DataPoint >
using Ponca::NearestPointQuery = typedef Query<QueryInputIsPosition<DataPoint>, QueryOutputIsNearest<Index, typename DataPoint::Scalar> >

Definition at line 356 of file query.h.

◆ RangeIndexQuery

template<typename Index , typename Scalar >
using Ponca::RangeIndexQuery = typedef Query<QueryInputIsIndex<Index>, QueryOutputIsRange<Index, Scalar> >

Definition at line 371 of file query.h.

◆ RangePointQuery

template<typename Index , typename DataPoint >
using Ponca::RangePointQuery = typedef Query<QueryInputIsPosition<DataPoint>, QueryOutputIsRange<Index, typename DataPoint::Scalar> >

Definition at line 360 of file query.h.