21 template <
bool IsPrimary,
typename BaseObjectType>
24 template <
bool IsPrimary>
30 const_cast<WrappedModelSubobjectPart &
>( *this ).setPointSize( IsPrimary ? target_->getPointSize() : target_->getSubfeaturePointSize() );
37 const_cast<WrappedModelSubobjectPart &
>( *this ).setGlobalAlpha( (std::uint8_t)std::clamp(
int( target_->getGlobalAlpha() * target_->getSubfeatureAlphaPoints() ), 0, 255 ) );
42 template <
bool IsPrimary>
48 const_cast<WrappedModelSubobjectPart &
>( *this ).setLineWidth( IsPrimary ? target_->getLineWidth() : target_->getSubfeatureLineWidth() );
55 const_cast<WrappedModelSubobjectPart &
>( *this ).setGlobalAlpha( (std::uint8_t)std::clamp(
int( target_->getGlobalAlpha() * target_->getSubfeatureAlphaLines() ), 0, 255 ) );
60 template <
bool IsPrimary>
67 const_cast<WrappedModelSubobjectPart &
>( *this ).setGlobalAlpha( (std::uint8_t)std::clamp(
int( target_->getGlobalAlpha() * target_->getSubfeatureAlphaMesh() ), 0, 255 ) );
72 template <
bool IsPrimary,
typename BaseObjectType>
83 if (
auto value = type.
tryGet<VisualizeMaskType>(); value && *value == VisualizeMaskType::ClippedByPlane )
97template <
bool IsPrimary,
typename BaseObjectType>
105 return target_->getFrontColorsForAllViewports( selected );
110 return target_->getBackColorsForAllViewports();
121template <
typename BaseObjectType>
129 if (
auto p = this->parent() )
132 const_cast<WrappedModelSubobject &
>( *this ).setVisibilityMask( f->getVisualizePropertyMask( FeatureVisualizePropertyType::Subfeatures ) );
135 return this->visibilityMask_;
148template <
bool IsPrimary,
typename ObjectType,
typename RenderObjectType>
158 if constexpr ( !IsPrimary )
160 if ( !this->
subobject.target_->getVisualizeProperty( FeatureVisualizePropertyType::Subfeatures, viewportId ) )
170 return Base::render( params );
177 return Base::renderPicker( params, geomId );
183template <
bool IsPrimary>
194template <
bool IsPrimary>
205template <
bool IsPrimary>
252 RenderDefaultUiObject,
254 RenderFeatureMeshComponent<true>,
256 RenderFeatureLinesComponent<false>, RenderFeaturePointsComponent<false>,
258 RenderPlaneNormalComponent,
259 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:93
Definition MRObjectPoints.h:11
Definition MRRenderDimensions.h:136
Definition MRRenderDimensions.h:172
Definition MRRenderDimensions.h:102
Definition MRRenderFeatureObjects.h:242
MRVIEWER_API void renderUi(const UiRenderParams ¶ms) override
MRVIEWER_API RenderCircleFeatureObject(const VisualObject &object)
Definition MRRenderFeatureObjects.h:288
MRVIEWER_API void renderUi(const UiRenderParams ¶ms) override
MRVIEWER_API RenderConeFeatureObject(const VisualObject &object)
Definition MRRenderFeatureObjects.h:278
MRVIEWER_API void renderUi(const UiRenderParams ¶ms) override
MRVIEWER_API RenderCylinderFeatureObject(const VisualObject &object)
Definition MRRenderFeatureObjects.h:150
void renderPicker(const ModelBaseRenderParams ¶ms, unsigned geomId) override
Definition MRRenderFeatureObjects.h:173
bool render(const ModelRenderParams ¶ms) override
Definition MRRenderFeatureObjects.h:166
bool shouldRender(ViewportId viewportId) const
Definition MRRenderFeatureObjects.h:155
Definition MRRenderFeatureObjects.h:196
auto & getLines()
Definition MRRenderFeatureObjects.h:200
Definition MRRenderFeatureObjects.h:207
auto & getMesh()
Definition MRRenderFeatureObjects.h:211
Definition MRRenderFeatureObjects.h:185
auto & getPoints()
Definition MRRenderFeatureObjects.h:189
Definition MRRenderFeatureObjects.h:234
MRVIEWER_API RenderLineFeatureObject(const VisualObject &object)
MRVIEWER_API ImGuiMeasurementIndicators::Text getObjectNameText(const VisualObject &object, ViewportId viewportId) const override
Definition MRRenderFeatureObjects.h:261
MRVIEWER_API ImGuiMeasurementIndicators::Text getObjectNameText(const VisualObject &object, ViewportId viewportId) const override
MRVIEWER_API RenderPlaneFeatureObject(const VisualObject &object)
Definition MRRenderFeatureObjects.h:217
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:226
MRVIEWER_API RenderPointFeatureObject(const VisualObject &object)
MRVIEWER_API ImGuiMeasurementIndicators::Text getObjectNameText(const VisualObject &object, ViewportId viewportId) const override
Definition MRRenderFeatureObjects.h:269
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:138
ViewportMask visibilityMask() const override
Definition MRRenderFeatureObjects.h:127
Definition MRRenderFeatureObjects.h:99
const ViewportProperty< uint8_t > & getGlobalAlphaForAllViewports() const override
Definition MRRenderFeatureObjects.h:113
const ViewportProperty< Color > & getBackColorsForAllViewports() const override
Definition MRRenderFeatureObjects.h:108
const ViewportProperty< Color > & getFrontColorsForAllViewports(bool selected=true) const override
Definition MRRenderFeatureObjects.h:103
Definition MRRenderFeatureObjects.h:74
bool isSelected() const override
Definition MRRenderFeatureObjects.h:76
const ViewportMask & getVisualizePropertyMask(AnyVisualizeMaskEnum type) const override
Definition MRRenderFeatureObjects.h:81
const ViewportProperty< uint8_t > & getGlobalAlphaForAllViewports() const override
returns global transparency alpha of object in all viewports
Definition MRRenderFeatureObjects.h:52
float getLineWidth() const override
Definition MRRenderFeatureObjects.h:46
const ViewportProperty< uint8_t > & getGlobalAlphaForAllViewports() const override
returns global transparency alpha of object in all viewports
Definition MRRenderFeatureObjects.h:64
const ViewportProperty< uint8_t > & getGlobalAlphaForAllViewports() const override
returns global transparency alpha of object in all viewports
Definition MRRenderFeatureObjects.h:34
float getPointSize() const override
returns size of points on screen in pixels
Definition MRRenderFeatureObjects.h:28
Definition MRRenderFeatureObjects.h:22
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:16
ViewportId viewportId
Definition MRIRenderObject.h:36
Definition MRImGuiMeasurementIndicators.h:131
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