2#include "MRPch/MRBindingMacros.h"
18 MRMESH_API LineObject(
const std::vector<Vector3f>& pointsToApprox );
20 LineObject( LineObject&& ) noexcept = default;
21 LineObject& operator = ( LineObject&& ) noexcept = default;
23 constexpr static const
char* StaticTypeName() noexcept {
return "LineObject"; }
24 virtual const char* typeName()
const override {
return StaticTypeName(); }
26 constexpr static const char* StaticClassName() noexcept {
return "Line"; }
27 virtual std::string className()
const override {
return StaticClassName(); }
29 constexpr static const char* StaticClassNameInPlural() noexcept {
return "Lines"; }
30 virtual std::string classNameInPlural()
const override {
return StaticClassNameInPlural(); }
33 LineObject( ProtectedStruct,
const LineObject& obj ) : LineObject( obj )
36 MRMESH_API virtual std::shared_ptr<Object> clone()
const override;
37 MRMESH_API virtual std::shared_ptr<Object> shallowClone()
const override;
40 MRMESH_API Vector3f getDirection( ViewportId
id = {} )
const;
42 MRMESH_API Vector3f getCenter( ViewportId
id = {} )
const;
44 MRMESH_API void setDirection(
const Vector3f& normal, ViewportId
id = {} );
46 MRMESH_API void setCenter(
const Vector3f& center, ViewportId
id = {} );
48 MRMESH_API void setLength(
float size, ViewportId
id = {} );
50 [[nodiscard]]
MRMESH_API float getLength( ViewportId
id = {} )
const;
52 [[nodiscard]]
MRMESH_API virtual Vector3f getBasePoint( ViewportId
id = {} )
const override;
55 [[nodiscard]]
MRMESH_API Vector3f getPointA( ViewportId
id = {} )
const;
57 [[nodiscard]]
MRMESH_API Vector3f getPointB( ViewportId
id = {} )
const;
59 [[deprecated(
"This confusingly sets half-length. Use `setLength(halfLen * 2)` instead." )]]
60 MR_BIND_IGNORE
void setSize(
float halfLen, ViewportId
id = {} )
62 setLength( halfLen * 2 ,
id );
65 [[nodiscard]]
MRMESH_API FeatureObjectProjectPointResult projectPoint(
const Vector3f& point, ViewportId
id = {} )
const override;
67 MRMESH_API virtual const std::vector<FeatureObjectSharedProperty>& getAllSharedProperties()
const override;
70 LineObject(
const LineObject& other ) =
default;
73 MRMESH_API virtual void swapBase_( Object& other )
override;
75 MRMESH_API virtual void serializeFields_( Json::Value& root )
const override;
77 virtual Expected<std::future<Expected<void>>> serializeModel_(
const std::filesystem::path& )
const override
80 virtual Expected<void> deserializeModel_(
const std::filesystem::path&, ProgressCallback )
override
83 MRMESH_API void setupRenderObject_()
const override;
#define MRMESH_API
Definition MRMeshFwd.h:80
#define MRMESH_CLASS
Definition MRMeshFwd.h:87
Definition MRCameraOrientationPlugin.h:8