MeshLib C++ Docs
Loading...
Searching...
No Matches
MRObjectPoints.h
Go to the documentation of this file.
1#pragma once
3
4namespace MR
5{
8
9struct RenderParams;
10
13class MRMESH_CLASS ObjectPoints : public ObjectPointsHolder
14{
15public:
16 ObjectPoints() = default;
17 MRMESH_API explicit ObjectPoints( const ObjectMesh& objMesh, bool saveNormals = true );
18 ObjectPoints& operator = ( ObjectPoints&& ) = default;
19 ObjectPoints( ObjectPoints&& ) = default;
20
21 constexpr static const char* StaticTypeName() noexcept { return "ObjectPoints"; }
22 virtual const char* typeName() const override { return StaticTypeName(); }
23
24 constexpr static const char* StaticClassName() noexcept { return "Point Cloud"; }
25 virtual std::string className() const override { return StaticClassName(); }
26
27 constexpr static const char* StaticClassNameInPlural() noexcept { return "Point Clouds"; }
28 virtual std::string classNameInPlural() const override { return StaticClassNameInPlural(); }
29
31 virtual const std::shared_ptr<PointCloud>& varPointCloud() { return points_; }
32
33 MRMESH_API virtual std::shared_ptr<Object> clone() const override;
34 MRMESH_API virtual std::shared_ptr<Object> shallowClone() const override;
35
36 virtual void setPointCloud( const std::shared_ptr<PointCloud>& pointCloud ) { points_ = pointCloud; setDirtyFlags( DIRTY_ALL ); }
39 MRMESH_API virtual void swapPointCloud( std::shared_ptr< PointCloud >& points );
40
43
44 MRMESH_API virtual std::vector<std::string> getInfoLines() const override;
45
46protected:
47 ObjectPoints( const ObjectPoints& other ) = default;
48
50 MRMESH_API virtual void swapBase_( Object& other ) override;
51
52 MRMESH_API virtual void serializeFields_( Json::Value& root ) const override;
53};
54
56[[nodiscard]] MRMESH_API std::shared_ptr<ObjectPoints> merge( const std::vector<std::shared_ptr<ObjectPoints>>& objsPoints );
57
60[[nodiscard]] MRMESH_API std::shared_ptr<ObjectPoints> cloneRegion( const std::shared_ptr<ObjectPoints>& objPoints, const VertBitSet& region );
61
65[[nodiscard]] MRMESH_API std::shared_ptr<ObjectPoints> pack( const ObjectPoints& pts, Reorder reorder, VertBitSet* newValidVerts = nullptr, const ProgressCallback & cb = {} );
66
67}
Definition MRObjectMesh.h:14
Definition MRObjectPointsHolder.h:24
Definition MRObjectPoints.h:14
named object in the data model
Definition MRObject.h:62
virtual MRMESH_API std::shared_ptr< Object > shallowClone() const override
ObjectPoints(const ObjectPoints &other)=default
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
static constexpr const char * StaticTypeName() noexcept
Definition MRObjectPoints.h:21
virtual std::string className() const override
Definition MRObjectPoints.h:25
ObjectPoints(ProtectedStruct, const ObjectPoints &obj)
Definition MRObjectPoints.h:42
virtual MRMESH_API void serializeFields_(Json::Value &root) const override
virtual std::string classNameInPlural() const override
Definition MRObjectPoints.h:28
ObjectPoints()=default
virtual MRMESH_API void swapBase_(Object &other) override
swaps this object with other
virtual MRMESH_API std::vector< std::string > getInfoLines() const override
return several info lines that can better describe the object in the UI
virtual const std::shared_ptr< PointCloud > & varPointCloud()
returns variable point cloud, if const point cloud is needed use pointCloud() instead
Definition MRObjectPoints.h:31
ObjectPoints(ObjectPoints &&)=default
static constexpr const char * StaticClassName() noexcept
Definition MRObjectPoints.h:24
MRMESH_API std::shared_ptr< ObjectPoints > pack(const ObjectPoints &pts, Reorder reorder, VertBitSet *newValidVerts=nullptr, const ProgressCallback &cb={})
virtual void setPointCloud(const std::shared_ptr< PointCloud > &pointCloud)
Definition MRObjectPoints.h:36
virtual MRMESH_API std::shared_ptr< Object > clone() const override
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
virtual MRMESH_API void swapPointCloud(std::shared_ptr< PointCloud > &points)
MRMESH_API ObjectPoints(const ObjectMesh &objMesh, bool saveNormals=true)
virtual const char * typeName() const override
Definition MRObjectPoints.h:22
static constexpr const char * StaticClassNameInPlural() noexcept
Definition MRObjectPoints.h:27
Reorder
determines how points to be ordered
Definition MREnums.h:26
@ DIRTY_ALL
Definition MRVisualObject.h:94
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
Definition MRObject.h:284