22 name_{ std::move(
name ) }
26 if (
auto m = obj->pointCloud() )
27 clonePointCloud_ = std::make_shared<PointCloud>( *m );
31 virtual std::string
name()
const override {
return name_; }
38 objPoints_->swapPointCloud( clonePointCloud_ );
47 [[nodiscard]]
virtual size_t heapBytes()
const override
48 {
return name_.capacity() +
MR::heapBytes( clonePointCloud_ ); }
51 std::shared_ptr<ObjectPoints> objPoints_;
52 std::shared_ptr<PointCloud> clonePointCloud_;
67 name_{ std::move(
name ) }
71 if (
auto m = obj->pointCloud() )
72 clonePoints_ = m->points;
79 clonePoints_{ std::move( newPoints ) },
80 name_{ std::move(
name ) }
85 virtual std::string
name()
const override
95 if (
auto m = objPoints_->varPointCloud() )
97 std::swap( m->points, clonePoints_ );
110 return name_.capacity() + clonePoints_.heapBytes();
114 std::shared_ptr<ObjectPoints> objPoints_;
115 VertCoords clonePoints_;
131 name_{ std::move(
name ) }
135 if (
auto m = obj->pointCloud() )
136 if ( m->points.size() > pointId_ )
137 safeCoords_ = m->points[pointId_];
145 safeCoords_{ newCoords },
146 name_{ std::move(
name ) }
151 virtual std::string
name()
const override
161 if (
auto m = objPoints_->varPointCloud() )
163 if ( m->points.size() > pointId_ )
165 std::swap( safeCoords_, m->points[pointId_] );
179 return name_.capacity();
183 std::shared_ptr<ObjectPoints> objPoints_;
185 Vector3f safeCoords_;
Definition MRChangePointCloudAction.h:123
virtual std::string name() const override
Definition MRChangePointCloudAction.h:151
ChangeOnePointInCloudAction(std::string name, const std::shared_ptr< ObjectPoints > &obj, VertId pointId)
use this constructor to remember point's coordinates before making any changes in it
Definition MRChangePointCloudAction.h:128
static void setObjectDirty(const std::shared_ptr< ObjectPoints > &obj)
Definition MRChangePointCloudAction.h:171
ChangeOnePointInCloudAction(std::string name, const std::shared_ptr< ObjectPoints > &obj, VertId pointId, const Vector3f &newCoords)
use this constructor to remember point's coordinates and immediate set new coordinates
Definition MRChangePointCloudAction.h:142
virtual size_t heapBytes() const override
returns the amount of memory this object occupies on heap
Definition MRChangePointCloudAction.h:177
virtual void action(HistoryAction::Type) override
This function is called on history action (undo, redo, etc.)
Definition MRChangePointCloudAction.h:156
Definition MRChangePointCloudAction.h:15
ChangePointCloudAction(std::string name, const std::shared_ptr< ObjectPoints > &obj)
use this constructor to remember object's point cloud before making any changes in it
Definition MRChangePointCloudAction.h:20
virtual std::string name() const override
Definition MRChangePointCloudAction.h:31
virtual void action(HistoryAction::Type) override
This function is called on history action (undo, redo, etc.)
Definition MRChangePointCloudAction.h:33
virtual size_t heapBytes() const override
returns the amount of memory this object occupies on heap
Definition MRChangePointCloudAction.h:47
static void setObjectDirty(const std::shared_ptr< ObjectPoints > &obj)
Definition MRChangePointCloudAction.h:41
Definition MRChangePointCloudAction.h:60
static void setObjectDirty(const std::shared_ptr< ObjectPoints > &obj)
Definition MRChangePointCloudAction.h:102
ChangePointCloudPointsAction(std::string name, const std::shared_ptr< ObjectPoints > &obj)
use this constructor to remember object's points field before making any changes in it
Definition MRChangePointCloudAction.h:65
ChangePointCloudPointsAction(std::string name, const std::shared_ptr< ObjectPoints > &obj, VertCoords &&newPoints)
use this constructor to remember object's points field and immediate set new value
Definition MRChangePointCloudAction.h:77
virtual std::string name() const override
Definition MRChangePointCloudAction.h:85
virtual size_t heapBytes() const override
returns the amount of memory this object occupies on heap
Definition MRChangePointCloudAction.h:108
virtual void action(HistoryAction::Type) override
This function is called on history action (undo, redo, etc.)
Definition MRChangePointCloudAction.h:90
Definition MRHistoryAction.h:12
Type
Definition MRHistoryAction.h:19
Definition MRObjectPoints.h:11
size_t heapBytes(const BitSet &bs)
returns the amount of memory given BitSet occupies on heap
Definition MRMesh/MRBitSet.h:219
@ DIRTY_POSITION
Definition MRVisualObject.h:80
@ DIRTY_ALL
Definition MRVisualObject.h:99
Definition MRCameraOrientationPlugin.h:8