#ifndef CT_POINTCLOUDPARSEATTRIBUTESMANAGER_H #define CT_POINTCLOUDPARSEATTRIBUTESMANAGER_H #include "ct_attributes/managers/ct_sparseattributemanager.h" #include "ct_attributes/setters/ct_undefinedpointcloudsizesparseattributesetter.h" #include "ct_scalarminmaxmanager.h" template class CT_SparsePointScalarManager : public CT_SparseAttributeManager, public CT_ScalarMinMaxManager { public: using ApplicableTo = CT_NMPCIR::element_type::element_type; using UPCSSetter = CT_UndefinedPointCloudSizeSparseAttributeSetter; using UPCSSetterPtr = std::unique_ptr; UPCSSetter createUndefinedPointCloudSizeAttributesSetter(CT_AbstractUndefinedSizePointCloud* uspc); UPCSSetterPtr createUndefinedPointCloudSizeAttributesSetterPtr(CT_AbstractUndefinedSizePointCloud* uspc); }; template typename CT_SparsePointScalarManager::UPCSSetter CT_SparsePointScalarManager::createUndefinedPointCloudSizeAttributesSetter(CT_AbstractUndefinedSizePointCloud* uspc) { this->createCollectionsIfNotCreated(); return CT_SparsePointScalarManager::UPCSSetter(*uspc, this->mAttributes); } template typename CT_SparsePointScalarManager::UPCSSetterPtr CT_SparsePointScalarManager::createUndefinedPointCloudSizeAttributesSetterPtr(CT_AbstractUndefinedSizePointCloud* uspc) { this->createCollectionsIfNotCreated(); return std::make_unique::UPCSSetter>(*uspc, this->mAttributes); } #endif // CT_POINTCLOUDPARSEATTRIBUTESMANAGER_H