DGtal 1.3.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Private Attributes
DGtal::functors::FlipDomainAxis< TDomain > Class Template Reference

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). More...

#include <DGtal/kernel/BasicPointFunctors.h>

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 758 of file BasicPointFunctors.h.

Member Typedef Documentation

◆ Dimension

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

Definition at line 763 of file BasicPointFunctors.h.

◆ Point

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

Definition at line 764 of file BasicPointFunctors.h.

◆ Size

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

Definition at line 762 of file BasicPointFunctors.h.

◆ Space

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

Definition at line 761 of file BasicPointFunctors.h.

Constructor & Destructor Documentation

◆ FlipDomainAxis()

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 778 of file BasicPointFunctors.h.

778 : mySourceDomain(aSourceDomain),
779 myAxisFlipped(axisFlipped){
780 };

Member Function Documentation

◆ operator()()

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 793 of file BasicPointFunctors.h.

794 {
795 Point ptRes;
796 for (Dimension dim=0; dim< Space::dimension; dim++){
797 ptRes[dim] = aPoint[dim];
798 }
799 for(Dimension i = 0; i< myAxisFlipped.size(); i++){
800 ptRes[myAxisFlipped[i]] = mySourceDomain.upperBound()[myAxisFlipped[i]]-aPoint[myAxisFlipped[i]];
801 }
802 return ptRes;
803 }
static const Dimension dimension
static constants to store the dimension.
Definition: SpaceND.h:132
MyPointD Point
Definition: testClone2.cpp:383
const Point aPoint(3, 4)

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

Field Documentation

◆ myAxisFlipped

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

◆ mySourceDomain

template<typename TDomain >
TDomain DGtal::functors::FlipDomainAxis< TDomain >::mySourceDomain
private

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