diff --git a/vcg/simplex/face/component.h b/vcg/simplex/face/component.h index 050af978..736309c7 100644 --- a/vcg/simplex/face/component.h +++ b/vcg/simplex/face/component.h @@ -517,6 +517,34 @@ public: static void Name(std::vector & name){name.push_back(std::s template class Qualityd: public Quality { public: static void Name(std::vector & name){name.push_back(std::string("Qualityd"));T::Name(name);} }; + +/*-------------------------- Quality ----------------------------------*/ + +template class Quality3: public T { +public: + typedef vcg::Point3 Quality3Type; + Quality3Type &Q3() { return _quality; } + const Quality3Type &cQ3() const { return _quality; } + template + void ImportData(const RightF & rightF){ if(RightF::HasFaceQuality3()) Q3() = rightF.cQ3();T::ImportData(rightF);} + inline void Alloc(const int & ns){T::Alloc(ns);} + inline void Dealloc(){T::Dealloc();} + static bool HasFaceQuality3() { return true; } + static bool HasFaceQuality3Occ() { return true; } + static void Name(std::vector & name){name.push_back(std::string("Quality3"));T::Name(name);} +private: + Quality3Type _quality; +}; + +template class Quality3s: public Quality3 { +public: static void Name(std::vector & name){name.push_back(std::string("Quality3s"));T::Name(name);} +}; +template class Quality3f: public Quality3 { +public: static void Name(std::vector & name){name.push_back(std::string("Quality3f"));T::Name(name);} +}; +template class Quality3d: public Quality3 { +public: static void Name(std::vector & name){name.push_back(std::string("Quality3d"));T::Name(name);} +}; /*-------------------------- INCREMENTAL MARK ----------------------------------------*/ template class Mark: public T {