From 13d79bc4287fc24b0d172217a3de47cf610fa9b8 Mon Sep 17 00:00:00 2001 From: "T.Alderighi" Date: Wed, 2 May 2018 20:23:48 +0200 Subject: [PATCH] added color and quality --- vcg/simplex/tetrahedron/component.h | 69 +++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/vcg/simplex/tetrahedron/component.h b/vcg/simplex/tetrahedron/component.h index ca88bb07..e6778b7c 100644 --- a/vcg/simplex/tetrahedron/component.h +++ b/vcg/simplex/tetrahedron/component.h @@ -275,10 +275,79 @@ public: private: int _flags; }; + /*-------------------------- QUALITY ----------------------------------------*/ +template class Quality: public T { +public: + typedef A QualityType; + Quality():_quality(0) {} + QualityType &Q() { return _quality; } + QualityType cQ() const { return _quality; } + + template + void ImportData(const RightValueType & rightT){ + if(rightT.IsQualityEnabled()) + Q() = rightT.cQ(); + T::ImportData(rightT); + } + + static bool HasQuality() { return true; } + static void Name(std::vector & name){name.push_back(std::string("Quality"));T::Name(name);} +private: + QualityType _quality; +}; + +template class Qualityf: public Quality { +public: static void Name(std::vector & name){name.push_back(std::string("Qualityf"));T::Name(name);} +}; +template class Qualityd: public Quality { +public: static void Name(std::vector & name){name.push_back(std::string("Qualityd"));T::Name(name);} +}; + +/*-------------------------- Quality3 ----------------------------------*/ +template class Quality3: public T { +public: + typedef vcg::Point3 Quality3Type; + Quality3Type &Q3() { return _quality; } + Quality3Type cQ3() const { return _quality; } + template + void ImportData(const RightValueType & rightT){ + if(rightT.IsQuality3Enabled()) Q3() = rightT.cQ3(); + T::ImportData(rightT); + } + + static bool HasQuality3() { return true; } + static void Name(std::vector & name){name.push_back(std::string("Quality3"));T::Name(name);} +private: + Quality3Type _quality; +}; + +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);} +}; /*-------------------------- COLOR ----------------------------------------*/ +template class Color: public T { +public: + typedef A ColorType; + Color():_color(vcg::Color4b::White) {} + ColorType &C() { return _color; } + ColorType cC() const { return _color; } + template + void ImportData(const RightValueType & rightT){ + if(rightT.IsColorEnabled()) C() = rightT.cC(); + T::ImportData(rightT); + } + static bool HasColor() { return true; } + static void Name(std::vector & name){name.push_back(std::string("Color"));T::Name(name);} + +private: + ColorType _color; +}; /*-------------------------- INCREMENTAL MARK ----------------------------------------*/ // template class EmptyMark: public T {