DGtal  1.2.0
DecoratorParametricCurveTransformation.h
1 
17 #pragma once
18 
31 #if defined(DecoratorParametricCurveTransformation_RECURSES)
32 #error Recursive header files inclusion detected in DecoratorParametricCurveTransformation.h
33 #else // defined(DecoratorParametricCurveTransformation_RECURSES)
35 #define DecoratorParametricCurveTransformation_RECURSES
36 
37 #if !defined DecoratorParametricCurveTransformation_h
39 #define DecoratorParametricCurveTransformation_h
40 
42 // Inclusions
43 #include <iostream>
44 #include "DGtal/base/Common.h"
45 #include "DGtal/geometry/curves/parametric/C3DParametricCurve.h"
46 #include <functional>
48 
49 namespace DGtal
50 {
51 
53 // class DecoratorParametricCurveTransformation
62 template <typename TCurve, typename TTransfromation >
64 {
66  // ----------------------- Standard services ------------------------------
67 public:
68 
69  typedef TCurve TypeCurve;
70  typedef typename TCurve::Space Space;
71  typedef typename Space::RealPoint RealPoint;
72  typedef typename Space::Point Point;
73 
74  DecoratorParametricCurveTransformation ( const TCurve &, const TTransfromation & );
79 
80  // ----------------------- Interface --------------------------------------
81 public:
82 
83  const TCurve & curve;
84 
90  RealPoint x ( double t ) const;
91 
97  RealPoint xp ( double t ) const;
98 
99 
104  void selfDisplay ( std::ostream & out ) const;
105 
110  bool isValid() const;
111 
112  // ------------------------- Protected Datas ------------------------------
113 private:
114  // ------------------------- Private Datas --------------------------------
115 private:
116 
117  // ------------------------- Hidden services ------------------------------
118 protected:
119 
125 
126 private:
127 
134 
142 
143  // ------------------------- Internals ------------------------------------
144 private:
145  const TTransfromation & trans;
146 
147 
148 }; // end of class DecoratorParametricCurveTransformation
149 
150 
157 template <typename TCurve, typename TTransfromation>
158 inline
159 std::ostream&
161 
162 
163 } // namespace DGtal
164 
165 
167 // Includes inline functions.
168 #if !defined(BUILD_INLINE)
169 #include "DGtal/geometry/curves/parametric/DecoratorParametricCurveTransformation.ih"
170 #endif
171 
172 
173 // //
175 
176 #endif // !defined DecoratorParametricCurveTransformation_h
177 
178 #undef DecoratorParametricCurveTransformation_RECURSES
179 #endif // else defined(DecoratorParametricCurveTransformation_RECURSES)
Aim: Implements a decorator for applying transformations to parametric curves.
DecoratorParametricCurveTransformation & operator=(const DecoratorParametricCurveTransformation &other)
void selfDisplay(std::ostream &out) const
BOOST_CONCEPT_ASSERT((concepts::C3DParametricCurve< TCurve >))
DecoratorParametricCurveTransformation(const DecoratorParametricCurveTransformation &other)
DecoratorParametricCurveTransformation(const TCurve &, const TTransfromation &)
Aim: Implements basic operations that will be used in Point and Vector classes.
Definition: PointVector.h:593
DGtal is the top-level namespace which contains all DGtal functions and types.
std::ostream & operator<<(std::ostream &out, const ClosedIntegerHalfPlane< TSpace > &object)