DGtal  1.0.0
Public Types | Public Member Functions | Protected Attributes | Private Member Functions
DGtal::functors::ForwardRigidTransformation2D< TSpace, TInputValue, TOutputValue, TFunctor > Class Template Reference

Aim: implements forward rigid transformation of point in the 2D integer space. Warring: This version uses closest neighbor interpolation. More...

#include <DGtal/images/RigidTransformation2D.h>

Public Types

typedef TSpace::RealPoint RealPoint
 
typedef TSpace::RealVector RealVector
 

Public Member Functions

 ForwardRigidTransformation2D (const RealPoint &aOrigin, const double &angle, const RealVector &aTranslate)
 
TOutputValue operator() (const TInputValue &aInput) const
 

Protected Attributes

RealPoint origin
 
double t_sin
 
double t_cos
 
RealVector translation
 
TFunctor functor
 

Private Member Functions

 BOOST_CONCEPT_ASSERT ((concepts::CSpace< TSpace >))
 Checking concepts. More...
 
 BOOST_STATIC_ASSERT ((TSpace::dimension==2))
 
 BOOST_STATIC_ASSERT ((TOutputValue::dimension==2))
 
 BOOST_STATIC_ASSERT ((TInputValue::dimension==2))
 

Detailed Description

template<typename TSpace, typename TInputValue = typename TSpace::RealPoint, typename TOutputValue = typename TSpace::Point, typename TFunctor = VectorRounding < TInputValue, TOutputValue >>
class DGtal::functors::ForwardRigidTransformation2D< TSpace, TInputValue, TOutputValue, TFunctor >

Aim: implements forward rigid transformation of point in the 2D integer space. Warring: This version uses closest neighbor interpolation.

Description of template functor like class 'ForwardRigidTransformation2D'

Template Parameters
TSpacea 2 dimensional space.
TInputValuetype of the input point e.g., TSpace::RealPoint
TOutputValuetype of the output point e.g., TSpace::Point
TFunctora functor operating on the output e.g., a rounding function.
See also
exampleRigidtransformation3d.cpp

Definition at line 72 of file RigidTransformation2D.h.

Member Typedef Documentation

◆ RealPoint

template<typename TSpace , typename TInputValue = typename TSpace::RealPoint, typename TOutputValue = typename TSpace::Point, typename TFunctor = VectorRounding < TInputValue, TOutputValue >>
typedef TSpace::RealPoint DGtal::functors::ForwardRigidTransformation2D< TSpace, TInputValue, TOutputValue, TFunctor >::RealPoint

Definition at line 82 of file RigidTransformation2D.h.

◆ RealVector

template<typename TSpace , typename TInputValue = typename TSpace::RealPoint, typename TOutputValue = typename TSpace::Point, typename TFunctor = VectorRounding < TInputValue, TOutputValue >>
typedef TSpace::RealVector DGtal::functors::ForwardRigidTransformation2D< TSpace, TInputValue, TOutputValue, TFunctor >::RealVector

Definition at line 83 of file RigidTransformation2D.h.

Constructor & Destructor Documentation

◆ ForwardRigidTransformation2D()

template<typename TSpace , typename TInputValue = typename TSpace::RealPoint, typename TOutputValue = typename TSpace::Point, typename TFunctor = VectorRounding < TInputValue, TOutputValue >>
DGtal::functors::ForwardRigidTransformation2D< TSpace, TInputValue, TOutputValue, TFunctor >::ForwardRigidTransformation2D ( const RealPoint aOrigin,
const double &  angle,
const RealVector aTranslate 
)
inline

Constructor.

Parameters
aOriginthe center of rotation.
anglethe angle given in radians.
aTranslatethe 2D dimensional vector which represents translation.

Definition at line 93 of file RigidTransformation2D.h.

References DGtal::functors::ForwardRigidTransformation2D< TSpace, TInputValue, TOutputValue, TFunctor >::t_cos, and DGtal::functors::ForwardRigidTransformation2D< TSpace, TInputValue, TOutputValue, TFunctor >::t_sin.

Member Function Documentation

◆ BOOST_CONCEPT_ASSERT()

template<typename TSpace , typename TInputValue = typename TSpace::RealPoint, typename TOutputValue = typename TSpace::Point, typename TFunctor = VectorRounding < TInputValue, TOutputValue >>
DGtal::functors::ForwardRigidTransformation2D< TSpace, TInputValue, TOutputValue, TFunctor >::BOOST_CONCEPT_ASSERT ( (concepts::CSpace< TSpace >)  )
private

Checking concepts.

◆ BOOST_STATIC_ASSERT() [1/3]

