DGtal  0.9.4beta
Public Types | Public Member Functions | Private Attributes
DGtal::functors::FlipDomainAxis< TDomain > Class Template Reference

#include <DGtal/kernel/BasicPointFunctors.h>

Collaboration diagram for DGtal::functors::FlipDomainAxis< TDomain >:
[legend]

Public Types

typedef TDomain::Space Space
 
typedef TDomain::Size Size
 
typedef Space::Dimension Dimension
 
typedef Space::Point Point
 

Public Member Functions

 FlipDomainAxis (const TDomain &aSourceDomain, const std::vector< Size > &axisFlipped)
 
Point operator() (const Point &aPoint) const
 

Private Attributes

TDomain mySourceDomain
 
std::vector< SizemyAxisFlipped
 

Detailed Description

template<typename TDomain>
class DGtal::functors::FlipDomainAxis< TDomain >

Aim: Functor that flips the domain coordinate system from some selected axis. For instance, if a flip on the y axis is applied on a domain of bounds (0, 0, 0) (MaxX, MaxY, MaxZ), then the coordinate of P(x,y,z) will transformed in P(x, MaxY-y, z).

Description of template class 'FlipDomainAxis'

Such functor can be useful to apply basic image flip from some specific axis directions.

See also
tests/kernel/testBasicPointFunctors.cpp
Template Parameters
TDomainthe type of the domain.

Definition at line 707 of file BasicPointFunctors.h.

Member Typedef Documentation

template<typename TDomain>
typedef Space::Dimension DGtal::functors::FlipDomainAxis< TDomain >::Dimension

Definition at line 712 of file BasicPointFunctors.h.

template<typename TDomain>
typedef Space::Point DGtal::functors::FlipDomainAxis< TDomain >::Point

Definition at line 713 of file BasicPointFunctors.h.

template<typename TDomain>
typedef TDomain::Size DGtal::functors::FlipDomainAxis< TDomain >::Size

Definition at line 711 of file BasicPointFunctors.h.

template<typename TDomain>
typedef TDomain::Space DGtal::functors::FlipDomainAxis< TDomain >::Space

Definition at line 710 of file BasicPointFunctors.h.

Constructor & Destructor Documentation

template<typename TDomain>
DGtal::functors::FlipDomainAxis< TDomain >::FlipDomainAxis ( const TDomain &  aSourceDomain,
const std::vector< Size > &  axisFlipped 
)
inline

Constructor. Construct the functor from a source domain and a vector defining the axis being flipped. Such a vector should contain the dimension number associated to the axis to be flipped. For instance to flip the x and z axis of a given 3d domain you have to give a vector containing 1 and 2.

Parameters
aSourceDomainthe source domain.
axisFlippeda vector containing the indices of the dimension to be flipped.

Definition at line 727 of file BasicPointFunctors.h.

727  : mySourceDomain(aSourceDomain),
728  myAxisFlipped(axisFlipped){
729  };

Member Function Documentation

template<typename TDomain>
Point DGtal::functors::FlipDomainAxis< TDomain >::operator() ( const Point aPoint) const
inline

The operator computes the coordinates of the point in the flipped domain.

Parameters
aPointa source point.
Returns
the point with flipped coordinates according the source domain.

Definition at line 742 of file BasicPointFunctors.h.

References DGtal::SpaceND< dim, TInteger >::dimension, DGtal::functors::FlipDomainAxis< TDomain >::myAxisFlipped, and DGtal::functors::FlipDomainAxis< TDomain >::mySourceDomain.

743  {
744  Point ptRes;
745  for (Dimension dim=0; dim< Space::dimension; dim++){
746  ptRes[dim] = aPoint[dim];
747  }
748  for(Dimension i = 0; i< myAxisFlipped.size(); i++){
749  ptRes[myAxisFlipped[i]] = mySourceDomain.upperBound()[myAxisFlipped[i]]-aPoint[myAxisFlipped[i]];
750  }
751  return ptRes;
752  }
static const Dimension dimension
static constants to store the dimension.
Definition: SpaceND.h:132

Field Documentation

template<typename TDomain>
std::vector<Size> DGtal::functors::FlipDomainAxis< TDomain >::myAxisFlipped
private
template<typename TDomain>
TDomain DGtal::functors::FlipDomainAxis< TDomain >::mySourceDomain
private

The documentation for this class was generated from the following file: