MeshLib C++ Docs
Loading...
Searching...
No Matches
MRImGuiMeasurementIndicators.h File Reference
#include "MRMesh/MRFlagOperators.h"
#include "MRViewer/exports.h"
#include "MRViewer/MRViewerFwd.h"
#include "MRViewer/MRImGuiVectorOperators.h"
#include <imgui.h>
#include <cassert>
#include <optional>
#include <span>
#include <variant>

Go to the source code of this file.

Classes

struct  MR::ImGuiMeasurementIndicators::Stipple
 Parameters for drawing dotted lines. More...
struct  MR::ImGuiMeasurementIndicators::Stipple::Segment
struct  MR::ImGuiMeasurementIndicators::Params
struct  MR::ImGuiMeasurementIndicators::TextColor
struct  MR::ImGuiMeasurementIndicators::TextFont
struct  MR::ImGuiMeasurementIndicators::Text
 Represents an arbitrary block of text, possibly with icons, colors, etc. More...
struct  MR::ImGuiMeasurementIndicators::Text::Elem
struct  MR::ImGuiMeasurementIndicators::Text::Line
struct  MR::ImGuiMeasurementIndicators::Text::DrawResult
struct  MR::ImGuiMeasurementIndicators::LineBodyParams
struct  MR::ImGuiMeasurementIndicators::TextParams
struct  MR::ImGuiMeasurementIndicators::TextParams::Line
struct  MR::ImGuiMeasurementIndicators::TextResult
struct  MR::ImGuiMeasurementIndicators::LineCap
struct  MR::ImGuiMeasurementIndicators::LineParams
struct  MR::ImGuiMeasurementIndicators::LineResult
struct  MR::ImGuiMeasurementIndicators::DistanceParams
struct  MR::ImGuiMeasurementIndicators::DistanceResult
struct  MR::ImGuiMeasurementIndicators::CurveParams
struct  MR::ImGuiMeasurementIndicators::PreparedCurve

Namespaces

namespace  MR
 only for bindings generation
namespace  MR::ImGuiMeasurementIndicators

Enumerations

enum class  MR::ImGuiMeasurementIndicators::Element { MR::ImGuiMeasurementIndicators::main = 1 << 0 , MR::ImGuiMeasurementIndicators::outline = 1 << 1 , MR::ImGuiMeasurementIndicators::both = main | outline }
enum class  MR::ImGuiMeasurementIndicators::TextIcon { MR::ImGuiMeasurementIndicators::diameter }
enum class  MR::ImGuiMeasurementIndicators::LineCapDecoration {
  MR::ImGuiMeasurementIndicators::none , MR::ImGuiMeasurementIndicators::noOutline , MR::ImGuiMeasurementIndicators::extend , MR::ImGuiMeasurementIndicators::arrow ,
  MR::ImGuiMeasurementIndicators::point
}
enum class  MR::ImGuiMeasurementIndicators::LineFlags { MR::ImGuiMeasurementIndicators::narrow = 1 << 0 , MR::ImGuiMeasurementIndicators::noBackwardArrowTipOffset = 1 << 1 , MR::ImGuiMeasurementIndicators::onlyOutline = 1 << 2 }

Functions

void MR::ImGuiMeasurementIndicators::point (Element elem, const Params &params, ImVec2 point)
 Draws a point.
std::optional< TextResultMR::ImGuiMeasurementIndicators::text (Element elem, const Params &params, ImVec2 pos, const Text &text, const TextParams &textParams={}, ImVec2 push={}, ImVec2 pivot={ 0.5f, 0.5f })
void MR::ImGuiMeasurementIndicators::arrowTriangle (Element elem, const Params &params, ImVec2 point, ImVec2 dir)
 Draws a triangle from an arrow.
std::optional< LineResultMR::ImGuiMeasurementIndicators::line (Element elem, const Params &params, ImVec2 a, ImVec2 b, const LineParams &lineParams={})
 Draws a line or an arrow.
std::optional< DistanceResultMR::ImGuiMeasurementIndicators::distance (Element elem, const Params &params, ImVec2 a, ImVec2 b, const Text &text, const DistanceParams &distanceParams={})
template<typename A, typename B, typename F, typename G, typename H = std::nullptr_t>
PreparedCurve MR::ImGuiMeasurementIndicators::prepareCurve (const CurveParams &curveParams, std::vector< ImVec2 > &pointBuffer, const A &stateA, const B &stateB, F &&stateToPoint, G &&bisectState, H &&onInsertPoint=nullptr)