20 template <
bool IsPrimary,
typename BaseObjectType>
23 template <
bool IsPrimary>
29 const_cast<WrappedModelSubobjectPart &
>( *this ).setPointSize( IsPrimary ? target_->getPointSize() : target_->getSubfeaturePointSize() );
36 const_cast<WrappedModelSubobjectPart &
>( *this ).setGlobalAlpha( (std::uint8_t)std::clamp(
int( target_->getGlobalAlpha() * target_->getSubfeatureAlphaPoints() ), 0, 255 ) );
41 template <
bool IsPrimary>
47 const_cast<WrappedModelSubobjectPart &
>( *this ).setLineWidth( IsPrimary ? target_->getLineWidth() : target_->getSubfeatureLineWidth() );
54 const_cast<WrappedModelSubobjectPart &
>( *this ).setGlobalAlpha( (std::uint8_t)std::clamp(
int( target_->getGlobalAlpha() * target_->getSubfeatureAlphaLines() ), 0, 255 ) );
59 template <
bool IsPrimary>
66 const_cast<WrappedModelSubobjectPart &
>( *this ).setGlobalAlpha( (std::uint8_t)std::clamp(
int( target_->getGlobalAlpha() * target_->getSubfeatureAlphaMesh() ), 0, 255 ) );
71 template <
bool IsPrimary,
typename BaseObjectType>
82 if (
auto value = type.
tryGet<VisualizeMaskType>(); value && *value == VisualizeMaskType::ClippedByPlane )
96template <
bool IsPrimary,
typename BaseObjectType>
104 return target_->getFrontColorsForAllViewports( selected );
109 return target_->getBackColorsForAllViewports();
120template <
typename BaseObjectType>
128 if (
auto p = this->parent() )
131 const_cast<WrappedModelSubobject &
>( *this ).setVisibilityMask( f->getVisualizePropertyMask( FeatureVisualizePropertyType::Subfeatures ) );
134 return this->visibilityMask_;
147template <
bool IsPrimary,
typename ObjectType,
typename RenderObjectType>
157 if constexpr ( !IsPrimary )
159 if ( !this->
subobject.target_->getVisualizeProperty( FeatureVisualizePropertyType::Subfeatures, viewportId ) )
169 return Base::render( params );
176 return Base::renderPicker( params, geomId );
182template <
bool IsPrimary>
193template <
bool IsPrimary>
204template <
bool IsPrimary>
251 RenderDefaultUiObject,
253 RenderFeatureMeshComponent<true>,
255 RenderFeatureLinesComponent<false>, RenderFeaturePointsComponent<false>,
257 RenderPlaneNormalComponent,
258 RenderResetDirtyComponent
Definition MRVisualObject.h:54
std::optional< T > tryGet() const
Definition MRVisualObject.h:63
An interface class which allows feature objects to share setters and getters on their main properties...
Definition MRFeatureObject.h:93
virtual MRMESH_API const ViewportProperty< Color > & getDecorationsColorForAllViewports(bool selected) const
virtual float getLineWidth() const
Definition MRObjectLinesHolder.h:59
Definition MRObjectLines.h:11
Definition MRObjectMesh.h:11
virtual float getPointSize() const
returns size of points on screen in pixels
Definition MRObjectPointsHolder.h:96
Definition MRObjectPoints.h:11
Definition MRRenderDimensions.h:136
Definition MRRenderDimensions.h:172
Definition MRRenderDimensions.h:102
Definition MRRenderFeatureObjects.h:241
MRVIEWER_API void renderUi(const UiRenderParams ¶ms) override
MRVIEWER_API RenderCircleFeatureObject(const VisualObject &object)
Definition MRRenderFeatureObjects.h:287
MRVIEWER_API void renderUi(const UiRenderParams ¶ms) override
MRVIEWER_API RenderConeFeatureObject(const VisualObject &object)
Definition MRRenderFeatureObjects.h:277
MRVIEWER_API void renderUi(const UiRenderParams ¶ms) override
MRVIEWER_API RenderCylinderFeatureObject(const VisualObject &object)
Definition MRRenderFeatureObjects.h:149
void renderPicker(const ModelBaseRenderParams ¶ms, unsigned geomId) override
Definition MRRenderFeatureObjects.h:172
bool render(const ModelRenderParams ¶ms) override
Definition MRRenderFeatureObjects.h:165
bool shouldRender(ViewportId viewportId) const
Definition MRRenderFeatureObjects.h:154
Definition MRRenderFeatureObjects.h:195
auto & getLines()
Definition MRRenderFeatureObjects.h:199
Definition MRRenderFeatureObjects.h:206
auto & getMesh()
Definition MRRenderFeatureObjects.h:210
Definition MRRenderFeatureObjects.h:184
auto & getPoints()
Definition MRRenderFeatureObjects.h:188
Definition MRRenderFeatureObjects.h:233
MRVIEWER_API RenderLineFeatureObject(const VisualObject &object)
MRVIEWER_API ImGuiMeasurementIndicators::Text getObjectNameText(const VisualObject &object, ViewportId viewportId) const override
Definition MRRenderFeatureObjects.h:260
MRVIEWER_API ImGuiMeasurementIndicators::Text getObjectNameText(const VisualObject &object, ViewportId viewportId) const override
MRVIEWER_API RenderPlaneFeatureObject(const VisualObject &object)
Definition MRRenderFeatureObjects.h:216
MRVIEWER_API RenderPlaneNormalComponent(const VisualObject &object)
MRVIEWER_API bool render(const ModelRenderParams ¶ms) override
MRVIEWER_API void renderPicker(const ModelBaseRenderParams ¶ms, unsigned geomId) override
Definition MRRenderFeatureObjects.h:225
MRVIEWER_API RenderPointFeatureObject(const VisualObject &object)
MRVIEWER_API ImGuiMeasurementIndicators::Text getObjectNameText(const VisualObject &object, ViewportId viewportId) const override
Definition MRRenderFeatureObjects.h:268
MRVIEWER_API void renderUi(const UiRenderParams ¶ms) override
MRVIEWER_API RenderSphereFeatureObject(const VisualObject &object)
const ViewportProperty< Color > & getFrontColorsForAllViewports(bool selected=true) const override
Definition MRRenderFeatureObjects.h:137
ViewportMask visibilityMask() const override
Definition MRRenderFeatureObjects.h:126
Definition MRRenderFeatureObjects.h:98
const ViewportProperty< uint8_t > & getGlobalAlphaForAllViewports() const override
Definition MRRenderFeatureObjects.h:112
const ViewportProperty< Color > & getBackColorsForAllViewports() const override
Definition MRRenderFeatureObjects.h:107
const ViewportProperty< Color > & getFrontColorsForAllViewports(bool selected=true) const override
Definition MRRenderFeatureObjects.h:102
Definition MRRenderFeatureObjects.h:73
bool isSelected() const override
Definition MRRenderFeatureObjects.h:75
const ViewportMask & getVisualizePropertyMask(AnyVisualizeMaskEnum type) const override
Definition MRRenderFeatureObjects.h:80
const ViewportProperty< uint8_t > & getGlobalAlphaForAllViewports() const override
returns global transparency alpha of object in all viewports
Definition MRRenderFeatureObjects.h:51
float getLineWidth() const override
Definition MRRenderFeatureObjects.h:45
const ViewportProperty< uint8_t > & getGlobalAlphaForAllViewports() const override
returns global transparency alpha of object in all viewports
Definition MRRenderFeatureObjects.h:63
const ViewportProperty< uint8_t > & getGlobalAlphaForAllViewports() const override
returns global transparency alpha of object in all viewports
Definition MRRenderFeatureObjects.h:33
float getPointSize() const override
returns size of points on screen in pixels
Definition MRRenderFeatureObjects.h:27
Definition MRRenderFeatureObjects.h:21
Definition MRIRenderObject.h:167
Definition MRRenderWrapObject.h:28
const ObjectType * target_
Definition MRRenderWrapObject.h:32
Definition MRRenderWrapObject.h:39
Definition MRViewportId.h:16
stores mask of viewport unique identifiers
Definition MRViewportId.h:42
Definition MRViewportProperty.h:17
Visual Object.
Definition MRVisualObject.h:119
virtual MRMESH_API const ViewportProperty< uint8_t > & getGlobalAlphaForAllViewports() const
returns global transparency alpha of object in all viewports
Definition MRRenderFeatureObjects.h:15
ViewportId viewportId
Definition MRIRenderObject.h:36
Definition MRImGuiMeasurementIndicators.h:133
Definition MRIRenderObject.h:43
Mesh rendering parameters for primary rendering (as opposed to the picker).
Definition MRIRenderObject.h:51
ObjectType subobject
Definition MRRenderWrapObject.h:15
Definition MRIRenderObject.h:107