13class ChangeObjectAction :
public HistoryAction
23 cloneObj_ = obj->clone();
26 if (
auto visObj = cloneObj_->asType<VisualObject>() )
27 visObj->setVisualizeProperty(
false, VisualizeMaskType::ClippedByPlane, ViewportMask::all() );
31 virtual std::string
name()
const override {
return name_; }
33 virtual void action( HistoryAction::Type )
override
35 if ( obj_.expired() || !cloneObj_ )
38 auto obj = obj_.lock();
39 auto children = obj->children();
40 for (
auto& child : children )
42 child->detachFromParent();
43 cloneObj_->addChild( child );
47 if (
auto visObj = obj->asType<VisualObject>() )
48 visObj->setVisualizeProperty(
false, VisualizeMaskType::ClippedByPlane, ViewportMask::all() );
50 obj->swap( *cloneObj_ );
51 if (
auto visObj = obj->asType<VisualObject>() )
52 visObj->setDirtyFlags( DIRTY_ALL );
55 [[nodiscard]]
virtual size_t heapBytes()
const override
61 std::weak_ptr<Object> obj_;
62 std::shared_ptr<Object> cloneObj_;
unsafe ChangeObjectAction(MR._ByValue_ChangeObjectAction _other)
unsafe void action(MR.HistoryAction.Type _1)
size_t heapBytes(const BitSet &bs)
returns the amount of memory given BitSet occupies on heap
Definition MRMesh/MRBitSet.h:298
std::string name(const T &primitive)
Definition MRFeatures.h:309
Definition MRCameraOrientationPlugin.h:8