MeshLib C++ Docs
Loading...
Searching...
No Matches
MRImGuiMeasurementIndicators.h File Reference
#include "MRMesh/MRFlagOperators.h"
#include "MRViewer/exports.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
 
struct  MR::ImGuiMeasurementIndicators::Stipple::Segment
 
struct  MR::ImGuiMeasurementIndicators::Params
 
struct  MR::ImGuiMeasurementIndicators::TextColor
 
struct  MR::ImGuiMeasurementIndicators::TextFont
 
struct  MR::ImGuiMeasurementIndicators::Text
 
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
 
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

MRVIEWER_API void MR::ImGuiMeasurementIndicators::point (Element elem, const Params &params, ImVec2 point)
 
MRVIEWER_API 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 })
 
MRVIEWER_API void MR::ImGuiMeasurementIndicators::arrowTriangle (Element elem, const Params &params, ImVec2 point, ImVec2 dir)
 
MRVIEWER_API std::optional< LineResultMR::ImGuiMeasurementIndicators::line (Element elem, const Params &params, ImVec2 a, ImVec2 b, const LineParams &lineParams={})
 
MRVIEWER_API 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)