DGtal  1.1.0
IIGeometricFunctors.h
1
17 #pragma once
18
31 #if defined(IIGeometricFunctors_RECURSES)
32 #error Recursive header files inclusion detected in IIGeometricFunctors.h
33 #else // defined(IIGeometricFunctors_RECURSES)
34
35 #define IIGeometricFunctors_RECURSES
36
37 #if !defined IIGeometricFunctors_h
38
39 #define IIGeometricFunctors_h
40
42 // Inclusions
43 #include <iostream>
44 #include <tuple>
45 #include "DGtal/base/Common.h"
46 #include "DGtal/math/linalg/EigenDecomposition.h"
47 #include "DGtal/math/linalg/CMatrix.h"
49
50 // @since 0.8 In DGtal::functors
51 namespace DGtal {
52  namespace functors {
53
55  // template class IINormalDirectionFunctor
66  template <typename TSpace, typename TMatrix=SimpleMatrix< typename TSpace::RealVector::Component, TSpace::dimension, TSpace::dimension> >
68  {
69  // ----------------------- Standard services ------------------------------
70  public:
72  typedef TSpace Space;
73  typedef typename Space::RealVector RealVector;
74  typedef typename RealVector::Component Component;
75  typedef TMatrix Matrix;
76  typedef Matrix Argument;
78  typedef Quantity Value;
79
82
86  IINormalDirectionFunctor( const Self& /* other */ ) {}
89  Self& operator=( const Self& /* other */ ) { return *this; }
98  Value operator()( const Argument& arg ) const
99  {
102
103  ASSERT ( !std::isnan(eigenValues[0]) ); // NaN
104 #ifdef DEBUG
105  for( Dimension i_dim = 1; i_dim < Space::dimension; ++i_dim )
106  {
107  ASSERT ( std::abs(eigenValues[i_dim - 1]) <= std::abs(eigenValues[i_dim]) );
108  }
109 #endif
110
111  return eigenVectors.column( 0 ); // normal vector is associated to smallest eigenvalue.
112  }
113
118  void init( Component /* h */, Component /* r */ ) {}
119
120  private:
125  }; // end of class IINormalDirectionFunctor
126
127
129  // template class IITangentDirectionFunctor
140  template <typename TSpace, typename TMatrix=SimpleMatrix< typename TSpace::RealVector::Component, TSpace::dimension, TSpace::dimension> >
142  {
143  // ----------------------- Standard services ------------------------------
144  public:
146  typedef TSpace Space;
147  typedef typename Space::RealVector RealVector;
149  typedef TMatrix Matrix;
150  typedef Matrix Argument;
152  typedef Quantity Value;
153
157
161  IITangentDirectionFunctor( const Self& /* other */ ) {}
164  Self& operator=( const Self& /* other */ ) { return *this; }
173  Value operator()( const Argument& arg ) const
174  {
177
178  ASSERT ( !std::isnan(eigenValues[0]) ); // NaN
179 #ifdef DEBUG
180  for( Dimension i_dim = 1; i_dim < Space::dimension; ++i_dim )
181  {
182  ASSERT ( std::abs(eigenValues[i_dim - 1]) <= std::abs(eigenValues[i_dim]) );
183  }
184 #endif
185  return eigenVectors.column( 1 ); // tangent vector is associated to greatest eigenvalue.
186  }
187
192  void init( Component /* h */, Component /* r */ ) {}
193
194  private:
199  }; // end of class IITangentDirectionFunctor
200
201
203  // template class IIFirstPrincipalDirectionFunctor
218  template <typename TSpace, typename TMatrix=SimpleMatrix< typename TSpace::RealVector::Component, TSpace::dimension, TSpace::dimension> >
220  {
221  // ----------------------- Standard services ------------------------------
222  public:
224  typedef TSpace Space;
225  typedef typename Space::RealVector RealVector;
227  typedef TMatrix Matrix;
228  typedef Matrix Argument;
230  typedef Quantity Value;
231
235
239  IIFirstPrincipalDirectionFunctor( const Self& /* other */ ) {}
242  Self& operator=( const Self& /* other */ ) { return *this; }
251  Value operator()( const Argument& arg ) const
252  {
255
256  ASSERT ( !std::isnan(eigenValues[0]) ); // NaN
257 #ifdef DEBUG
258  for( Dimension i_dim = 1; i_dim < Space::dimension; ++i_dim )
259  {
260  ASSERT ( std::abs(eigenValues[i_dim - 1]) <= std::abs(eigenValues[i_dim]) );
261  }
262 #endif
263
264  return eigenVectors.column( Space::dimension - 1 ); // first principal curvature direction is associated to greatest eigenvalue.
265  }
266
271  void init( Component /* h */, Component /* r */ ) {}
272
273  private:
278  }; // end of class IIFirstPrincipalDirectionFunctor
279
280
282  // template class IISecondPrincipalDirectionFunctor
297  template <typename TSpace, typename TMatrix=SimpleMatrix< typename TSpace::RealVector::Component, TSpace::dimension, TSpace::dimension> >
299  {
300  // ----------------------- Standard services ------------------------------
301  public:
303  typedef TSpace Space;
304  typedef typename Space::RealVector RealVector;
306  typedef TMatrix Matrix;
307  typedef Matrix Argument;
309  typedef Quantity Value;
310
314
318  IISecondPrincipalDirectionFunctor( const Self& /* other */ ) {}
321  Self& operator=( const Self& /* other */ ) { return *this; }
330  Value operator()( const Argument& arg ) const
331  {
334
335  ASSERT ( !std::isnan(eigenValues[0]) ); // NaN
336 #ifdef DEBUG
337  for( Dimension i_dim = 1; i_dim < Space::dimension; ++i_dim )
338  {
339  ASSERT ( std::abs(eigenValues[i_dim - 1]) <= std::abs(eigenValues[i_dim]) );
340  }
341 #endif
342
343  return eigenVectors.column( Space::dimension - 2 ); // second principal curvature direction is associated to greatest eigenvalue.
344  }
345
350  void init( Component /* h */, Component /* r */ ) {}
351
352  private:
357  }; // end of class IISecondPrincipalDirectionFunctor
358
360  // template class IIPrincipalDirectionsFunctor
375  template <typename TSpace, typename TMatrix=SimpleMatrix< typename TSpace::RealVector::Component, TSpace::dimension, TSpace::dimension> >
377  {
378  // ----------------------- Standard services ------------------------------
379  public:
381  typedef TSpace Space;
382  typedef typename Space::RealVector RealVector;
384  typedef TMatrix Matrix;
385  typedef Matrix Argument;
386  typedef std::pair<RealVector,RealVector> Quantity;
387  typedef Quantity Value;
388
392
396  IIPrincipalDirectionsFunctor( const Self& /* other */ ) {}
399  Self& operator=( const Self& /* other */ ) { return *this; }
408  Value operator()( const Argument& arg ) const
409  {
412
413  ASSERT ( !std::isnan(eigenValues[0]) ); // NaN
414 #ifdef DEBUG
415  for( Dimension i_dim = 1; i_dim < Space::dimension; ++i_dim )
416  {
417  ASSERT ( std::abs(eigenValues[i_dim - 1]) <= std::abs(eigenValues[i_dim]) );
418  }
419 #endif
420
421  return Value(
422  eigenVectors.column( Space::dimension - 1 ),
423  eigenVectors.column( Space::dimension - 2 )
424  );
425  }
426
431  void init( Component /* h */, Component /* r */ ) {}
432
433  private:
438  }; // end of class IIPrincipalDirectionsFunctor
439
440
442  // template class IIPrincipalCurvaturesAndDirectionsFunctor
457  template <typename TSpace,
458  typename TMatrix=SimpleMatrix< typename TSpace::RealVector::Component, TSpace::dimension,
459  TSpace::dimension> >
461  {
462  // ----------------------- Standard services ------------------------------
463  public:
465  typedef TSpace Space;
466  typedef typename Space::RealVector RealVector;
468  typedef TMatrix Matrix;
469  typedef Matrix Argument;
470  typedef std::tuple<double, double, RealVector, RealVector> Quantity;
471  typedef Quantity Value;
472
476
484  Value operator()( const Argument& arg ) const
485  {
486  Argument cp_arg = arg;
487  cp_arg *= dh5;
490
491  ASSERT ( !std::isnan(eigenValues[0]) ); // NaN
492  ASSERT ( (std::abs(eigenValues[0]) <= std::abs(eigenValues[1]))
493  && (std::abs(eigenValues[1]) <= std::abs(eigenValues[2])) );
494
495  Quantity res(d6_PIr6 * ( eigenValues[2] - ( 3.0 * eigenValues[1] )) + d8_5r,
496  d6_PIr6 * ( eigenValues[1] - ( 3.0 * eigenValues[2] )) + d8_5r,
497  eigenVectors.column( Space::dimension - 1 ),
498  eigenVectors.column( Space::dimension - 2 ));
499  return res;
500  }
501
506  void init( Component h , Component r )
507  {
508  double r3 = r * r * r;
509  double r6 = r3 * r3;
510  d6_PIr6 = 6.0 / ( M_PI * r6 );
511  d8_5r = 8.0 / ( 5.0 * r );
512  double h2 = h * h;
513  dh5 = h2 * h2 * h;
514  }
515
516  private:
517  double dh5;
518  double d6_PIr6;
519  double d8_5r;
524  }; // end of class IIPrincipalCurvaturesAndDirectionsFunctor
525
527  // template class IICurvatureFunctor
538  template <typename TSpace>
540  {
541  // ----------------------- Standard services ------------------------------
542  public:
544  typedef TSpace Space;
545  typedef typename Space::RealVector RealVector;
549  typedef Quantity Value;
550
553
560  Value operator()( const Argument& arg ) const
561  {
562  Quantity cp_quantity = arg;
563  cp_quantity *= dh2;
564  return d3_r * ( dPI_2 - d1_r2 * cp_quantity );
565  }
566
573  void init( Component h, Component r )
574  {
575  d1_r2 = 1.0 / ( r * r );
576  dPI_2 = M_PI / 2.0;
577  d3_r = 3.0 / r;
578  dh2 = h * h;
579  }
580
581  private:
586  }; // end of class IICurvatureFunctor
587
588
590  // template class IIMeanCurvature3DFunctor
601  template <typename TSpace>
603  {
604  // ----------------------- Standard services ------------------------------
605  public:
607  typedef TSpace Space;
608  typedef typename Space::RealVector RealVector;
612  typedef Quantity Value;
613
616
623  Value operator()( const Argument& arg ) const
624  {
625  Quantity cp_quantity = arg;
626  cp_quantity *= dh3;
627  return d8_3r - d_4_PIr4 * cp_quantity;
628  }
629
636  void init( Component h, Component r )
637  {
638  d8_3r = 8.0 / ( 3.0 * r );
639  double r2 = r * r;
640  d_4_PIr4 = 4.0 / ( M_PI * r2 * r2 );
641  dh3 = h * h * h;
642  }
643
644  private:
648  }; // end of class IIMeanCurvature3DFunctor
649
651  // template class IIGaussianCurvature3DFunctor
665  template <typename TSpace, typename TMatrix=SimpleMatrix< typename TSpace::RealVector::Component, TSpace::dimension, TSpace::dimension> >
667  {
668  // ----------------------- Standard services ------------------------------
669  public:
671  typedef TSpace Space;
672  typedef typename Space::RealVector RealVector;
674  typedef TMatrix Matrix;
675  typedef Matrix Argument;
677  typedef Quantity Value;
678
682
690  Value operator()( const Argument& arg ) const
691  {
692  Argument cp_arg = arg;
693  cp_arg *= dh5;
696
697  ASSERT ( !std::isnan(eigenValues[0]) ); // NaN
698  ASSERT ( (std::abs(eigenValues[0]) <= std::abs(eigenValues[1]))
699  && (std::abs(eigenValues[1]) <= std::abs(eigenValues[2])) );
700
701  Value k1 = d6_PIr6 * ( eigenValues[2] - ( 3.0 * eigenValues[1] )) + d8_5r;
702  Value k2 = d6_PIr6 * ( eigenValues[1] - ( 3.0 * eigenValues[2] )) + d8_5r;
703  return k1 * k2;
704  }
705
712  void init( Component h, Component r )
713  {
714  double r3 = r * r * r;
715  double r6 = r3 * r3;
716  d6_PIr6 = 6.0 / ( M_PI * r6 );
717  d8_5r = 8.0 / ( 5.0 * r );
718  double h2 = h * h;
719  dh5 = h2 * h2 * h;
720  }
721
722  private:
726
731  }; // end of class IIGaussianCurvature3DFunctor
732
734  // template class IIFirstPrincipalCurvature3DFunctor
748  template <typename TSpace, typename TMatrix=SimpleMatrix< typename TSpace::RealVector::Component, TSpace::dimension, TSpace::dimension> >
750  {
751  // ----------------------- Standard services ------------------------------
752  public:
754  typedef TSpace Space;
755  typedef typename Space::RealVector RealVector;
757  typedef TMatrix Matrix;
758  typedef Matrix Argument;
760  typedef Quantity Value;
761
765
773  Value operator()( const Argument& arg ) const
774  {
775  Argument cp_arg = arg;
776  cp_arg *= dh5;
779
780  ASSERT ( !std::isnan(eigenValues[0]) ); // NaN
781  ASSERT ( (std::abs(eigenValues[0]) <= std::abs(eigenValues[1]))
782  && (std::abs(eigenValues[1]) <= std::abs(eigenValues[2])) );
783
784
785  return d6_PIr6 * ( eigenValues[2] - ( 3.0 * eigenValues[1] )) + d8_5r;
786  }
787
794  void init( Component h, Component r )
795  {
796  double r3 = r * r * r;
797  double r6 = r3 * r3;
798  d6_PIr6 = 6.0 / ( M_PI * r6 );
799  d8_5r = 8.0 / ( 5.0 * r );
800  double h2 = h * h;
801  dh5 = h2 * h2 * h;
802  }
803
804  private:
808
813  }; // end of class IIFirstPrincipalCurvature3DFunctor
814
816  // template class IISecondPrincipalCurvature3DFunctor
830  template <typename TSpace, typename TMatrix=SimpleMatrix< typename TSpace::RealVector::Component, TSpace::dimension, TSpace::dimension> >
832  {
833  // ----------------------- Standard services ------------------------------
834  public:
836  typedef TSpace Space;
837  typedef typename Space::RealVector RealVector;
839  typedef TMatrix Matrix;
840  typedef Matrix Argument;
842  typedef Quantity Value;
843
847
855  Value operator()( const Argument& arg ) const
856  {
857  Argument cp_arg = arg;
858  cp_arg *= dh5;
861
862  ASSERT ( !std::isnan(eigenValues[0]) ); // NaN
863  ASSERT ( (std::abs(eigenValues[0]) <= std::abs(eigenValues[1]))
864  && (std::abs(eigenValues[1]) <= std::abs(eigenValues[2])) );
865
866  return d6_PIr6 * ( eigenValues[1] - ( 3.0 * eigenValues[2] )) + d8_5r;
867  }
868
875  void init( Component h, Component r )
876  {
877  double r3 = r * r * r;
878  double r6 = r3 * r3;
879  d6_PIr6 = 6.0 / ( M_PI * r6 );
880  d8_5r = 8.0 / ( 5.0 * r );
881  double h2 = h * h;
882  dh5 = h2 * h2 * h;
883  }
884
885  private:
889
894  }; // end of class IISecondPrincipalCurvature3DFunctor
895
896
898  // template class IIPrincipalCurvatures3DFunctor
911  template <typename TSpace, typename TMatrix=SimpleMatrix< typename TSpace::RealVector::Component, TSpace::dimension, TSpace::dimension> >
913  {
914  // ----------------------- Standard services ------------------------------
915  public:
917  typedef TSpace Space;
918  typedef typename Space::RealVector RealVector;
920  typedef TMatrix Matrix;
921  typedef Matrix Argument;
922  typedef std::pair<Component, Component> Quantity;
923  typedef Quantity Value;
924
928
937  Value operator()( const Argument& arg ) const
938  {
939  Argument cp_arg = arg;
940  cp_arg *= dh5;
943
944  ASSERT ( !std::isnan(eigenValues[0]) ); // NaN
945  ASSERT ( (std::abs(eigenValues[0]) <= std::abs(eigenValues[1]))
946  && (std::abs(eigenValues[1]) <= std::abs(eigenValues[2])) );
947
948  return Value(
949  d6_PIr6 * ( eigenValues[2] - ( 3.0 * eigenValues[1] )) + d8_5r,
950  d6_PIr6 * ( eigenValues[1] - ( 3.0 * eigenValues[2] )) + d8_5r
951  );
952  }
953
960  void init( Component h, Component r )
961  {
962  double r3 = r * r * r;
963  double r6 = r3 * r3;
964  d6_PIr6 = 6.0 / ( M_PI * r6 );
965  d8_5r = 8.0 / ( 5.0 * r );
966  double h2 = h * h;
967  dh5 = h2 * h2 * h;
968  }
969
970  private:
971  double dh5;
972  double d6_PIr6;
973  double d8_5r;
974
979  }; // end of class IIPrincipalCurvatures3DFunctor
980
981 } // namespace functors
982
983 } // namespace DGtal
984
985
986 // //
988
989 #endif // !defined IIGeometricFunctors_h
990
991 #undef IIGeometricFunctors_RECURSES
992 #endif // else defined(IIGeometricFunctors_RECURSES)
DGtal::functors::IIFirstPrincipalCurvature3DFunctor::Quantity
Component Quantity
Definition: IIGeometricFunctors.h:759
DGtal::functors::IIMeanCurvature3DFunctor::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CSpace< TSpace >))
DGtal::functors::IIPrincipalCurvatures3DFunctor::Space
TSpace Space
Definition: IIGeometricFunctors.h:917
DGtal::functors::IIGaussianCurvature3DFunctor::Self
IIGaussianCurvature3DFunctor< TSpace > Self
Definition: IIGeometricFunctors.h:670
DGtal::functors::IIPrincipalDirectionsFunctor::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CSpace< TSpace >))
DGtal::functors::IITangentDirectionFunctor::Argument
Matrix Argument
Definition: IIGeometricFunctors.h:150
DGtal::functors::IINormalDirectionFunctor::Value
Quantity Value
Definition: IIGeometricFunctors.h:78
DGtal::functors::IIPrincipalCurvaturesAndDirectionsFunctor::dh5
double dh5
Definition: IIGeometricFunctors.h:517
DGtal::functors::IISecondPrincipalCurvature3DFunctor::init
void init(Component h, Component r)
Definition: IIGeometricFunctors.h:875
DGtal::functors::IIGaussianCurvature3DFunctor::eigenVectors
Matrix eigenVectors
A data member only used for temporary calculations.
Definition: IIGeometricFunctors.h:728
DGtal::functors::IIPrincipalDirectionsFunctor::Quantity
std::pair< RealVector, RealVector > Quantity
Definition: IIGeometricFunctors.h:386
DGtal::functors::IISecondPrincipalDirectionFunctor::Space
TSpace Space
Definition: IIGeometricFunctors.h:303
DGtal::functors::IIPrincipalDirectionsFunctor::eigenValues
RealVector eigenValues
A data member only used for temporary calculations.
Definition: IIGeometricFunctors.h:437
DGtal::functors::IIGaussianCurvature3DFunctor::Component
RealVector::Component Component
Definition: IIGeometricFunctors.h:673
DGtal::functors::IITangentDirectionFunctor::Space
TSpace Space
Definition: IIGeometricFunctors.h:146
DGtal::functors::IIFirstPrincipalCurvature3DFunctor::d6_PIr6
Quantity d6_PIr6
Definition: IIGeometricFunctors.h:806
DGtal::functors::IIPrincipalCurvaturesAndDirectionsFunctor::Self
IIPrincipalCurvaturesAndDirectionsFunctor< TSpace > Self
Definition: IIGeometricFunctors.h:464
DGtal::functors::IINormalDirectionFunctor::Component
RealVector::Component Component
Definition: IIGeometricFunctors.h:74
DGtal::functors::IIGaussianCurvature3DFunctor::Value
Quantity Value
Definition: IIGeometricFunctors.h:677
DGtal::functors::IIMeanCurvature3DFunctor::Value
Quantity Value
Definition: IIGeometricFunctors.h:612
DGtal::functors::IIPrincipalCurvatures3DFunctor::RealVector
Space::RealVector RealVector
Definition: IIGeometricFunctors.h:918
DGtal::functors::IICurvatureFunctor
Aim: A functor Real -> Real that returns the 2d curvature by transforming the given volume....
Definition: IIGeometricFunctors.h:540
DGtal::functors::IINormalDirectionFunctor::IINormalDirectionFunctor
IINormalDirectionFunctor()
Default constructor.
Definition: IIGeometricFunctors.h:84
DGtal::concepts::CSpace
Aim: Defines the concept describing a digital space, ie a cartesian product of integer lines.
Definition: CSpace.h:106
DGtal::functors::IIMeanCurvature3DFunctor::Self
IIMeanCurvature3DFunctor< TSpace > Self
Definition: IIGeometricFunctors.h:606
DGtal::functors::IIPrincipalCurvatures3DFunctor::Value
Quantity Value
Definition: IIGeometricFunctors.h:923
DGtal::functors::IIFirstPrincipalDirectionFunctor::BOOST_STATIC_ASSERT
BOOST_STATIC_ASSERT((Space::dimension >=2))
DGtal::functors::IINormalDirectionFunctor::eigenVectors
Matrix eigenVectors
A data member only used for temporary calculations.
Definition: IIGeometricFunctors.h:122
DGtal::functors::IIFirstPrincipalCurvature3DFunctor::Matrix
TMatrix Matrix
Definition: IIGeometricFunctors.h:757
DGtal::functors::IISecondPrincipalCurvature3DFunctor::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CMatrix< Matrix >))
DGtal::functors::IIPrincipalDirectionsFunctor::Component
RealVector::Component Component
Definition: IIGeometricFunctors.h:383
DGtal::functors::IIPrincipalCurvatures3DFunctor::BOOST_STATIC_ASSERT
BOOST_STATIC_ASSERT((Space::dimension==3))
DGtal::functors::IICurvatureFunctor::Value
Quantity Value
Definition: IIGeometricFunctors.h:549
DGtal::functors::IIPrincipalCurvaturesAndDirectionsFunctor::Value
Quantity Value
Definition: IIGeometricFunctors.h:471
DGtal::functors::IIFirstPrincipalDirectionFunctor::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CSpace< TSpace >))
DGtal::functors::IIGaussianCurvature3DFunctor::dh5
Quantity dh5
Definition: IIGeometricFunctors.h:723
DGtal::functors::IISecondPrincipalCurvature3DFunctor::operator()
Value operator()(const Argument &arg) const
Definition: IIGeometricFunctors.h:855
DGtal::EigenDecomposition::getEigenDecomposition
static void getEigenDecomposition(const Matrix &matrix, Matrix &eigenVectors, Vector &eigenValues)
Compute both eigen vectors and eigen values from an input matrix.
DGtal::functors::IISecondPrincipalCurvature3DFunctor::Self
IISecondPrincipalCurvature3DFunctor< TSpace > Self
Definition: IIGeometricFunctors.h:835
DGtal::functors::IISecondPrincipalCurvature3DFunctor::eigenValues
RealVector eigenValues
A data member only used for temporary calculations.
Definition: IIGeometricFunctors.h:893
DGtal::functors::IIFirstPrincipalCurvature3DFunctor::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CMatrix< Matrix >))
DGtal::functors::IITangentDirectionFunctor::Quantity
RealVector Quantity
Definition: IIGeometricFunctors.h:151
DGtal::functors::IISecondPrincipalDirectionFunctor::Argument
Matrix Argument
Definition: IIGeometricFunctors.h:307
DGtal::functors::IISecondPrincipalDirectionFunctor::Matrix
TMatrix Matrix
Definition: IIGeometricFunctors.h:306
DGtal::functors::IISecondPrincipalDirectionFunctor::Component
RealVector::Component Component
Definition: IIGeometricFunctors.h:305
DGtal::functors::IIGaussianCurvature3DFunctor::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CMatrix< Matrix >))
DGtal::functors::IIFirstPrincipalDirectionFunctor::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CMatrix< Matrix >))
DGtal::functors::IICurvatureFunctor::dh2
Quantity dh2
Definition: IIGeometricFunctors.h:582
DGtal::functors::IISecondPrincipalDirectionFunctor::Value
Quantity Value
Definition: IIGeometricFunctors.h:309
DGtal::functors::IINormalDirectionFunctor::eigenValues
RealVector eigenValues
A data member only used for temporary calculations.
Definition: IIGeometricFunctors.h:124
DGtal::functors::IISecondPrincipalCurvature3DFunctor::BOOST_STATIC_ASSERT
BOOST_STATIC_ASSERT((Space::dimension==3))
DGtal::Dimension
DGtal::uint32_t Dimension
Definition: Common.h:133
DGtal::functors::IICurvatureFunctor::Component
RealVector::Component Component
Definition: IIGeometricFunctors.h:546
DGtal::functors::IISecondPrincipalCurvature3DFunctor::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CSpace< TSpace >))
DGtal::functors::IIPrincipalCurvatures3DFunctor::operator()
Value operator()(const Argument &arg) const
Definition: IIGeometricFunctors.h:937
DGtal::functors::IISecondPrincipalDirectionFunctor::IISecondPrincipalDirectionFunctor
IISecondPrincipalDirectionFunctor()
Default constructor.
Definition: IIGeometricFunctors.h:316
DGtal::functors::IITangentDirectionFunctor::Matrix
TMatrix Matrix
Definition: IIGeometricFunctors.h:149
DGtal::functors::IIPrincipalDirectionsFunctor::Space
TSpace Space
Definition: IIGeometricFunctors.h:381
DGtal::functors::IIPrincipalDirectionsFunctor::IIPrincipalDirectionsFunctor
IIPrincipalDirectionsFunctor()
Default constructor.
Definition: IIGeometricFunctors.h:394
DGtal::functors::IIPrincipalCurvatures3DFunctor::d8_5r
double d8_5r
Definition: IIGeometricFunctors.h:973
DGtal::functors::IISecondPrincipalCurvature3DFunctor::Component
RealVector::Component Component
Definition: IIGeometricFunctors.h:838
DGtal::functors::IIPrincipalCurvatures3DFunctor::Quantity
std::pair< Component, Component > Quantity
Definition: IIGeometricFunctors.h:922
DGtal::functors::IINormalDirectionFunctor
Aim: A functor Matrix -> RealVector that returns the normal direction by diagonalizing the given cova...
Definition: IIGeometricFunctors.h:68
DGtal::functors::IIFirstPrincipalDirectionFunctor::IIFirstPrincipalDirectionFunctor
IIFirstPrincipalDirectionFunctor()
Default constructor.
Definition: IIGeometricFunctors.h:237
DGtal::functors::IITangentDirectionFunctor::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CMatrix< Matrix >))
DGtal::functors::IIFirstPrincipalCurvature3DFunctor::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CSpace< TSpace >))
DGtal::functors::IICurvatureFunctor::RealVector
Space::RealVector RealVector
Definition: IIGeometricFunctors.h:545
DGtal::functors::IITangentDirectionFunctor::eigenVectors
Matrix eigenVectors
A data member only used for temporary calculations.
Definition: IIGeometricFunctors.h:196
DGtal::functors::IIFirstPrincipalDirectionFunctor::operator()
Value operator()(const Argument &arg) const
Definition: IIGeometricFunctors.h:251
DGtal::functors::IIPrincipalCurvaturesAndDirectionsFunctor::Component
RealVector::Component Component
Definition: IIGeometricFunctors.h:467
DGtal::functors::IIMeanCurvature3DFunctor::RealVector
Space::RealVector RealVector
Definition: IIGeometricFunctors.h:608
DGtal::functors::IITangentDirectionFunctor::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CSpace< TSpace >))
DGtal::functors::IIFirstPrincipalDirectionFunctor::operator=
Self & operator=(const Self &)
Definition: IIGeometricFunctors.h:242
DGtal::functors::IINormalDirectionFunctor::RealVector
Space::RealVector RealVector
Definition: IIGeometricFunctors.h:73
DGtal::functors::IIFirstPrincipalCurvature3DFunctor::Value
Quantity Value
Definition: IIGeometricFunctors.h:760
DGtal::functors::IIGaussianCurvature3DFunctor::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CSpace< TSpace >))
DGtal::functors::IIFirstPrincipalCurvature3DFunctor::Space
TSpace Space
Definition: IIGeometricFunctors.h:754
DGtal::functors::IITangentDirectionFunctor::operator()
Value operator()(const Argument &arg) const
Definition: IIGeometricFunctors.h:173
DGtal::functors::IITangentDirectionFunctor::IITangentDirectionFunctor
IITangentDirectionFunctor()
Default constructor.
Definition: IIGeometricFunctors.h:159
DGtal::functors::IISecondPrincipalCurvature3DFunctor
Aim: A functor Matrix -> Real that returns the second principal curvature value by diagonalizing the ...
Definition: IIGeometricFunctors.h:832
DGtal::functors::IIFirstPrincipalDirectionFunctor::RealVector
Space::RealVector RealVector
Definition: IIGeometricFunctors.h:225
DGtal::functors::IIPrincipalCurvaturesAndDirectionsFunctor::d6_PIr6
double d6_PIr6
Definition: IIGeometricFunctors.h:518
DGtal::functors::IIFirstPrincipalDirectionFunctor::Component
RealVector::Component Component
Definition: IIGeometricFunctors.h:226
DGtal::PointVector::Component
TEuclideanRing Component
Type for Vector elements.
Definition: PointVector.h:614
DGtal::functors::IINormalDirectionFunctor::operator=
Self & operator=(const Self &)
Definition: IIGeometricFunctors.h:89
DGtal::functors::IIPrincipalDirectionsFunctor::Value
Quantity Value
Definition: IIGeometricFunctors.h:387
DGtal::functors::IIPrincipalDirectionsFunctor::Matrix
TMatrix Matrix
Definition: IIGeometricFunctors.h:384
DGtal::functors::IISecondPrincipalDirectionFunctor::init
void init(Component, Component)
Definition: IIGeometricFunctors.h:350
DGtal::functors::IISecondPrincipalDirectionFunctor::Quantity
RealVector Quantity
Definition: IIGeometricFunctors.h:308
DGtal::functors::IIFirstPrincipalDirectionFunctor
Aim: A functor Matrix -> RealVector that returns the first principal curvature direction by diagonali...
Definition: IIGeometricFunctors.h:220
DGtal::functors::IICurvatureFunctor::Argument
Component Argument
Definition: IIGeometricFunctors.h:547
DGtal::functors::IIGaussianCurvature3DFunctor::d8_5r
Quantity d8_5r
Definition: IIGeometricFunctors.h:725
DGtal::functors::IICurvatureFunctor::d3_r
Quantity d3_r
Definition: IIGeometricFunctors.h:583
DGtal::functors::IIPrincipalDirectionsFunctor::RealVector
Space::RealVector RealVector
Definition: IIGeometricFunctors.h:382
DGtal::functors::IISecondPrincipalDirectionFunctor::operator=
Self & operator=(const Self &)
Definition: IIGeometricFunctors.h:321
DGtal::functors::IICurvatureFunctor::Quantity
Component Quantity
Definition: IIGeometricFunctors.h:548
DGtal::functors::IIMeanCurvature3DFunctor::Quantity
Component Quantity
Definition: IIGeometricFunctors.h:611
DGtal::functors::IISecondPrincipalCurvature3DFunctor::eigenVectors
Matrix eigenVectors
A data member only used for temporary calculations.
Definition: IIGeometricFunctors.h:891
DGtal::functors::IIPrincipalDirectionsFunctor::IIPrincipalDirectionsFunctor
IIPrincipalDirectionsFunctor(const Self &)
Copy constructor. Nothing to do.
Definition: IIGeometricFunctors.h:396
DGtal::functors::IIPrincipalCurvaturesAndDirectionsFunctor::Space
TSpace Space
Definition: IIGeometricFunctors.h:465
DGtal::functors::IISecondPrincipalDirectionFunctor::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CSpace< TSpace >))
DGtal::functors::IITangentDirectionFunctor
Aim: A functor Matrix -> RealVector that returns the tangent direction by diagonalizing the given cov...
Definition: IIGeometricFunctors.h:142
DGtal::functors::IIPrincipalCurvatures3DFunctor::eigenVectors
Matrix eigenVectors
A data member only used for temporary calculations.
Definition: IIGeometricFunctors.h:976
DGtal::SimpleMatrix
Aim: implements basic MxN Matrix services (M,N>=1).
Definition: SimpleMatrix.h:76
DGtal::functors::IIPrincipalCurvatures3DFunctor::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CMatrix< Matrix >))
DGtal::functors::IISecondPrincipalCurvature3DFunctor::RealVector
Space::RealVector RealVector
Definition: IIGeometricFunctors.h:837
DGtal::functors::IISecondPrincipalCurvature3DFunctor::Quantity
Component Quantity
Definition: IIGeometricFunctors.h:841
DGtal::functors::IISecondPrincipalDirectionFunctor::IISecondPrincipalDirectionFunctor
IISecondPrincipalDirectionFunctor(const Self &)
Copy constructor. Nothing to do.
Definition: IIGeometricFunctors.h:318
DGtal::functors::IIPrincipalCurvaturesAndDirectionsFunctor::d8_5r
double d8_5r
Definition: IIGeometricFunctors.h:519
DGtal::functors::IIPrincipalDirectionsFunctor::eigenVectors
Matrix eigenVectors
A data member only used for temporary calculations.
Definition: IIGeometricFunctors.h:435
DGtal::functors::IIPrincipalCurvatures3DFunctor
Aim: A functor Matrix -> std::pair<Real,Real> that returns the first and the second principal curvatu...
Definition: IIGeometricFunctors.h:913
DGtal::functors::IIPrincipalCurvaturesAndDirectionsFunctor::BOOST_STATIC_ASSERT
BOOST_STATIC_ASSERT((Space::dimension==3))
DGtal
DGtal is the top-level namespace which contains all DGtal functions and types.
Definition: ClosedIntegerHalfPlane.h:49
DGtal::functors::IIFirstPrincipalDirectionFunctor::Matrix
TMatrix Matrix
Definition: IIGeometricFunctors.h:227
DGtal::functors::IIFirstPrincipalCurvature3DFunctor::Argument
Matrix Argument
Definition: IIGeometricFunctors.h:758
DGtal::functors::IISecondPrincipalCurvature3DFunctor::d6_PIr6
Quantity d6_PIr6
Definition: IIGeometricFunctors.h:887
DGtal::functors::IITangentDirectionFunctor::Component
RealVector::Component Component
Definition: IIGeometricFunctors.h:148
DGtal::functors::IIFirstPrincipalDirectionFunctor::Value
Quantity Value
Definition: IIGeometricFunctors.h:230
DGtal::functors::IIGaussianCurvature3DFunctor::d6_PIr6
Quantity d6_PIr6
Definition: IIGeometricFunctors.h:724
DGtal::functors::IIPrincipalCurvatures3DFunctor::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CSpace< TSpace >))
DGtal::functors::IIGaussianCurvature3DFunctor::Matrix
TMatrix Matrix
Definition: IIGeometricFunctors.h:674
DGtal::functors::IIGaussianCurvature3DFunctor::BOOST_STATIC_ASSERT
BOOST_STATIC_ASSERT((Space::dimension==3))
DGtal::functors::IIGaussianCurvature3DFunctor::operator()
Value operator()(const Argument &arg) const
Definition: IIGeometricFunctors.h:690
DGtal::functors::IIFirstPrincipalCurvature3DFunctor::RealVector
Space::RealVector RealVector
Definition: IIGeometricFunctors.h:755
DGtal::functors::IISecondPrincipalDirectionFunctor::eigenVectors
Matrix eigenVectors
A data member only used for temporary calculations.
Definition: IIGeometricFunctors.h:354
DGtal::functors::IIFirstPrincipalCurvature3DFunctor::d8_5r
Quantity d8_5r
Definition: IIGeometricFunctors.h:807
DGtal::functors::IIFirstPrincipalDirectionFunctor::eigenVectors
Matrix eigenVectors
A data member only used for temporary calculations.
Definition: IIGeometricFunctors.h:275
DGtal::functors::IIFirstPrincipalCurvature3DFunctor::eigenVectors
Matrix eigenVectors
A data member only used for temporary calculations.
Definition: IIGeometricFunctors.h:810
DGtal::functors::IIPrincipalCurvatures3DFunctor::Matrix
TMatrix Matrix
Definition: IIGeometricFunctors.h:920
DGtal::functors::IIFirstPrincipalCurvature3DFunctor::Component
RealVector::Component Component
Definition: IIGeometricFunctors.h:756
DGtal::SpaceND::dimension
static const Dimension dimension
static constants to store the dimension.
Definition: SpaceND.h:132
DGtal::functors::IISecondPrincipalDirectionFunctor::Self
IISecondPrincipalDirectionFunctor< TSpace > Self
Definition: IIGeometricFunctors.h:302
DGtal::functors::IIPrincipalCurvaturesAndDirectionsFunctor::Matrix
TMatrix Matrix
Definition: IIGeometricFunctors.h:468
DGtal::functors::IIFirstPrincipalCurvature3DFunctor::operator()
Value operator()(const Argument &arg) const
Definition: IIGeometricFunctors.h:773
DGtal::functors::IIFirstPrincipalDirectionFunctor::IIFirstPrincipalDirectionFunctor
IIFirstPrincipalDirectionFunctor(const Self &)
Copy constructor. Nothing to do.
Definition: IIGeometricFunctors.h:239
DGtal::functors::IIPrincipalCurvaturesAndDirectionsFunctor
Aim: A functor Matrix -> std::pair<RealVector,RealVector> that returns the first and the second princ...
Definition: IIGeometricFunctors.h:461
DGtal::functors::IITangentDirectionFunctor::Value
Quantity Value
Definition: IIGeometricFunctors.h:152
DGtal::functors::IISecondPrincipalCurvature3DFunctor::Value
Quantity Value
Definition: IIGeometricFunctors.h:842
DGtal::functors::IIFirstPrincipalDirectionFunctor::Self
IIFirstPrincipalDirectionFunctor< TSpace > Self
Definition: IIGeometricFunctors.h:223
DGtal::functors::IITangentDirectionFunctor::BOOST_STATIC_ASSERT
BOOST_STATIC_ASSERT((Space::dimension==2))
DGtal::functors::IINormalDirectionFunctor::init
void init(Component, Component)
Definition: IIGeometricFunctors.h:118
DGtal::functors::IISecondPrincipalDirectionFunctor::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CMatrix< Matrix >))
DGtal::functors::IIPrincipalCurvaturesAndDirectionsFunctor::Argument
Matrix Argument
Definition: IIGeometricFunctors.h:469
DGtal::functors::IIFirstPrincipalCurvature3DFunctor
Aim: A functor Matrix -> Real that returns the first principal curvature value by diagonalizing the g...
Definition: IIGeometricFunctors.h:750
DGtal::functors::IIPrincipalCurvatures3DFunctor::eigenValues
RealVector eigenValues
A data member only used for temporary calculations.
Definition: IIGeometricFunctors.h:978
DGtal::functors::IITangentDirectionFunctor::eigenValues
RealVector eigenValues
A data member only used for temporary calculations.
Definition: IIGeometricFunctors.h:198
DGtal::functors::IIFirstPrincipalCurvature3DFunctor::init
void init(Component h, Component r)
Definition: IIGeometricFunctors.h:794
DGtal::functors::IICurvatureFunctor::Space
TSpace Space
Definition: IIGeometricFunctors.h:544
DGtal::functors::IINormalDirectionFunctor::Self
IINormalDirectionFunctor< TSpace > Self
Definition: IIGeometricFunctors.h:71
DGtal::functors::IICurvatureFunctor::init
void init(Component h, Component r)
Definition: IIGeometricFunctors.h:573
DGtal::functors::IIFirstPrincipalDirectionFunctor::Space
TSpace Space
Definition: IIGeometricFunctors.h:224
DGtal::functors::IIPrincipalCurvaturesAndDirectionsFunctor::eigenVectors
Matrix eigenVectors
A data member only used for temporary calculations.
Definition: IIGeometricFunctors.h:521
DGtal::functors::IISecondPrincipalCurvature3DFunctor::Matrix
TMatrix Matrix
Definition: IIGeometricFunctors.h:839
DGtal::functors::IIGaussianCurvature3DFunctor::Argument
Matrix Argument
Definition: IIGeometricFunctors.h:675
DGtal::functors::IIPrincipalCurvatures3DFunctor::init
void init(Component h, Component r)
Definition: IIGeometricFunctors.h:960
DGtal::functors::IIPrincipalDirectionsFunctor::init
void init(Component, Component)
Definition: IIGeometricFunctors.h:431
DGtal::functors::IISecondPrincipalDirectionFunctor::operator()
Value operator()(const Argument &arg) const
Definition: IIGeometricFunctors.h:330
DGtal::functors::IIMeanCurvature3DFunctor::Space
TSpace Space
Definition: IIGeometricFunctors.h:607
DGtal::functors::IIFirstPrincipalDirectionFunctor::Quantity
RealVector Quantity
Definition: IIGeometricFunctors.h:229
DGtal::functors::IIGaussianCurvature3DFunctor::eigenValues
RealVector eigenValues
A data member only used for temporary calculations.
Definition: IIGeometricFunctors.h:730
DGtal::functors::IIPrincipalDirectionsFunctor::Self
IIPrincipalDirectionsFunctor< TSpace > Self
Definition: IIGeometricFunctors.h:380
DGtal::functors::IIGaussianCurvature3DFunctor
Aim: A functor Matrix -> Real that returns the Gaussian curvature by diagonalizing the given covarian...
Definition: IIGeometricFunctors.h:667
DGtal::functors::IIPrincipalCurvaturesAndDirectionsFunctor::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CMatrix< Matrix >))
DGtal::concepts::CMatrix
Aim: Represent any static or dynamic sized matrix having sparse or dense representation.
Definition: CMatrix.h:91
DGtal::functors::IIPrincipalCurvaturesAndDirectionsFunctor::init
void init(Component h, Component r)
Definition: IIGeometricFunctors.h:506
DGtal::functors::IIFirstPrincipalDirectionFunctor::init
void init(Component, Component)
Definition: IIGeometricFunctors.h:271
DGtal::functors::IIMeanCurvature3DFunctor
Aim: A functor Real -> Real that returns the 3d mean curvature by transforming the given volume....
Definition: IIGeometricFunctors.h:603
DGtal::functors::IIFirstPrincipalDirectionFunctor::eigenValues
RealVector eigenValues
A data member only used for temporary calculations.
Definition: IIGeometricFunctors.h:277
DGtal::functors::IIPrincipalCurvatures3DFunctor::Argument
Matrix Argument
Definition: IIGeometricFunctors.h:921
DGtal::functors::IIPrincipalCurvatures3DFunctor::d6_PIr6
double d6_PIr6
Definition: IIGeometricFunctors.h:972
DGtal::functors::IIMeanCurvature3DFunctor::d8_3r
Quantity d8_3r
Definition: IIGeometricFunctors.h:646
DGtal::functors::IIPrincipalDirectionsFunctor
Aim: A functor Matrix -> std::pair<RealVector,RealVector> that returns the first and the second princ...
Definition: IIGeometricFunctors.h:377
DGtal::functors::IICurvatureFunctor::d1_r2
Quantity d1_r2
Definition: IIGeometricFunctors.h:585
DGtal::functors::IIPrincipalCurvatures3DFunctor::dh5
double dh5
Definition: IIGeometricFunctors.h:971
DGtal::PointVector
Aim: Implements basic operations that will be used in Point and Vector classes.
Definition: PointVector.h:593
DGtal::functors::IISecondPrincipalDirectionFunctor::eigenValues
RealVector eigenValues
A data member only used for temporary calculations.
Definition: IIGeometricFunctors.h:356
DGtal::functors::IIMeanCurvature3DFunctor::init
void init(Component h, Component r)
Definition: IIGeometricFunctors.h:636
DGtal::functors::IICurvatureFunctor::dPI_2
Quantity dPI_2
Definition: IIGeometricFunctors.h:584
DGtal::functors::IITangentDirectionFunctor::RealVector
Space::RealVector RealVector
Definition: IIGeometricFunctors.h:147
DGtal::functors::IITangentDirectionFunctor::init
void init(Component, Component)
Definition: IIGeometricFunctors.h:192
DGtal::functors::IISecondPrincipalDirectionFunctor::BOOST_STATIC_ASSERT
BOOST_STATIC_ASSERT((Space::dimension >=3))
DGtal::functors::IIMeanCurvature3DFunctor::d_4_PIr4
Quantity d_4_PIr4
Definition: IIGeometricFunctors.h:647
DGtal::functors::IISecondPrincipalCurvature3DFunctor::d8_5r
Quantity d8_5r
Definition: IIGeometricFunctors.h:888
DGtal::functors::IIMeanCurvature3DFunctor::operator()
Value operator()(const Argument &arg) const
Definition: IIGeometricFunctors.h:623
DGtal::functors::IIFirstPrincipalCurvature3DFunctor::Self
IIFirstPrincipalCurvature3DFunctor< TSpace > Self
Definition: IIGeometricFunctors.h:753
DGtal::functors::IIFirstPrincipalDirectionFunctor::Argument
Matrix Argument
Definition: IIGeometricFunctors.h:228
DGtal::functors::IISecondPrincipalDirectionFunctor::RealVector
Space::RealVector RealVector
Definition: IIGeometricFunctors.h:304
DGtal::functors::IIPrincipalDirectionsFunctor::Argument
Matrix Argument
Definition: IIGeometricFunctors.h:385
DGtal::functors::IICurvatureFunctor::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CSpace< TSpace >))
DGtal::functors::IISecondPrincipalDirectionFunctor
Aim: A functor Matrix -> RealVector that returns the second principal curvature direction by diagonal...
Definition: IIGeometricFunctors.h:299
DGtal::functors::IIGaussianCurvature3DFunctor::Quantity
Component Quantity
Definition: IIGeometricFunctors.h:676
DGtal::functors::IITangentDirectionFunctor::Self
IITangentDirectionFunctor< TSpace > Self
Definition: IIGeometricFunctors.h:145
DGtal::functors::IIPrincipalCurvaturesAndDirectionsFunctor::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CSpace< TSpace >))
DGtal::functors::IIPrincipalCurvaturesAndDirectionsFunctor::operator()
Value operator()(const Argument &arg) const
Definition: IIGeometricFunctors.h:484
DGtal::functors::IIMeanCurvature3DFunctor::Component
RealVector::Component Component
Definition: IIGeometricFunctors.h:609
DGtal::functors::IIPrincipalCurvaturesAndDirectionsFunctor::RealVector
Space::RealVector RealVector
Definition: IIGeometricFunctors.h:466
DGtal::functors::IICurvatureFunctor::BOOST_STATIC_ASSERT
BOOST_STATIC_ASSERT((Space::dimension==2))
DGtal::functors::IIMeanCurvature3DFunctor::dh3
Quantity dh3
Definition: IIGeometricFunctors.h:645
DGtal::functors::IICurvatureFunctor::Self
IICurvatureFunctor< TSpace > Self
Definition: IIGeometricFunctors.h:543
DGtal::functors::IINormalDirectionFunctor::Argument
Matrix Argument
Definition: IIGeometricFunctors.h:76
DGtal::functors::IITangentDirectionFunctor::operator=
Self & operator=(const Self &)
Definition: IIGeometricFunctors.h:164
DGtal::functors::IINormalDirectionFunctor::Quantity
RealVector Quantity
Definition: IIGeometricFunctors.h:77
DGtal::functors::IIPrincipalCurvaturesAndDirectionsFunctor::eigenValues
RealVector eigenValues
A data member only used for temporary calculations.
Definition: IIGeometricFunctors.h:523
DGtal::functors::IIGaussianCurvature3DFunctor::init
void init(Component h, Component r)
Definition: IIGeometricFunctors.h:712
DGtal::functors::IIPrincipalDirectionsFunctor::BOOST_STATIC_ASSERT
BOOST_STATIC_ASSERT((Space::dimension >=3))
DGtal::functors::IISecondPrincipalCurvature3DFunctor::Space
TSpace Space
Definition: IIGeometricFunctors.h:836
DGtal::functors::IIFirstPrincipalCurvature3DFunctor::eigenValues
RealVector eigenValues
A data member only used for temporary calculations.
Definition: IIGeometricFunctors.h:812
DGtal::functors::IISecondPrincipalCurvature3DFunctor::Argument
Matrix Argument
Definition: IIGeometricFunctors.h:840
DGtal::functors::IIPrincipalDirectionsFunctor::operator=
Self & operator=(const Self &)
Definition: IIGeometricFunctors.h:399
DGtal::functors::IIPrincipalCurvaturesAndDirectionsFunctor::Quantity
std::tuple< double, double, RealVector, RealVector > Quantity
Definition: IIGeometricFunctors.h:470
DGtal::functors::IITangentDirectionFunctor::IITangentDirectionFunctor
IITangentDirectionFunctor(const Self &)
Copy constructor. Nothing to do.
Definition: IIGeometricFunctors.h:161
DGtal::functors::IIMeanCurvature3DFunctor::Argument
Component Argument
Definition: IIGeometricFunctors.h:610
DGtal::functors::IINormalDirectionFunctor::IINormalDirectionFunctor
IINormalDirectionFunctor(const Self &)
Copy constructor. Nothing to do.
Definition: IIGeometricFunctors.h:86
DGtal::functors::IINormalDirectionFunctor::Space
TSpace Space
Definition: IIGeometricFunctors.h:72
DGtal::functors::IIPrincipalCurvatures3DFunctor::Self
IIPrincipalCurvatures3DFunctor< TSpace > Self
Definition: IIGeometricFunctors.h:916
DGtal::functors::IIFirstPrincipalCurvature3DFunctor::dh5
Quantity dh5
Definition: IIGeometricFunctors.h:805
DGtal::functors::IICurvatureFunctor::operator()
Value operator()(const Argument &arg) const
Definition: IIGeometricFunctors.h:560
DGtal::functors::IISecondPrincipalCurvature3DFunctor::dh5
Quantity dh5
Definition: IIGeometricFunctors.h:886
DGtal::functors::IINormalDirectionFunctor::Matrix
TMatrix Matrix
Definition: IIGeometricFunctors.h:75
DGtal::functors::IIPrincipalDirectionsFunctor::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CMatrix< Matrix >))
DGtal::functors::IINormalDirectionFunctor::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CMatrix< Matrix >))
DGtal::functors::IINormalDirectionFunctor::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CSpace< TSpace >))
DGtal::functors::IINormalDirectionFunctor::operator()
Value operator()(const Argument &arg) const
Definition: IIGeometricFunctors.h:98
DGtal::functors::IIFirstPrincipalCurvature3DFunctor::BOOST_STATIC_ASSERT
BOOST_STATIC_ASSERT((Space::dimension==3))
DGtal::functors::IIPrincipalCurvatures3DFunctor::Component
RealVector::Component Component
Definition: IIGeometricFunctors.h:919
DGtal::functors::IIMeanCurvature3DFunctor::BOOST_STATIC_ASSERT
BOOST_STATIC_ASSERT((Space::dimension==3))
DGtal::functors::IIGaussianCurvature3DFunctor::RealVector
Space::RealVector RealVector
Definition: IIGeometricFunctors.h:672
DGtal::functors::IIGaussianCurvature3DFunctor::Space
TSpace Space
Definition: IIGeometricFunctors.h:671
DGtal::functors::IIPrincipalDirectionsFunctor::operator()
Value operator()(const Argument &arg) const
Definition: IIGeometricFunctors.h:408