MeshLib C++ Docs
Loading...
Searching...
No Matches
MRPointObject.h
Go to the documentation of this file.
1#pragma once
2
3#include "MRFeatureObject.h"
5#include "MRMeshFwd.h"
6#include "MRVisualObject.h"
7
8namespace MR
9{
10
13class MRMESH_CLASS PointObject : public FeatureObject
14{
15public:
17 MRMESH_API PointObject();
19 MRMESH_API PointObject( const std::vector<Vector3f>& pointsToApprox );
20
21 PointObject( PointObject&& ) noexcept = default;
22 PointObject& operator = ( PointObject&& ) noexcept = default;
23
24 constexpr static const char* StaticTypeName() noexcept { return "PointObject"; }
25 virtual const char* typeName() const override { return StaticTypeName(); }
26
27 constexpr static const char* StaticClassName() noexcept { return "Point"; }
28 virtual std::string className() const override { return StaticClassName(); }
29
30 constexpr static const char* StaticClassNameInPlural() noexcept { return "Points"; }
31 virtual std::string classNameInPlural() const override { return StaticClassNameInPlural(); }
32
34 PointObject( ProtectedStruct, const PointObject& obj ) : PointObject( obj )
35 {}
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 [[nodiscard]] MRMESH_API Vector3f getPoint( ViewportId id = {} ) const;
43 MRMESH_API void setLocalPoint( const Vector3f& point, ViewportId id = {} );
44
45 MRMESH_API virtual std::vector<FeatureObjectSharedProperty>& getAllSharedProperties() const override;
46
47 [[nodiscard]] MRMESH_API FeatureObjectProjectPointResult projectPoint( const Vector3f& /*point*/, ViewportId id = {} ) const override;
48
49protected:
50 PointObject( const PointObject& other ) = default;
51
53 MRMESH_API virtual void swapBase_( Object& other ) override;
54
55 MRMESH_API virtual void serializeFields_( Json::Value& root ) const override;
56
57 virtual Expected<std::future<Expected<void>>> serializeModel_( const std::filesystem::path& ) const override
58 { return {}; }
59
60 virtual Expected<void> deserializeModel_( const std::filesystem::path&, ProgressCallback ) override
61 { return {}; }
62
63 MRMESH_API void setupRenderObject_() const override;
64};
65
66}
#define MRMESH_API
Definition MRMeshFwd.h:80
#define MRMESH_CLASS
Definition MRMeshFwd.h:87
Definition MRCameraOrientationPlugin.h:8