25 name_{ std::move(
name ) }
29 if (
auto pc = obj->pointCloud() )
30 backupNormals_ = pc->normals;
37 backupNormals_{ std::move( newNormals ) },
38 name_{ std::move(
name ) }
43 virtual std::string
name()
const override
50 if ( !objPoints_ || !objPoints_->varPointCloud() )
53 std::swap( objPoints_->varPointCloud()->normals, backupNormals_ );
63 [[nodiscard]]
virtual size_t heapBytes()
const override
65 return name_.capacity() + backupNormals_.heapBytes();
69 std::shared_ptr<ObjectPoints> objPoints_;
70 VertNormals backupNormals_;
86 name_{ std::move(
name ) }
90 if (
auto m = obj->pointCloud() )
91 if ( m->normals.size() > pointId_ )
92 safeNormal_ = m->normals[pointId_];
100 safeNormal_{ newNormal },
101 name_{ std::move(
name ) }
106 virtual std::string
name()
const override
116 if (
auto m = objPoints_->varPointCloud() )
118 if ( m->normals.size() > pointId_ )
120 std::swap( safeNormal_, m->normals[pointId_] );
134 return name_.capacity();
138 std::shared_ptr<ObjectPoints> objPoints_;
140 Vector3f safeNormal_;
Definition MRChangePointCloudNormalsAction.h:78
Definition MRChangePointCloudNormalsAction.h:18
Definition MRHistoryAction.h:15
Definition MRObjectPoints.h:14
virtual size_t heapBytes() const override
returns the amount of memory this object occupies on heap
Definition MRChangePointCloudNormalsAction.h:63
virtual void action(HistoryAction::Type) override
This function is called on history action (undo, redo, etc.)
Definition MRChangePointCloudNormalsAction.h:48
ChangeOneNormalInCloudAction(std::string name, const std::shared_ptr< ObjectPoints > &obj, VertId pointId)
use this constructor to remember point's normal before making any changes in it
Definition MRChangePointCloudNormalsAction.h:83
virtual size_t heapBytes() const override
returns the amount of memory this object occupies on heap
Definition MRChangePointCloudNormalsAction.h:132
ChangePointCloudNormalsAction(std::string name, const std::shared_ptr< ObjectPoints > &obj, VertNormals &&newNormals)
use this constructor to remember point cloud's normals and immediate set new value
Definition MRChangePointCloudNormalsAction.h:35
static void setObjectDirty(const std::shared_ptr< ObjectPoints > &obj)
Definition MRChangePointCloudNormalsAction.h:57
static void setObjectDirty(const std::shared_ptr< ObjectPoints > &obj)
Definition MRChangePointCloudNormalsAction.h:126
ChangeOneNormalInCloudAction(std::string name, const std::shared_ptr< ObjectPoints > &obj, VertId pointId, const Vector3f &newNormal)
use this constructor to remember point's normal and immediate set new normal
Definition MRChangePointCloudNormalsAction.h:97
ChangePointCloudNormalsAction(std::string name, const std::shared_ptr< ObjectPoints > &obj)
use this constructor to remember point cloud's normals before making any changes in them
Definition MRChangePointCloudNormalsAction.h:23
virtual std::string name() const override
Definition MRChangePointCloudNormalsAction.h:106
virtual void action(HistoryAction::Type) override
This function is called on history action (undo, redo, etc.)
Definition MRChangePointCloudNormalsAction.h:111
Type
Definition MRHistoryAction.h:22
virtual std::string name() const override
Definition MRChangePointCloudNormalsAction.h:43
@ DIRTY_RENDER_NORMALS
Definition MRVisualObject.h:81
only for bindings generation
Definition MRCameraOrientationPlugin.h:8