#ifndef CT_DENSEPOINTSCALARMANAGER_H #define CT_DENSEPOINTSCALARMANAGER_H #include "ct_denseattributemanager.h" #include "ct_attributes/setters/ct_undefinedpointcloudsizedenseattributesetter.h" #include "ct_cloudindex/registered/abstract/ct_abstractnotmodifiablecloudindexregisteredt.h" #include "ct_scalarminmaxmanager.h" template class CT_DensePointScalarManager : public CT_DenseAttributeManager, public CT_ScalarMinMaxManager { public: using ApplicableTo = CT_NMPCIR::element_type::element_type; using UPCSSetter = CT_UndefinedPointCloudSizeDenseAttributeSetter; using UPCSSetterPtr = std::unique_ptr; UPCSSetter createUndefinedPointCloudSizeAttributesSetter(CT_AbstractUndefinedSizePointCloud* uspc); UPCSSetterPtr createUndefinedPointCloudSizeAttributesSetterPtr(CT_AbstractUndefinedSizePointCloud* uspc); }; template typename CT_DensePointScalarManager::UPCSSetter CT_DensePointScalarManager::createUndefinedPointCloudSizeAttributesSetter(CT_AbstractUndefinedSizePointCloud* uspc) { this->createCollectionsIfNotCreated(); return CT_DensePointScalarManager::UPCSSetter(*uspc, this->mAttributes, this->mBits); } template typename CT_DensePointScalarManager::UPCSSetterPtr CT_DensePointScalarManager::createUndefinedPointCloudSizeAttributesSetterPtr(CT_AbstractUndefinedSizePointCloud* uspc) { this->createCollectionsIfNotCreated(); return std::make_unique::UPCSSetter>(*uspc, this->mAttributes, this->mBits); } #endif // CT_DENSEPOINTSCALARMANAGER_H