14template <
typename BaseObjectType,
auto ...Properties>
15requires ( IsVisualizeMaskEnum<
decltype(Properties)>::value && ... )
19 using BaseObjectType::BaseObjectType;
23 return BaseObjectType::supportsVisualizeProperty( type ) || ( ( type.
tryGet<
decltype( Properties )>() == Properties ) || ... );
29 ret.reserve( ret.size() +
sizeof...(Properties) );
30 ( void( ret.push_back( this->getVisualizePropertyMask( Properties ) ) ), ... );
38 (void)( ( type.
tryGet<
decltype( Properties )>() == Properties ? ( ret = &
propertyMasks_[i],
true ) : ( i++, false ) ) || ... );
42 return BaseObjectType::getVisualizePropertyMask( type );
48 BaseObjectType::setAllVisualizeProperties_( properties, pos );
49 for ( std::size_t i = 0; i <
sizeof...(Properties); i++ )
Definition MRAddVisualPropertiesMixin.h:17
Definition MRVisualObject.h:54
std::optional< T > tryGet() const
Definition MRVisualObject.h:63
stores mask of viewport unique identifiers
Definition MRViewportId.h:42
static ViewportMask all()
mask meaning all or any viewports
Definition MRViewportId.h:49
bool supportsVisualizeProperty(AnyVisualizeMaskEnum type) const override
Definition MRAddVisualPropertiesMixin.h:21
void setAllVisualizeProperties_(const AllVisualizeProperties &properties, std::size_t &pos) override
Definition MRAddVisualPropertiesMixin.h:46
std::array< ViewportMask, sizeof...(Properties)> propertyMasks_
All enabled by default.
Definition MRAddVisualPropertiesMixin.h:54
AllVisualizeProperties getAllVisualizeProperties() const override
Definition MRAddVisualPropertiesMixin.h:26
const ViewportMask & getVisualizePropertyMask(AnyVisualizeMaskEnum type) const override
Definition MRAddVisualPropertiesMixin.h:34
std::vector< ViewportMask > AllVisualizeProperties
Definition MRVisualObject.h:72
only for bindings generation
Definition MRCameraOrientationPlugin.h:8