MorphoGraphX  2.0-1-227
Contour.hpp
Go to the documentation of this file.
1 #ifndef _CONTOUR_HPP_
2 #define _CONTOUR_HPP_
3 
9 #include <Config.hpp>
10 #include <vector>
11 #include <Vector.hpp>
12 
13 namespace mgx
14 {
24  class mgx_EXPORT Contour
25  {
26  public:
27  Contour();
28  Contour(const Contour&);
29 #ifdef USE_CXX0X
30  Contour(Contour&&) = default;
31 #endif
32 
33  Contour(const QString &fileName);
34  Contour& operator=(const Contour&);
35 #ifdef USE_CXX0X
36  Contour& operator=(Contour&&) = default;
37 #endif
38  Vector<3,double> operator()(double t) const;
39  const Vector<3,double>& getMax() const;
40  const Vector<3,double>& getMin() const;
41 
42  double length(double a, double b, double dt = 0.01);
43  double travel(double t, double l, double dt = 0.01);
44 
45  Vector<3,double> tangent(double t, double dt = 0.01);
46  Vector<3,double> normal(double t, double dt = 0.01);
47 
48  void reread();
49 
50  private:
51  QString fileName;
52  double Basis0(double t) const;
53  double Basis1(double t) const;
54  double Basis2(double t) const;
55  double Basis3(double t) const;
56 
57  std::vector<Vector<3,double> > pts;
60 
61  bool closed;
62  bool regular;
63  };
64 }
65 
66 #endif
Vector.hpp
mgx::Contour
Contour utility class.
Definition: Contour.hpp:24
mgx
Distributed matrix library.
Definition: Assert.hpp:26
mgx::max
T CU_HOST_DEVICE max(const T a, const T b)
Definition: Util.hpp:34
mgx::Vector< 3, double >
mgx::min
CU_HOST_DEVICE T min(const T a, const T b)
Definition: Util.hpp:26