MeshLib C++ Docs
Loading...
Searching...
No Matches
MRSphereObject.h
Go to the documentation of this file.
1#pragma once
2
3#include "MRFeatureObject.h"
6#include "MRMeshFwd.h"
7#include "MRVisualObject.h"
8
9namespace MR
10{
11
14class MRMESH_CLASS SphereObject : public AddVisualProperties<FeatureObject, DimensionsVisualizePropertyType::diameter>
15{
16public:
18 MRMESH_API SphereObject();
20 MRMESH_API SphereObject( const std::vector<Vector3f>& pointsToApprox );
21
22 SphereObject( SphereObject&& ) noexcept = default;
23 SphereObject& operator = ( SphereObject&& ) noexcept = default;
24
25 constexpr static const char* StaticTypeName() noexcept { return "SphereObject"; }
26 virtual const char* typeName() const override {return StaticTypeName(); }
27
28 constexpr static const char* StaticClassName() noexcept { return "Sphere"; }
29 virtual std::string className() const override { return StaticClassName(); }
30
31 constexpr static const char* StaticClassNameInPlural() noexcept { return "Spheres"; }
32 virtual std::string classNameInPlural() const override { return StaticClassNameInPlural(); }
33
35 SphereObject( ProtectedStruct, const SphereObject& obj ) : SphereObject( obj ) {}
36
37 MRMESH_API virtual std::shared_ptr<Object> clone() const override;
38 MRMESH_API virtual std::shared_ptr<Object> shallowClone() const override;
39
41 MRMESH_API float getRadius( ViewportId id = {} ) const;
43 MRMESH_API Vector3f getCenter( ViewportId id = {} ) const;
45 MRMESH_API void setRadius( float radius, ViewportId id = {} );
47 MRMESH_API void setCenter( const Vector3f& center, ViewportId id = {} );
48
49 MRMESH_API virtual const std::vector<FeatureObjectSharedProperty>& getAllSharedProperties() const override;
50
51 [[nodiscard]] MRMESH_API FeatureObjectProjectPointResult projectPoint( const Vector3f& point, ViewportId id = {} ) const override;
52
53protected:
54 SphereObject( const SphereObject& other ) = default;
55
57 MRMESH_API virtual void swapBase_( Object& other ) override;
58
59 MRMESH_API virtual void serializeFields_( Json::Value& root ) const override;
60
61 virtual Expected<std::future<Expected<void>>> serializeModel_( const std::filesystem::path& ) const override
62 { return {}; }
63
64 virtual Expected<void> deserializeModel_( const std::filesystem::path&, ProgressCallback ) override
65 { return {}; }
66
67 MRMESH_API void setupRenderObject_() const override;
68};
69
70}
#define MRMESH_API
Definition MRMeshFwd.h:80
#define MRMESH_CLASS
Definition MRMeshFwd.h:87
Definition MRCameraOrientationPlugin.h:8