#ifndef DM_FAKEATTRIBUTEMANAGERT_H #define DM_FAKEATTRIBUTEMANAGERT_H #include "ct_attributes/managers/abstract/ct_abstractxattributemanager.h" template class DM_FakeAttributeManagerT : public CT_AbstractXAttributeManager { using SuperClass = CT_AbstractXAttributeManager; public: using ApplicableTo = ApplicableToT; DM_FakeAttributeManagerT() : mAttributesCloud(nullptr) { } void setAttributesCloud(CloudType* cloud) { mAttributesCloud = cloud; } bool hasBeenSet(const size_t& /*globalIndex*/) const final { return mAttributesCloud != nullptr; } bool visitValues(typename CT_AbstractXAttributeManager::Visitor v) const final { if(mAttributesCloud == nullptr) return true; const size_t s = mAttributesCloud->size(); for(size_t i=0; i::IVisitor v) const final { if(mAttributesCloud == nullptr) return true; const size_t s = mAttributesCloud->size(); for(size_t i=0; isize() : 0; } bool isEmpty() const final { return mAttributesCloud == nullptr; } const AttributeType& tAt(const size_t& globalIndex, bool* hasBeenSet = nullptr) const final { if(mAttributesCloud == nullptr) { if(hasBeenSet != nullptr) *hasBeenSet = false; return mDefaultValue; } if(hasBeenSet != nullptr) *hasBeenSet = true; return (*mAttributesCloud)[globalIndex]; } const AttributeType& tAtLocalIndex(const size_t& localIndex) const final { return tAt(localIndex); } bool copyAndModifyAttributesOfSForD(CT_CIR , CT_CIR , typename SuperClass::AttributeModificator) final { return false; } private: CloudType* mAttributesCloud; AttributeType mDefaultValue; }; #endif // DM_FAKEATTRIBUTEMANAGERT_H