![]() |
ITK
5.4.0
Insight Toolkit
|
#include <itkOffset.h>
Represent a n-dimensional offset between two n-dimensional indexes of n-dimensional image.
Offset is a templated class to represent a multi-dimensional offset, i.e. (i,j,k,...). Offset is templated over the dimension of the space. ITK assumes the first element of a size (bounds) is the fastest moving index.
For efficiency, Offset does not define a default constructor, a copy constructor, or an operator=. We rely on the compiler to provide efficient bitwise copies.
Offset is an "aggregate" class. Its data is public (m_InternalArray) allowing for fast and convenient instantiations/assignments.
The following syntax for assigning an aggregate type like this is allowed/suggested:
Offset<3> var{{ 256, 256, 20 }}; // Also prevent narrowing conversions Offset<3> var = {{ 256, 256, 20 }};
The doubled braces {{ and }} are required to prevent ‘gcc -Wall’ (and perhaps other compilers) from complaining about a partly bracketed initializer.
As an aggregate type that is intended to provide highest performance characteristics, this class is not appropriate to inherit from, so setting this struct as final.
Definition at line 69 of file itkOffset.h.
Public Types | |
using | const_iterator = const value_type * |
using | const_reference = const value_type & |
using | const_reverse_iterator = std::reverse_iterator< const_iterator > |
using | difference_type = ptrdiff_t |
using | iterator = value_type * |
using | OffsetType = Offset< VDimension > |
using | OffsetValueType = itk::OffsetValueType |
using | reference = value_type & |
using | reverse_iterator = std::reverse_iterator< iterator > |
using | Self = Offset |
using | size_type = unsigned int |
using | value_type = itk::OffsetValueType |
Public Member Functions | |
void | assign (const value_type &newValue) |
reference | at (size_type pos) |
const_reference | at (size_type pos) const |
reference | back () |
const_reference | back () const |
constexpr iterator | begin () |
constexpr const_iterator | begin () const |
constexpr const_iterator | cbegin () const |
constexpr const_iterator | cend () const |
OffsetValueType * | data () |
const OffsetValueType * | data () const |
constexpr bool | empty () const |
constexpr iterator | end () |
constexpr const_iterator | end () const |
void | Fill (OffsetValueType value) |
reference | front () |
const_reference | front () const |
OffsetValueType | GetElement (unsigned long element) const |
const OffsetValueType * | GetOffset () const |
constexpr size_type | max_size () const |
const Self | operator+ (const Self &vec) const |
const Self | operator+ (const Size< VDimension > &sz) const |
const Self | operator- (const Self &vec) const |
reference | operator[] (size_type pos) |
const_reference | operator[] (size_type pos) const |
reverse_iterator | rbegin () |
const_reverse_iterator | rbegin () const |
reverse_iterator | rend () |
const_reverse_iterator | rend () const |
void | SetElement (unsigned long element, OffsetValueType val) |
void | SetOffset (const OffsetValueType val[VDimension]) |
constexpr size_type | size () const |
void | swap (Offset &other) |
const Self & | operator+= (const Size< VDimension > &sz) |
const Self & | operator-= (const Size< VDimension > &sz) |
const Self & | operator+= (const Self &vec) |
const Self & | operator-= (const Self &vec) |
template<typename TCoordRep > | |
void | CopyWithRound (const FixedArray< TCoordRep, VDimension > &point) |
template<typename TCoordRep > | |
void | CopyWithCast (const FixedArray< TCoordRep, VDimension > &point) |
Static Public Member Functions | |
static Self | GetBasisOffset (unsigned int dim) |
static constexpr unsigned int | GetOffsetDimension () |
Public Attributes | |
OffsetValueType | m_InternalArray [VDimension] |
Static Public Attributes | |
static constexpr unsigned int | Dimension = VDimension |
Private Member Functions | |
void | ExceptionThrowingBoundsCheck (size_type pos) const |
using itk::Offset< VDimension >::const_iterator = const value_type * |
Definition at line 290 of file itkOffset.h.
using itk::Offset< VDimension >::const_reference = const value_type & |
Definition at line 288 of file itkOffset.h.
using itk::Offset< VDimension >::const_reverse_iterator = std::reverse_iterator<const_iterator> |
Definition at line 294 of file itkOffset.h.
using itk::Offset< VDimension >::difference_type = ptrdiff_t |
Definition at line 292 of file itkOffset.h.
using itk::Offset< VDimension >::iterator = value_type * |
Definition at line 289 of file itkOffset.h.
using itk::Offset< VDimension >::OffsetType = Offset<VDimension> |
Compatible Offset and value type alias.
Definition at line 79 of file itkOffset.h.
using itk::Offset< VDimension >::OffsetValueType = itk::OffsetValueType |
Definition at line 80 of file itkOffset.h.
using itk::Offset< VDimension >::reference = value_type & |
Definition at line 287 of file itkOffset.h.
using itk::Offset< VDimension >::reverse_iterator = std::reverse_iterator<iterator> |
Definition at line 293 of file itkOffset.h.
using itk::Offset< VDimension >::Self = Offset |
Standard class type aliases.
Definition at line 76 of file itkOffset.h.
using itk::Offset< VDimension >::size_type = unsigned int |
Definition at line 291 of file itkOffset.h.
using itk::Offset< VDimension >::value_type = itk::OffsetValueType |
Mirror the std::array type aliases and member function so that the Offset class can be treated as a container class in a way that is similar to the std::array.
Definition at line 286 of file itkOffset.h.
|
inline |
Mirror behavior of the std::array manipulations See std::array for documentation on these methods
Definition at line 301 of file itkOffset.h.
|
inline |
Definition at line 395 of file itkOffset.h.
|
inline |
Definition at line 402 of file itkOffset.h.
|
inline |
Definition at line 421 of file itkOffset.h.
|
inline |
Definition at line 427 of file itkOffset.h.
|
inlineconstexpr |
Definition at line 319 of file itkOffset.h.
Referenced by itk::ConnectedImageNeighborhoodShape< VImageDimension >::FillOffsets(), itk::RectangularImageNeighborhoodShape< VImageDimension >::FillOffsets(), itk::operator<(), and itk::operator==().
|
inlineconstexpr |
Definition at line 325 of file itkOffset.h.
|
inlineconstexpr |
Definition at line 313 of file itkOffset.h.
|
inlineconstexpr |
Definition at line 331 of file itkOffset.h.
|
inline |
Copy values from a FixedArray by casting each one of the components
Definition at line 264 of file itkOffset.h.
References itk::point().
|
inline |
Copy values from a FixedArray by rounding each one of the components
Definition at line 252 of file itkOffset.h.
References itk::point().
|
inline |
Definition at line 433 of file itkOffset.h.
Referenced by itk::ImageRegionRange< TImage >::ComputeOffset().
|
inline |
Definition at line 439 of file itkOffset.h.
|
inlineconstexpr |
Definition at line 385 of file itkOffset.h.
|
inlineconstexpr |
Definition at line 337 of file itkOffset.h.
Referenced by itk::ConnectedImageNeighborhoodShape< VImageDimension >::FillOffsets(), itk::operator<(), and itk::operator==().
|
inlineconstexpr |
Definition at line 343 of file itkOffset.h.
|
inlineprivate |
Definition at line 446 of file itkOffset.h.
|
inline |
Set one value for the offset in all dimensions. Useful for initializing an offset to zero.
Definition at line 226 of file itkOffset.h.
|
inline |
Definition at line 409 of file itkOffset.h.
|
inline |
Definition at line 415 of file itkOffset.h.
|
static |
Return a basis vector of the form [0, ..., 0, 1, 0, ... 0] where the "1" is positioned in the location specified by the parameter "dim". Valid values of "dim" are 0, ..., VDimension-1.
Definition at line 458 of file itkOffset.h.
References itk::Offset< VDimension >::m_InternalArray.
|
inline |
Gets the value of one of the elements. This method is mainly intended to facilitate the access to elements from Tcl and Python where C++ notation is not very convenient.
Definition at line 218 of file itkOffset.h.
|
inline |
Get the offset. This provides a read only pointer to the offset.
Definition at line 184 of file itkOffset.h.
Referenced by itk::ConstShapedNeighborhoodIterator< TImage, TBoundaryCondition >::ConstIterator::GetNeighborhoodOffset().
|
inlinestaticconstexpr |
Get the dimension (size) of the index.
Definition at line 87 of file itkOffset.h.
|
inlineconstexpr |
Definition at line 379 of file itkOffset.h.
|
inline |
Add two offsets.
Definition at line 95 of file itkOffset.h.
References itk::Offset< VDimension >::m_InternalArray.
|
inline |
Add a size to an offset.
Definition at line 108 of file itkOffset.h.
|
inline |
Increment offset by an offset.
Definition at line 158 of file itkOffset.h.
References itk::Offset< VDimension >::m_InternalArray.
|
inline |
Increment index by a size.
Definition at line 121 of file itkOffset.h.
|
inline |
Subtract two offsets.
Definition at line 145 of file itkOffset.h.
References itk::Offset< VDimension >::m_InternalArray.
|
inline |
Decrement offset by an offset.
Definition at line 170 of file itkOffset.h.
References itk::Offset< VDimension >::m_InternalArray.
|
inline |
Decrement index by a size.
Definition at line 133 of file itkOffset.h.
|
inline |
Definition at line 390 of file itkOffset.h.
|
inline |
Definition at line 392 of file itkOffset.h.
|
inline |
Definition at line 349 of file itkOffset.h.
|
inline |
Definition at line 355 of file itkOffset.h.
|
inline |
Definition at line 361 of file itkOffset.h.
|
inline |
Definition at line 367 of file itkOffset.h.
|
inline |
Sets the value of one of the elements. This method is mainly intended to facilitate the access to elements from Tcl and Python where C++ notation is not very convenient.
Definition at line 206 of file itkOffset.h.
|
inline |
Set the index. Try to prototype this function so that val has to point to a block of memory that is the appropriate size.
Definition at line 194 of file itkOffset.h.
|
inlineconstexpr |
Definition at line 373 of file itkOffset.h.
|
inline |
Definition at line 307 of file itkOffset.h.
References itk::Offset< VDimension >::m_InternalArray, and itk::swap().
|
staticconstexpr |
Dimension constant
Definition at line 83 of file itkOffset.h.
OffsetValueType itk::Offset< VDimension >::m_InternalArray[VDimension] |
Offset is an "aggregate" class. Its data is public (m_InternalArray) allowing for fast and convenient instantiations/assignments. ( See main class documentation for an example of initialization)
Definition at line 246 of file itkOffset.h.
Referenced by itk::Offset< VDimension >::GetBasisOffset(), itk::Offset< VDimension >::operator+(), itk::Offset< VDimension >::operator+=(), itk::Index< VDimension >::operator-(), itk::Offset< VDimension >::operator-(), itk::Offset< VDimension >::operator-=(), itk::Offset< VDimension >::swap(), and itk::swap().