added curvature direction
This commit is contained in:
parent
9d37776dd6
commit
749f67c3b6
|
@ -36,41 +36,16 @@ All the Components that can be added to a vertex should be defined in the namesp
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*-------------------------- Curvature ----------------------------------*/
|
/*------------------------- Base Classes -----------------------------------------*/
|
||||||
|
|
||||||
template <class S>
|
template <class S>
|
||||||
struct CurvatureDirBaseType{
|
struct CurvatureDirBaseType{
|
||||||
typedef Point3<S> VecType;
|
typedef Point3<S> VecType;
|
||||||
typedef S ScalarType;
|
typedef S ScalarType;
|
||||||
CurvatureDirBaseType () {}
|
CurvatureDirBaseType () {}
|
||||||
Point3<S>max_dir,min_dir; // max and min curvature direction
|
Point3<S>max_dir,min_dir; // max and min curvature direction
|
||||||
S k1,k2;// max and min curvature values
|
S k1,k2;// max and min curvature values
|
||||||
};
|
};
|
||||||
|
|
||||||
template <class A, class TT> class Curvature: public TT {
|
|
||||||
public:
|
|
||||||
typedef Point2<A> CurvatureType;
|
|
||||||
typedef typename CurvatureType::ScalarType ScalarType;
|
|
||||||
ScalarType &Kh(){ return _hk[0];}
|
|
||||||
ScalarType &Kg(){ return _hk[1];}
|
|
||||||
const ScalarType &cKh() const { return _hk[0];}
|
|
||||||
const ScalarType &cKg() const { return _hk[1];}
|
|
||||||
|
|
||||||
static bool HasCurvature() { return true; }
|
|
||||||
static bool IsCurvatureEnabled(typename TT::VertexType *) { return true; }
|
|
||||||
static void Name(std::vector<std::string> & name){name.push_back(std::string("Curvature"));TT::Name(name);}
|
|
||||||
|
|
||||||
private:
|
|
||||||
Point2<A> _hk;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
template <class T> class Curvaturef: public Curvature< float, T> {
|
|
||||||
public: static void Name(std::vector<std::string> & name){name.push_back(std::string("Curvaturef"));T::Name(name);}
|
|
||||||
};
|
|
||||||
template <class T> class Curvatured: public Curvature<double , T> {
|
|
||||||
public: static void Name(std::vector<std::string> & name){name.push_back(std::string("Curvatured"));T::Name(name);}
|
|
||||||
};
|
|
||||||
|
|
||||||
/*------------------------- EMPTY CORE COMPONENTS -----------------------------------------*/
|
/*------------------------- EMPTY CORE COMPONENTS -----------------------------------------*/
|
||||||
|
|
||||||
|
@ -350,6 +325,34 @@ template <class TT> class Qualityd: public Quality<double, TT> {
|
||||||
public: static void Name(std::vector<std::string> & name){name.push_back(std::string("Qualityd"));TT::Name(name);}
|
public: static void Name(std::vector<std::string> & name){name.push_back(std::string("Qualityd"));TT::Name(name);}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*-------------------------- Curvature ----------------------------------*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
template <class A, class TT> class Curvature: public TT {
|
||||||
|
public:
|
||||||
|
typedef Point2<A> CurvatureType;
|
||||||
|
typedef typename CurvatureType::ScalarType ScalarType;
|
||||||
|
ScalarType &Kh(){ return _hk[0];}
|
||||||
|
ScalarType &Kg(){ return _hk[1];}
|
||||||
|
const ScalarType &cKh() const { return _hk[0];}
|
||||||
|
const ScalarType &cKg() const { return _hk[1];}
|
||||||
|
|
||||||
|
static bool HasCurvature() { return true; }
|
||||||
|
static bool IsCurvatureEnabled(typename TT::VertexType *) { return true; }
|
||||||
|
static void Name(std::vector<std::string> & name){name.push_back(std::string("Curvature"));TT::Name(name);}
|
||||||
|
|
||||||
|
private:
|
||||||
|
Point2<A> _hk;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
template <class T> class Curvaturef: public Curvature< float, T> {
|
||||||
|
public: static void Name(std::vector<std::string> & name){name.push_back(std::string("Curvaturef"));T::Name(name);}
|
||||||
|
};
|
||||||
|
template <class T> class Curvatured: public Curvature<double , T> {
|
||||||
|
public: static void Name(std::vector<std::string> & name){name.push_back(std::string("Curvatured"));T::Name(name);}
|
||||||
|
};
|
||||||
|
|
||||||
/*-------------------------- Curvature Direction ----------------------------------*/
|
/*-------------------------- Curvature Direction ----------------------------------*/
|
||||||
|
|
||||||
|
@ -508,6 +511,8 @@ private:
|
||||||
int _zp ;
|
int _zp ;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} // end namespace vert
|
} // end namespace vert
|
||||||
}// end namespace vcg
|
}// end namespace vcg
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue