MeshLib C++ Docs
Loading...
Searching...
No Matches
MRObjectLines.h
Go to the documentation of this file.
1#pragma once
2
4
5namespace MR
6{
7
11{
12public:
13 ObjectLines() = default;
14 ObjectLines( ObjectLines&& ) = default;
16
17 constexpr static const char* TypeName() noexcept { return "ObjectLines"; }
18 virtual const char* typeName() const override { return TypeName(); }
19
20 constexpr static const char* ClassName() noexcept { return "Polyline"; }
21 virtual std::string className() const override { return ClassName(); }
22
23 constexpr static const char* ClassNameInPlural() noexcept { return "Polylines"; }
24 virtual std::string classNameInPlural() const override { return ClassNameInPlural(); }
25
26 MRMESH_API virtual std::shared_ptr<Object> clone() const override;
27 MRMESH_API virtual std::shared_ptr<Object> shallowClone() const override;
28
29 MRMESH_API virtual void setPolyline( const std::shared_ptr<Polyline3>& polyline );
31 MRMESH_API virtual std::shared_ptr< Polyline3 > updatePolyline( std::shared_ptr< Polyline3 > polyline );
32
33 virtual const std::shared_ptr<Polyline3>& varPolyline() { return polyline_; }
34
35 MRMESH_API virtual void setDirtyFlags( uint32_t mask, bool invalidateCaches = true ) override;
36
39
40 MRMESH_API virtual std::vector<std::string> getInfoLines() const override;
41
43 using LinesChangedSignal = Signal<void( uint32_t mask )>;
45
46protected:
47 ObjectLines( const ObjectLines& other ) = default;
48
50 MRMESH_API virtual void swapBase_( Object& other ) override;
53 MRMESH_API virtual void swapSignals_( Object& other ) override;
54
55 MRMESH_API virtual void serializeFields_( Json::Value& root ) const override;
56};
57
59[[nodiscard]] MRMESH_API std::shared_ptr<ObjectLines> merge( const std::vector<std::shared_ptr<ObjectLines>>& objsLines );
60
62[[nodiscard]] MRMESH_API std::shared_ptr<ObjectLines> cloneRegion( const std::shared_ptr<ObjectLines>& objLines, const UndirectedEdgeBitSet& region );
63
64} // namespace MR
#define MRMESH_API
Definition MRMesh/MRMeshFwd.h:80
#define MRMESH_CLASS
Definition MRMesh/MRMeshFwd.h:84
Definition MRObjectLinesHolder.h:27
Definition MRObjectLines.h:11
static constexpr const char * ClassNameInPlural() noexcept
Definition MRObjectLines.h:23
virtual const char * typeName() const override
Definition MRObjectLines.h:18
virtual MRMESH_API std::shared_ptr< Polyline3 > updatePolyline(std::shared_ptr< Polyline3 > polyline)
sets given polyline to this, and returns back previous polyline of this;
virtual MRMESH_API void swapSignals_(Object &other) override
ObjectLines()=default
virtual MRMESH_API void swapBase_(Object &other) override
swaps this object with other
virtual MRMESH_API void setPolyline(const std::shared_ptr< Polyline3 > &polyline)
ObjectLines(ProtectedStruct, const ObjectLines &obj)
Definition MRObjectLines.h:38
static constexpr const char * TypeName() noexcept
Definition MRObjectLines.h:17
virtual const std::shared_ptr< Polyline3 > & varPolyline()
Definition MRObjectLines.h:33
virtual std::string classNameInPlural() const override
Definition MRObjectLines.h:24
static constexpr const char * ClassName() noexcept
Definition MRObjectLines.h:20
LinesChangedSignal linesChangedSignal
Definition MRObjectLines.h:44
virtual std::string className() const override
Definition MRObjectLines.h:21
virtual MRMESH_API void setDirtyFlags(uint32_t mask, bool invalidateCaches=true) override
ObjectLines(ObjectLines &&)=default
virtual MRMESH_API std::shared_ptr< Object > clone() const override
virtual MRMESH_API void serializeFields_(Json::Value &root) const override
serializeFields_: serializeBaseFields_ plus polyline serialization
ObjectLines & operator=(ObjectLines &&)=default
virtual MRMESH_API std::vector< std::string > getInfoLines() const override
return several info lines that can better describe the object in the UI
ObjectLines(const ObjectLines &other)=default
virtual MRMESH_API std::shared_ptr< Object > shallowClone() const override
named object in the data model
Definition MRObject.h:62
Definition MRCameraOrientationPlugin.h:8
MRMESH_API std::shared_ptr< ObjectLines > cloneRegion(const std::shared_ptr< ObjectLines > &objLines, const UndirectedEdgeBitSet &region)
constructs new ObjectLines containing the region of data from input object
MRMESH_API std::shared_ptr< ObjectLines > merge(const std::vector< std::shared_ptr< ObjectLines > > &objsLines)
constructs new ObjectLines containing the union of valid data from all input objects
Definition MRObject.h:279