#ifndef CT_HANDLEOUTPOINTSCALARMASK_H #define CT_HANDLEOUTPOINTSCALARMASK_H #include "ct_model/outModel/handle/ct_handleoutitem.h" #include "ct_itemdrawable/ct_pointsattributesscalarmaskt.h" #include "ct_attributes/managers/ct_densepointscalarmanager.h" #include "ct_attributes/managers/ct_sparsepointscalarmanager.h" template class CT_HandleOutPointScalarMask : public CT_HandleOutItem> { public: enum EApplicableTo { ApplicableToPoint = 1 }; CT_HandleOutPointScalarMask() = default; }; template class CT_HandleOutPointScalarMaskWithDenseManager : public CT_HandleOutPointScalarMask, public CT_DensePointScalarManager { public: CT_HandleOutPointScalarMaskWithDenseManager() = default; CT_PointsAttributesScalarMaskT* createAttributeInstance(typename CT_PointsAttributesScalarMaskT::StructMASK mask, quint16 shiftRight, CT_PCIR pcir) { return new CT_PointsAttributesScalarMaskT(mask, shiftRight, pcir, *this); } CT_PointsAttributesScalarMaskT* createAttributeInstance(typename CT_PointsAttributesScalarMaskT::StructMASK mask, quint16 shiftRight, const typename CT_PointsAttributesScalarMaskT::StructMASK &min, const typename CT_PointsAttributesScalarMaskT::StructMASK &max, CT_PCIR pcir) { return new CT_PointsAttributesScalarMaskT(mask, shiftRight, min, max, pcir, *this); } }; template class CT_HandleOutPointScalarMaskWithSparseManager : public CT_HandleOutPointScalarMask, public CT_SparsePointScalarManager { public: CT_HandleOutPointScalarMaskWithSparseManager() = default; }; #endif // CT_HANDLEOUTPOINTSCALARMASK_H