9class MRMESH_CLASS RadiusMeasurementObject :
public MeasurementObject
14 RadiusMeasurementObject() {}
16 RadiusMeasurementObject( RadiusMeasurementObject&& ) noexcept = default;
17 RadiusMeasurementObject& operator=( RadiusMeasurementObject&& ) noexcept = default;
19 constexpr static const
char* StaticTypeName() noexcept {
return "RadiusMeasurementObject"; }
20 const char* typeName()
const override {
return StaticTypeName(); }
22 constexpr static const char* StaticClassName() noexcept {
return "Radius"; }
23 virtual std::string className()
const override {
return StaticClassName(); }
25 constexpr static const char* StaticClassNameInPlural() noexcept {
return "Radii"; }
26 virtual std::string classNameInPlural()
const override {
return StaticClassNameInPlural(); }
29 RadiusMeasurementObject( ProtectedStruct,
const RadiusMeasurementObject& obj ) : RadiusMeasurementObject( obj ) {}
31 MRMESH_API std::shared_ptr<Object> clone()
const override;
32 MRMESH_API std::shared_ptr<Object> shallowClone()
const override;
35 [[nodiscard]]
MRMESH_API Vector3f getWorldCenter()
const;
37 [[nodiscard]]
MRMESH_API Vector3f getLocalCenter()
const;
40 [[nodiscard]]
MRMESH_API Vector3f getWorldRadiusAsVector()
const;
41 [[nodiscard]]
MRMESH_API Vector3f getLocalRadiusAsVector()
const;
44 [[nodiscard]]
MRMESH_API Vector3f getWorldNormal()
const;
45 [[nodiscard]]
MRMESH_API Vector3f getLocalNormal()
const;
56 [[nodiscard]]
bool getDrawAsDiameter()
const {
return drawAsDiameter_; }
57 MRMESH_API virtual void setDrawAsDiameter(
bool value );
60 [[nodiscard]]
bool getIsSpherical()
const {
return isSpherical_; }
61 virtual void setIsSpherical(
bool value ) { isSpherical_ = value; }
65 [[nodiscard]]
float getVisualLengthMultiplier()
const {
return visualLengthMultiplier_; }
66 virtual void setVisualLengthMultiplier(
float value ) { visualLengthMultiplier_ = value; }
69 [[nodiscard]]
MRMESH_API float computeRadiusOrDiameter()
const;
71 [[nodiscard]]
MRMESH_API std::vector<std::string> getInfoLines()
const override;
74 RadiusMeasurementObject(
const RadiusMeasurementObject& other ) =
default;
76 MRMESH_API void swapBase_( Object& other )
override;
78 MRMESH_API void serializeFields_( Json::Value& root )
const override;
79 MRMESH_API void deserializeFields_(
const Json::Value& root )
override;
81 MRMESH_API void setupRenderObject_()
const override;
89 bool drawAsDiameter_ =
false;
91 bool isSpherical_ =
false;
95 float visualLengthMultiplier_ = 2 / 3.f;
98 mutable std::optional<float> cachedValue_;
#define MRMESH_API
Definition MRMeshFwd.h:80
#define MRMESH_CLASS
Definition MRMeshFwd.h:87
Definition MRCameraOrientationPlugin.h:8
readonly unsafe MR.Vector3f furthestBasisVector()