14class MRMESH_CLASS ConeObject :
public AddVisualProperties<FeatureObject,
15 DimensionsVisualizePropertyType::diameter,
16 DimensionsVisualizePropertyType::angle,
17 DimensionsVisualizePropertyType::length
24 MRMESH_API ConeObject(
const std::vector<Vector3f>& pointsToApprox );
26 ConeObject( ConeObject&& ) noexcept = default;
27 ConeObject& operator = ( ConeObject&& ) noexcept = default;
29 constexpr static const
char* StaticTypeName() noexcept {
return "ConeObject"; }
30 virtual const char* typeName()
const override {
return StaticTypeName(); }
32 constexpr static const char* StaticClassName() noexcept {
return "Cone"; }
33 virtual std::string className()
const override {
return StaticClassName(); }
35 constexpr static const char* StaticClassNameInPlural() noexcept {
return "Cones"; }
36 virtual std::string classNameInPlural()
const override {
return StaticClassNameInPlural(); }
39 ConeObject( ProtectedStruct,
const ConeObject& obj ) : ConeObject( obj )
42 MRMESH_API virtual std::shared_ptr<Object> clone()
const override;
43 MRMESH_API virtual std::shared_ptr<Object> shallowClone()
const override;
46 [[nodiscard]]
MRMESH_API float getAngle( ViewportId
id = {} )
const;
48 [[nodiscard]]
MRMESH_API Vector3f getCenter( ViewportId
id = {} )
const;
50 [[nodiscard]]
MRMESH_API float getHeight( ViewportId
id = {} )
const;
52 [[nodiscard]]
MRMESH_API Vector3f getDirection( ViewportId
id = {} )
const;
54 MRMESH_API void setCenter(
const Vector3f& center, ViewportId
id = {} );
56 MRMESH_API void setDirection(
const Vector3f& normal, ViewportId
id = {} );
58 MRMESH_API void setHeight(
float height, ViewportId
id = {} );
62 [[nodiscard]]
MRMESH_API float getBaseRadius( ViewportId
id = {} )
const;
64 MRMESH_API void setBaseRadius(
float radius, ViewportId
id = {} );
67 [[nodiscard]]
MRMESH_API virtual Vector3f getBasePoint( ViewportId
id = {} )
const override;
69 MRMESH_API virtual const std::vector<FeatureObjectSharedProperty>& getAllSharedProperties()
const override;
71 [[nodiscard]]
MRMESH_API FeatureObjectProjectPointResult projectPoint(
const Vector3f& point, ViewportId
id = {} )
const override;
74 ConeObject(
const ConeObject& other ) =
default;
77 MRMESH_API virtual void swapBase_( Object& other )
override;
79 MRMESH_API virtual void serializeFields_( Json::Value& root )
const override;
81 virtual Expected<std::future<Expected<void>>> serializeModel_(
const std::filesystem::path& )
const override
86 virtual Expected<void> deserializeModel_(
const std::filesystem::path&, ProgressCallback )
override
91 MRMESH_API void setupRenderObject_()
const override;
95 float getNormalizedRadius_( ViewportId
id = {} )
const;
#define MRMESH_API
Definition MRMeshFwd.h:80
#define MRMESH_CLASS
Definition MRMeshFwd.h:87
angle
Definition MRObjectDimensionsEnum.h:13
Definition MRCameraOrientationPlugin.h:8