DGtal 1.3.0
Loading...
Searching...
No Matches
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
49namespace DGtal
50{
51
53// class DecoratorParametricCurveTransformation
62template <typename TCurve, typename TTransfromation >
64{
65 BOOST_CONCEPT_ASSERT(( concepts::C3DParametricCurve < TCurve > ));
66 // ----------------------- Standard services ------------------------------
67public:
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 --------------------------------------
81public:
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 ------------------------------
113private:
114 // ------------------------- Private Datas --------------------------------
115private:
116
117 // ------------------------- Hidden services ------------------------------
118protected:
119
125
126private:
127
134
142
143 // ------------------------- Internals ------------------------------------
144private:
145 const TTransfromation & trans;
146
147
148}; // end of class DecoratorParametricCurveTransformation
149
150
157template <typename TCurve, typename TTransfromation>
158inline
159std::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)