MeshLib C++ Docs
Loading...
Searching...
No Matches
MRRenderNameObject.h
Go to the documentation of this file.
1#pragma once
2
4#include "MRMesh/MRVector2.h"
7#include "MRViewer/exports.h"
8#include "MRViewer/MRImGui.h"
9
10#include <optional>
11
12namespace MR
13{
16
17
18class MRVIEWER_CLASS RenderNameObject : public virtual IRenderObject
19{
21 {
22 const VisualObject* object = nullptr;
23 const UiRenderParams* params = nullptr;
24
25 ImVec2 point;
26 ImVec2 point2;
27 ImVec2 textCenter;
28
30 ImVec2 textPos;
31 ImVec2 paddingA;
32 ImVec2 paddingB;
33
38 float textToExtraTextSpacing = 0;
39
40 MRVIEWER_API void renderPass() override;
41 MRVIEWER_API void onClick() override;
42 };
43 Task task_;
44public:
45 RenderNameObject( const VisualObject& object ) { task_.object = &object; }
46
47 MRVIEWER_API void renderUi( const UiRenderParams& params ) override;
48
50 MRVIEWER_API virtual ImGuiMeasurementIndicators::Text getObjectNameText( const VisualObject& object, ViewportId viewportId ) const;
51
55 MRVIEWER_API virtual ImGuiMeasurementIndicators::Text getObjectNameExtraText( const VisualObject& object, ViewportId viewportId ) const;
56
60
62 Vector3f nameUiPoint;
63
66 bool nameUiPointIsRelativeToBoundingBoxCenter = true;
67
70
74
78
81 bool nameUiRotateLocalOffset90Degrees = false;
82};
83
84}
Definition MRRenderClickableRect.h:17
Definition MRIRenderObject.h:134
Definition MRRenderNameObject.h:19
Definition MRViewportId.h:16
Visual Object.
Definition MRVisualObject.h:116
Vector2f nameUiScreenOffset
Definition MRRenderNameObject.h:73
MRVIEWER_API void renderPass() override
ImVec2 point2
Definition MRRenderNameObject.h:26
virtual MRVIEWER_API ImGuiMeasurementIndicators::Text getObjectNameExtraText(const VisualObject &object, ViewportId viewportId) const
Vector3f nameUiLocalOffset
Which way the name is moved relative to the point, in model space. The length is respected.
Definition MRRenderNameObject.h:69
MRVIEWER_API void onClick() override
RenderNameObject(const VisualObject &object)
Definition MRRenderNameObject.h:45
ImVec2 paddingA
Definition MRRenderNameObject.h:31
ImGuiMeasurementIndicators::Text text
Definition MRRenderNameObject.h:29
ImVec2 point
Definition MRRenderNameObject.h:25
MRVIEWER_API void renderUi(const UiRenderParams &params) override
std::optional< Vector3f > nameUiRotateToScreenPlaneAroundSphereCenter
Definition MRRenderNameObject.h:77
ImVec2 textPos
Definition MRRenderNameObject.h:30
virtual MRVIEWER_API ImGuiMeasurementIndicators::Text getObjectNameText(const VisualObject &object, ViewportId viewportId) const
The text displayed as the clickable object name.
const VisualObject * object
Definition MRRenderNameObject.h:22
ImVec2 paddingB
Definition MRRenderNameObject.h:32
Vector3f nameUiPoint
The line attachment point.
Definition MRRenderNameObject.h:62
ImGuiMeasurementIndicators::Text textExtra
Definition MRRenderNameObject.h:37
ImVec2 textCenter
Definition MRRenderNameObject.h:27
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
Represents an arbitrary block of text, possibly with icons, colors, etc.
Definition MRImGuiMeasurementIndicators.h:133
Definition MRIRenderObject.h:110