#ifndef _OTB_TRISKELE_COMP_ATTRIBUTE_HPP #define _OTB_TRISKELE_COMP_ATTRIBUTE_HPP #include #include "triskeleBase.hpp" #include "Tree.hpp" #include "AttributeProfiles.hpp" namespace otb { namespace triskele { template class CompAttribute { public: inline CompAttribute (const Tree &tree); inline ~CompAttribute (); inline void updateTranscient (); inline const AttrT *getValues () const; inline AttrT *getValues (); inline void printValues (const string &msg) const; protected: const Tree &tree; DimNodeId leafCount; AttrT *values; inline void free (); inline void book (const DimImg &leafCount); }; } // triskele } // otb #include "Attributes/WeightAttributes.hpp" namespace otb { namespace triskele { template struct ThresholdsChanel { AttrT threshold; DimChanel chanel; ThresholdsChanel (const AttrT &threshold, const DimChanel &chanel) : threshold (threshold), chanel (chanel) {} }; template class CompAttributeC : public CompAttribute { public: inline CompAttributeC (const Tree &tree); inline ~CompAttributeC (); template inline void cut (vector > allBands, const AttributeProfiles &attributeProfiles, const AttrT &pixelAttrValue, const vector > &selection); template inline void cutOnPos (vector > allBands, const AttributeProfiles &attributeProfiles, const DimImg &pixelId, const AttrT &pixelAttrValue, const vector > &selection); protected: template inline void computeSameCompLevel (const CumpFunctPSE &cumpFunctPSE /* cumpFunctPSE (DimImg parentId)*/); }; #include "CompAttribute.tpp" } // triskele } // otb #endif // _OTB_TRISKELE_COMP_ATTRIBUTE_HPP