DGtal  0.9.2
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 >:

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
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 

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.

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

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

aPointa source point.
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
template<typename TDomain>
TDomain DGtal::functors::FlipDomainAxis< TDomain >::mySourceDomain

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