#ifndef CT_HANDLEOUTPOINTSCALAR_H #define CT_HANDLEOUTPOINTSCALAR_H #include "ct_model/outModel/handle/ct_handleoutitem.h" #include "ct_itemdrawable/ct_pointsattributesscalartemplated.h" #include "ct_attributes/managers/ct_densepointscalarmanager.h" #include "ct_attributes/managers/ct_sparsepointscalarmanager.h" template class CT_HandleOutPointScalar : public CT_HandleOutItem> { public: enum EApplicableTo { ApplicableToPoint = 1 }; CT_HandleOutPointScalar() = default; }; template class CT_HandleOutPointScalarWithDenseManager : public CT_HandleOutPointScalar, public CT_DensePointScalarManager { public: CT_HandleOutPointScalarWithDenseManager() = default; CT_PointsAttributesScalarTemplated* createAttributeInstance(CT_PCIR pcir) { return new CT_PointsAttributesScalarTemplated(pcir, *this); } CT_PointsAttributesScalarTemplated* createAttributeInstance(CT_PCIR pcir, const SCALAR& min, const SCALAR& max) { return new CT_PointsAttributesScalarTemplated(pcir, *this, min, max); } }; template class CT_HandleOutPointScalarWithSparseManager : public CT_HandleOutPointScalar, public CT_SparsePointScalarManager { public: CT_HandleOutPointScalarWithSparseManager() = default; CT_PointsAttributesScalarTemplated* createAttributeInstance(CT_PCIR pcir) { return new CT_PointsAttributesScalarTemplated(pcir, *this); } CT_PointsAttributesScalarTemplated* createAttributeInstance(CT_PCIR pcir, const SCALAR& min, const SCALAR& max) { return new CT_PointsAttributesScalarTemplated(pcir, *this, min, max); } }; #endif // CT_HANDLEOUTPOINTSCALAR_H