MeshLib C++ Docs
Loading...
Searching...
No Matches
MRUINonOverlappingLabels.h
Go to the documentation of this file.
1#pragma once
2
4#include "MRMesh/MRMeshFwd.h"
6#include "MRViewer/exports.h"
8
9namespace MR::UI
10{
11
12// Use this in combination with `DrawSceneUiListener`.
13// Remember that you don't have to allocate this on the heap, and can store this directly in your plugin per object (pass around a non-owning `shared_ptr`).
14class MRVIEWER_CLASS NonOverlappingLabelTask : public BasicUiRenderTask
15{
16public:
17 struct Params
18 {
19 // Mandatory:
21 Vector3f worldPos;
22 std::string id; // Must not repeat per frame per viewport, isn't displayed anywhere.
23 std::string text;
24
25 // Optional:
26 std::shared_ptr<const ImGuiMeasurementIndicators::Params> indicatorParams;
27 };
28
29private:
30 Params params_;
31 ImVec2 finalScreenPos_;
32
33public:
35 MRVIEWER_API NonOverlappingLabelTask( Params params );
36
37 MRVIEWER_API void earlyBackwardPass( const BackwardPassParams& params ) override;
38 MRVIEWER_API void renderPass() override;
39};
40
41// Draws a label on top of the viewport area.
42// `id` should be a unique ID persistent across frames.
43MRVIEWER_API void nonOverlappingLabel();
44
45}
Definition MRUINonOverlappingLabels.h:15
MRVIEWER_API void earlyBackwardPass(const BackwardPassParams &params) override
MRVIEWER_API void renderPass() override
This is the main rendering pass.
MRVIEWER_API NonOverlappingLabelTask(Params params)
MRVIEWER_API NonOverlappingLabelTask()
Definition MRViewportId.h:16
Definition MRUINonOverlappingLabels.h:10
MRVIEWER_API void nonOverlappingLabel()
Definition MRIRenderObject.h:81
IRenderObject::renderUi() can emit zero or more or more of those tasks. They are sorted by depth ever...
Definition MRIRenderObject.h:61
Definition MRUINonOverlappingLabels.h:18
std::shared_ptr< const ImGuiMeasurementIndicators::Params > indicatorParams
Definition MRUINonOverlappingLabels.h:26
std::string text
Definition MRUINonOverlappingLabels.h:23
Vector3f worldPos
Definition MRUINonOverlappingLabels.h:21
ViewportId viewportId
Definition MRUINonOverlappingLabels.h:20
std::string id
Definition MRUINonOverlappingLabels.h:22