11template <
typename BaseObjectType,
auto ...Properties>
12requires ( IsVisualizeMaskEnum<
decltype(Properties)>::value && ... )
16 using BaseObjectType::BaseObjectType;
20 return BaseObjectType::supportsVisualizeProperty( type ) || ( ( type.
tryGet<
decltype( Properties )>() == Properties ) || ... );
26 ret.reserve( ret.size() +
sizeof...(Properties) );
27 ( void( ret.push_back( this->getVisualizePropertyMask( Properties ) ) ), ... );
35 (void)( ( type.
tryGet<
decltype( Properties )>() == Properties ? ( ret = &
propertyMasks_[i],
true ) : ( i++, false ) ) || ... );
39 return BaseObjectType::getVisualizePropertyMask( type );
45 BaseObjectType::setAllVisualizeProperties_( properties, pos );
46 for ( std::size_t i = 0; i <
sizeof...(Properties); i++ )
Definition MRAddVisualPropertiesMixin.h:14
bool supportsVisualizeProperty(AnyVisualizeMaskEnum type) const override
Definition MRAddVisualPropertiesMixin.h:18
void setAllVisualizeProperties_(const AllVisualizeProperties &properties, std::size_t &pos) override
Definition MRAddVisualPropertiesMixin.h:43
std::array< ViewportMask, sizeof...(Properties)> propertyMasks_
Definition MRAddVisualPropertiesMixin.h:51
AllVisualizeProperties getAllVisualizeProperties() const override
Definition MRAddVisualPropertiesMixin.h:23
const ViewportMask & getVisualizePropertyMask(AnyVisualizeMaskEnum type) const override
Definition MRAddVisualPropertiesMixin.h:31
Definition MRVisualObject.h:67
std::optional< T > tryGet() const
Definition MRVisualObject.h:76
stores mask of viewport unique identifiers
Definition MRViewportId.h:38
static ViewportMask all()
mask meaning all or any viewports
Definition MRViewportId.h:45
std::vector< ViewportMask > AllVisualizeProperties
Definition MRVisualObject.h:85
Definition MRCameraOrientationPlugin.h:8