Models a set whose elements can be defined as strided offsets of the position, possibly with a level of indirection.
More...
#include </home/docs/checkouts/readthedocs.org/user_builds/axom/checkouts/v0.7.0/src/axom/slam/OrderedSet.hpp>
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
class axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy >
Models a set whose elements can be defined as strided offsets of the position, possibly with a level of indirection.
In an OrderedSet, the element at position pos can be defined as: static_cast<ElementType>( indirection[ pos * stride + offset ] )
◆ PositionType
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
◆ ElementType
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
◆ SizePolicyType
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
◆ OffsetPolicyType
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
◆ StridePolicyType
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
◆ IndirectionPolicyType
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
◆ SubsettingPolicyType
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
◆ ModularIntType
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
◆ PositionSet
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
◆ const_iterator
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
◆ const_iterator_pair
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
◆ iterator
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
◆ iterator_pair
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
◆ OrderedSet() [1/3]
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
◆ OrderedSet() [2/3]
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
◆ OrderedSet() [3/3]
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy >::OrderedSet |
( |
const OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy > & |
oset | ) |
|
|
default |
◆ operator=()
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
OrderedSet& axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy >::operator= |
( |
const OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy > & |
other | ) |
|
|
default |
◆ begin() [1/2]
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
◆ begin() [2/2]
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
◆ end() [1/2]
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
◆ end() [2/2]
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
◆ range() [1/2]
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
◆ range() [2/2]
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
◆ operator[]() [1/2]
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
IndirectionPolicy::ConstIndirectionResult axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy >::operator[] |
( |
PositionType |
pos | ) |
const |
|
inline |
Given a position in the Set, return a position in the larger index space.
◆ operator[]() [2/2]
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
IndirectionPolicy::IndirectionResult axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy >::operator[] |
( |
PositionType |
pos | ) |
|
|
inline |
◆ at()
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
Random access to the entities of the set.
- Parameters
-
The | index of the desired element |
- Returns
- The value of the element at the given position
- Precondition
- The position must be less than the number of elements in the set ( size() )
- Note
- Concrete realizations of Set also support subscript operator – operator[].
-
How are we planning to handle indexes that are out or range (accidentally)? Are we planning to handle indexes that are intentionally out of range (e.g. to indicate a problem, or a missing element etc..)?
Implements axom::slam::Set< PosType, ElemType >.
◆ size()
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
◆ empty()
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
bool axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy >::empty |
( |
| ) |
const |
|
inlinevirtual |
◆ isValid()
template<typename PosType , typename ElemType , typename SizePolicy , typename OffsetPolicy , typename StridePolicy , typename IndirectionPolicy , typename SubsettingPolicy >
bool axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy >::isValid |
( |
bool |
verboseOutput = false | ) |
const |
|
virtual |
◆ isSubset()
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
bool axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy >::isSubset |
( |
| ) |
const |
|
inlinevirtual |
◆ isValidIndex()
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
checks whether the given position (index) is valid.
An index pos is valid when \( 0 \le pos < size() \)
- Returns
- true if the position is valid, false otherwise
◆ positions()
template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset>
returns a PositionSet over the set's positions
This can be used to simplify code to loop through the elements of a set.
The documentation for this class was generated from the following file:
- /home/docs/checkouts/readthedocs.org/user_builds/axom/checkouts/v0.7.0/src/axom/slam/OrderedSet.hpp