#ifndef CT_HANDLEOUTEDGESCALAR_H #define CT_HANDLEOUTEDGESCALAR_H #include "ct_model/outModel/handle/ct_handleoutitem.h" #include "ct_itemdrawable/ct_edgeattributesscalart.h" #include "ct_attributes/managers/ct_denseedgescalarmanager.h" #include "ct_attributes/managers/ct_sparseedgescalarmanager.h" template class CT_HandleOutEdgeScalar : public CT_HandleOutItem> { public: enum EApplicableTo { ApplicableToEdge = 1 }; CT_HandleOutEdgeScalar() = default; }; template class CT_HandleOutEdgeScalarWithDenseManager : public CT_HandleOutEdgeScalar, public CT_DenseEdgeScalarManager { public: CT_HandleOutEdgeScalarWithDenseManager() = default; CT_EdgeAttributesScalarT* createAttributeInstance(CT_ECIR ecir) { return new CT_EdgeAttributesScalarT(ecir, *this); } CT_EdgeAttributesScalarT* createAttributeInstance(CT_ECIR ecir, const SCALAR& min, const SCALAR& max) { return new CT_EdgeAttributesScalarT(ecir, *this, min, max); } }; template class CT_HandleOutEdgeScalarWithSparseManager : public CT_HandleOutEdgeScalar, public CT_SparseEdgeScalarManager { public: CT_HandleOutEdgeScalarWithSparseManager() = default; CT_EdgeAttributesScalarT* createAttributeInstance(CT_ECIR ecir) { return new CT_EdgeAttributesScalarT(ecir, *this); } CT_EdgeAttributesScalarT* createAttributeInstance(CT_ECIR ecir, const SCALAR& min, const SCALAR& max) { return new CT_EdgeAttributesScalarT(ecir, *this, min, max); } }; #endif // CT_HANDLEOUTEDGESCALAR_H