22 constexpr static const
char*
StaticTypeName() noexcept {
return "RadiusMeasurementObject"; }
92 bool drawAsDiameter_ =
false;
94 bool isSpherical_ =
false;
98 float visualLengthMultiplier_ = 2 / 3.f;
101 mutable std::optional<float> cachedValue_;
#define MRMESH_API
Definition MRMeshFwd.h:80
#define MRMESH_CLASS
Definition MRMeshFwd.h:87
named object in the data model
Definition MRObject.h:62
std::shared_ptr< Object > clone() const override
virtual void setDrawAsDiameter(bool value)
Vector3f getLocalCenter() const
Get the center in local coordinates.
virtual void setVisualLengthMultiplier(float value)
Definition MRRadiusMeasurementObject.h:69
static constexpr const char * StaticClassName() noexcept
Definition MRRadiusMeasurementObject.h:25
Vector3f getLocalNormal() const
RadiusMeasurementObject(RadiusMeasurementObject &&) noexcept=default
void setupRenderObject_() const override
RadiusMeasurementObject(ProtectedStruct, const RadiusMeasurementObject &obj)
For std::make_shared() in clone().
Definition MRRadiusMeasurementObject.h:32
void swapBase_(Object &other) override
swaps this object with other
virtual void setLocalRadiusAsVector(const MR::Vector3f &radiusVec, const Vector3f &normal)
virtual std::string classNameInPlural() const override
Definition MRRadiusMeasurementObject.h:29
virtual void setLocalCenter(const MR::Vector3f ¢er)
std::vector< std::string > getInfoLines() const override
return several info lines that can better describe the object in the UI
Vector3f getLocalRadiusAsVector() const
void serializeFields_(Json::Value &root) const override
virtual void setIsSpherical(bool value)
Definition MRRadiusMeasurementObject.h:64
void setLocalRadiusAsVector(const MR::Vector3f &radiusVec)
Same, but without a preferred normal.
Definition MRRadiusMeasurementObject.h:56
float getVisualLengthMultiplier() const
Definition MRRadiusMeasurementObject.h:68
bool getIsSpherical() const
Whether this is a sphere radius, as opposed to circle/cylinder radius.
Definition MRRadiusMeasurementObject.h:63
void deserializeFields_(const Json::Value &root) override
static constexpr const char * StaticTypeName() noexcept
Definition MRRadiusMeasurementObject.h:22
Vector3f getWorldNormal() const
The preferred radius normal, for non-spherical radiuses.
virtual std::string className() const override
Definition MRRadiusMeasurementObject.h:26
bool getDrawAsDiameter() const
Whether we should draw this as a diameter instead of a radius.
Definition MRRadiusMeasurementObject.h:59
void onWorldXfChanged_() override
Emits worldXfChangedSignal, but derived classes can add additional behavior to it.
std::shared_ptr< Object > shallowClone() const override
Vector3f getWorldCenter() const
Get the center in world coordinates.
const char * typeName() const override
Definition MRRadiusMeasurementObject.h:23
static constexpr const char * StaticClassNameInPlural() noexcept
Definition MRRadiusMeasurementObject.h:28
Vector3f getWorldRadiusAsVector() const
The length of this vector is the radius, and the direction is the preferred line drawing direction.
Vector3f normal(const MeshTopology &topology, const VertCoords &points, FaceId f)
computes triangular face normal from its vertices
Definition MRMeshMath.h:224
float computeRadiusOrDiameter() const
Computes the radius/diameter value, as if by getLocalRadiusAsVector(), possibly multiplied by two if ...
RadiusMeasurementObject(const RadiusMeasurementObject &other)=default
RadiusMeasurementObject()
Definition MRRadiusMeasurementObject.h:17
@ other
Angle, normally float. Measure in radians.
Definition MRFeatureObject.h:27
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
Definition MRObject.h:284