contour.h

Go to the documentation of this file.
00001 #ifndef __UTIL__CONTOUR_HPP__
00002 #define __UTIL__CONTOUR_HPP__
00003 
00009 #include <config.h>
00010 #include <string>
00011 #include <vector>
00012 #include <util/vector.h>
00013 #include <util/watchdog.h>
00014 
00015 namespace util {
00025   class Contour : public FileObject {
00026   public:
00027     Contour();
00028     Contour(const Contour&);
00029 #ifdef USE_CXX0X
00030     Contour(Contour&&) = default;
00031 #endif
00032 
00033     Contour(std::string filename);
00034     Contour& operator=(const Contour&);
00035 #ifdef USE_CXX0X
00036     Contour& operator=(Contour&&) = default;
00037 #endif
00038     util::Vector<3,double> operator()(double t) const;
00039     const util::Vector<3,double>& getMax() const;
00040     const util::Vector<3,double>& getMin() const;
00041 
00042     double length(double a, double b, double dt = 0.01);
00043     double travel(double t, double l, double dt = 0.01);
00044 
00045     util::Vector<3,double> tangent(double t, double dt = 0.01);
00046     util::Vector<3,double> normal(double t, double dt = 0.01);
00047 
00048     void reread();
00049 
00050   private:
00051     double Basis0(double t) const;
00052     double Basis1(double t) const;
00053     double Basis2(double t) const;
00054     double Basis3(double t) const;
00055 
00056     std::vector<util::Vector<3,double> > pts;
00057     util::Vector<3,double> max;
00058     util::Vector<3,double> min;
00059 
00060     bool closed;
00061     bool regular;
00062   };
00063 }
00064 
00065 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Generated on Fri May 31 15:37:53 2013 for VVE by  doxygen 1.6.3