10class MRMESH_CLASS ObjectPoints :
public ObjectPointsHolder
13 ObjectPoints() =
default;
14 MRMESH_API explicit ObjectPoints(
const ObjectMesh& objMesh,
bool saveNormals =
true );
15 ObjectPoints& operator = ( ObjectPoints&& ) =
default;
16 ObjectPoints( ObjectPoints&& ) =
default;
18 constexpr static const char* StaticTypeName() noexcept {
return "ObjectPoints"; }
19 virtual const char* typeName()
const override {
return StaticTypeName(); }
21 constexpr static const char* StaticClassName() noexcept {
return "Point Cloud"; }
22 virtual std::string className()
const override {
return StaticClassName(); }
24 constexpr static const char* StaticClassNameInPlural() noexcept {
return "Point Clouds"; }
25 virtual std::string classNameInPlural()
const override {
return StaticClassNameInPlural(); }
28 virtual const std::shared_ptr<PointCloud>& varPointCloud() {
return points_; }
30 MRMESH_API virtual std::shared_ptr<Object> clone()
const override;
31 MRMESH_API virtual std::shared_ptr<Object> shallowClone()
const override;
33 virtual void setPointCloud(
const std::shared_ptr<PointCloud>& pointCloud ) { points_ = pointCloud; setDirtyFlags( DIRTY_ALL ); }
36 MRMESH_API virtual void swapPointCloud( std::shared_ptr< PointCloud >& points );
39 ObjectPoints( ProtectedStruct,
const ObjectPoints& obj ) : ObjectPoints( obj ) {}
41 MRMESH_API virtual std::vector<std::string> getInfoLines()
const override;
43 MRMESH_API virtual void setDirtyFlags( uint32_t mask,
bool invalidateCaches =
true )
override;
46 using ChangedSignal = Signal<void( uint32_t mask )>;
47 ChangedSignal pointsChangedSignal;
48 ChangedSignal normalsChangedSignal;
51 ObjectPoints(
const ObjectPoints& other ) =
default;
54 MRMESH_API virtual void swapBase_( Object& other )
override;
57 MRMESH_API virtual void swapSignals_( Object& other )
override;
59 MRMESH_API virtual void serializeFields_( Json::Value& root )
const override;
63[[nodiscard]]
MRMESH_API std::shared_ptr<ObjectPoints>
merge(
const std::vector<std::shared_ptr<ObjectPoints>>& objsPoints );
#define MRMESH_API
Definition MRMeshFwd.h:80
#define MRMESH_CLASS
Definition MRMeshFwd.h:87
Definition MRObjectPoints.h:11
Definition MRCameraOrientationPlugin.h:8
MRMESH_API std::shared_ptr< ObjectLines > cloneRegion(const std::shared_ptr< ObjectLines > &objLines, const UndirectedEdgeBitSet ®ion)
constructs new ObjectLines containing the region of data from input object
MRMESH_API std::shared_ptr< ObjectPoints > pack(const ObjectPoints &pts, Reorder reorder, VertBitSet *newValidVerts=nullptr, const ProgressCallback &cb={})
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