template<typename TSpace , typename TInputValue = typename TSpace::RealPoint, typename TOutputValue = typename TSpace::Point, typename TFunctor = VectorRounding < TInputValue, TOutputValue >>
DGtal::functors::ForwardRigidTransformation2D< TSpace, TInputValue, TOutputValue, TFunctor >::BOOST_STATIC_ASSERT ( (TSpace::dimension==2)  )
private

◆ BOOST_STATIC_ASSERT() [2/3]

template<typename TSpace , typename TInputValue = typename TSpace::RealPoint, typename TOutputValue = typename TSpace::Point, typename TFunctor = VectorRounding < TInputValue, TOutputValue >>
DGtal::functors::ForwardRigidTransformation2D< TSpace, TInputValue, TOutputValue, TFunctor >::BOOST_STATIC_ASSERT ( (TOutputValue::dimension==2)  )
private

◆ BOOST_STATIC_ASSERT() [3/3]

template<typename TSpace , typename TInputValue = typename TSpace::RealPoint, typename TOutputValue = typename TSpace::Point, typename TFunctor = VectorRounding < TInputValue, TOutputValue >>
DGtal::functors::ForwardRigidTransformation2D< TSpace, TInputValue, TOutputValue, TFunctor >::BOOST_STATIC_ASSERT ( (TInputValue::dimension==2)  )
private

◆ operator()()

template<typename TSpace , typename TInputValue = typename TSpace::RealPoint, typename TOutputValue = typename TSpace::Point, typename TFunctor = VectorRounding < TInputValue, TOutputValue >>
TOutputValue DGtal::functors::ForwardRigidTransformation2D< TSpace, TInputValue, TOutputValue, TFunctor >::operator() ( const TInputValue &  aInput) const
inline

Operator

Returns
the transformed point.

Definition at line 106 of file RigidTransformation2D.h.

107  {
108  RealPoint p;
109  p[0] = ( ( t_cos * ( aInput[0] - origin[0] ) -
110  t_sin * ( aInput[1] - origin[1] ) ) + translation[0] ) + origin[0];
111 
112  p[1] = ( ( t_sin * ( aInput[0] - origin[0] ) +
113  t_cos * ( aInput[1] - origin[1] ) ) + translation[1] ) + origin[1];
114  return functor ( p );
115  }

References DGtal::functors::ForwardRigidTransformation2D< TSpace, TInputValue, TOutputValue, TFunctor >::functor, DGtal::functors::ForwardRigidTransformation2D< TSpace, TInputValue, TOutputValue, TFunctor >::origin, DGtal::functors::ForwardRigidTransformation2D< TSpace, TInputValue, TOutputValue, TFunctor >::t_cos, DGtal::functors::ForwardRigidTransformation2D< TSpace, TInputValue, TOutputValue, TFunctor >::t_sin, and DGtal::functors::ForwardRigidTransformation2D< TSpace, TInputValue, TOutputValue, TFunctor >::translation.

Field Documentation

◆ functor

template<typename TSpace , typename TInputValue = typename TSpace::RealPoint, typename TOutputValue = typename TSpace::Point, typename TFunctor = VectorRounding < TInputValue, TOutputValue >>
TFunctor DGtal::functors::ForwardRigidTransformation2D< TSpace, TInputValue, TOutputValue, TFunctor >::functor
protected

◆ origin

template<typename TSpace , typename TInputValue = typename TSpace::RealPoint, typename TOutputValue = typename TSpace::Point, typename TFunctor = VectorRounding < TInputValue, TOutputValue >>
RealPoint DGtal::functors::ForwardRigidTransformation2D< TSpace, TInputValue, TOutputValue, TFunctor >::origin
protected

◆ t_cos

template<typename TSpace , typename TInputValue = typename TSpace::RealPoint, typename TOutputValue = typename TSpace::Point, typename TFunctor = VectorRounding < TInputValue, TOutputValue >>
double DGtal::functors::ForwardRigidTransformation2D< TSpace, TInputValue, TOutputValue, TFunctor >::t_cos
protected

◆ t_sin

template<typename TSpace , typename TInputValue = typename TSpace::RealPoint, typename TOutputValue = typename TSpace::Point, typename TFunctor = VectorRounding < TInputValue, TOutputValue >>
double DGtal::functors::ForwardRigidTransformation2D< TSpace, TInputValue, TOutputValue, TFunctor >::t_sin
protected

◆ translation

template<typename TSpace , typename TInputValue = typename TSpace::RealPoint, typename TOutputValue = typename TSpace::Point, typename TFunctor = VectorRounding < TInputValue, TOutputValue >>
RealVector DGtal::functors::ForwardRigidTransformation2D< TSpace, TInputValue, TOutputValue, TFunctor >::translation
protected

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