2#include <NDEVR/Model.h>
3#if NDEVR_MEASURE_MODELS
19 , e_measure_point_size
28 static constexpr const char* MeasureGroupTypeName() {
return "measurement_group"; }
37 PointMeasureModel(
const Model& model);
38 Model pointMeasurementLayer();
39 void setupDecoration();
40 static constexpr const char* TypeName() {
return "point_measurement"; }
41 static constexpr const char* SubTypeName() {
return "sub_point_measurement"; }
42 static constexpr const char* DecorationTypeName() {
return "point_measurement_decoration"; }
43 void setPoint(
const Vertex<3, fltp08>& location);
44 void setPoint(
const Vertex<3, fltp08>& location,
const Vertex<3, fltp08>& leader);
45 void setPointAndDirection(
const Vertex<3, fltp08>& location,
const Ray<3, fltp08>& direction);
46 void setLabel(
const TranslatedString& label);
47 void setLabel(
const String& label);
48 void setFont(
const Font& font);
49 void setPointTypes(BitFlag pt_types);
50 void setMarkerScale(fltp08 scale);
51 void updateGeometry();
52 Vertex<3, fltp08> measurementPoint()
const;
54 void setupGeometry(MeasurePointType pt_type);
55 void setup90Crosshairs(Geometry geo);
56 void setup45Crosshairs(Geometry geo);
57 void setupSquare(Geometry geo);
58 void setupCircle(Geometry geo);
59 void setupArrow(Geometry geo);
68 DistanceMeasureModel();
69 DistanceMeasureModel(
const Model& model);
70 void setPointTypes(BitFlag pt_types);
71 void setMarkerScale(fltp08 thickness);
72 static constexpr const char* TypeName() {
return "distance_measurement"; }
73 static constexpr const char* DecorationTypeName() {
return "distance_measurement_decoration"; }
74 void setEndpoints(
const Vertex<3, fltp08>& p1,
const Vertex<3, fltp08>& p2,
const Vertex<3, fltp08>& leader = Constant<Vertex<3, fltp08>>::Invalid);
75 void setLabel(
const TranslatedString& label);
76 void setFont(
const Font& font);
77 void updateGeometry();
78 void setupDecoration();
79 Model distanceMeasurementLayer();
80 Text labelModel()
const;
81 LineSegment<3, fltp08> measurementLine()
const;
83 Model decoration()
const;
84 PointMeasureModel endPoint(uint04 endpoint_number)
const;
94 AngleMeasureModel(
const Model& model);
96 static constexpr const char* TypeName() {
return "angle_measurement"; }
97 static constexpr const char* DecorationTypeName() {
return "angle_measurement_decoration"; }
98 void setPoints(Vertex<3, fltp08> start, Vertex<3, fltp08> middle, Vertex<3, fltp08> end, Vertex<3, fltp08> perspective);
99 void setLabel(
const TranslatedString& label);
100 void setFixedClockwise(
bool clockwise);
101 void clearFixedClockwise();
102 Angle<fltp08> measurementAngle()
const;
103 bool isClockwise()
const;
107 void updateGeometry();