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
10class MRMESH_CLASS ObjectLines : public ObjectLinesHolder
11{
12public:
13 ObjectLines() = default;
14 ObjectLines( ObjectLines&& ) = default;
15 ObjectLines& operator=( ObjectLines&& ) = default;
16
17 constexpr static const char* StaticTypeName() noexcept { return "ObjectLines"; }
18 virtual const char* typeName() const override { return StaticTypeName(); }
19
20 constexpr static const char* StaticClassName() noexcept { return "Polyline"; }
21 virtual std::string className() const override { return StaticClassName(); }
22
23 constexpr static const char* StaticClassNameInPlural() noexcept { return "Polylines"; }
24 virtual std::string classNameInPlural() const override { return StaticClassNameInPlural(); }
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
38 ObjectLines( ProtectedStruct, const ObjectLines& obj ) : ObjectLines( obj ) {}
39
40 MRMESH_API virtual std::vector<std::string> getInfoLines() const override;
41
43 using LinesChangedSignal = Signal<void( uint32_t mask )>;
44 LinesChangedSignal linesChangedSignal;
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 MRMeshFwd.h:80
#define MRMESH_CLASS
Definition MRMeshFwd.h:87
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