28 #if defined(CBDRNAIVEROTATION_RECURSES)
29 #error Recursive header files inclusion detected in CBDR_naiverotation.h
32 #define CBDRNAIVEROTATION_RECURSES
34 #if !defined CBDRNAIVEROTATION_h
36 #define CBDRNAIVEROTATION_h
40 #include "DigitizedReflection.h"
44 template<
typename TSpace,
typename TInputValue =
typename TSpace::RealPo
int,
typename TOutputValue =
typename TSpace::Po
int>
62 TOutputValue
operator()(
const TInputValue & aInput )
const
65 return (TOutputValue)aInput;
69 TOutputValue resultat = firstReflection(aInput);
75 resultat = currentReflection(resultat);
80 template<
typename TImage>
84 typedef std::pair < typename TSpace::Point, typename TSpace::Point > Bounds;
86 MyDomainTransformer domainTransformer ( *
this );
87 Bounds bounds = domainTransformer ( img.domain() );
88 TDomain transformedDomain ( bounds.first, bounds.second );
89 TImage rotatedImage ( transformedDomain );
93 rotatedImage.setValue((*
this)(*it),img(*it));
103 #undef CBDRNAIVEROTATION_RECURSES
Aim: implements bounds of transformed domain.
MyDigitalSurface::ConstIterator ConstIterator
DGtal is the top-level namespace which contains all DGtal functions and types.
vec since the parameters are the vectors of digitized reflections
TOutputValue operator()(const TInputValue &aInput) const
std::vector< DigitizedReflection > bijectiveNormalVectors
TImage rotateImage(TImage img) const
CBDR_naiverotation(const std::vector< DigitizedReflection > &bijectiveReflections={})
CBDR_naiverotation(const std::vector< GAVector< TSpace >> &bijectiveGAvec)
Reflection< TSpace, TInputValue > DigitizedReflection
HyperRectDomain< Space > Domain