14class ChangeObjectColorAction :
public HistoryAction
17 using Obj = VisualObject;
33 colors_ = type_ == Type::Back ? obj_->getBackColorsForAllViewports() :
34 obj_->getFrontColorsForAllViewports( type_ == Type::Selected );
37 virtual std::string
name()
const override
42 virtual void action( HistoryAction::Type )
override
46 ViewportProperty<Color> colors =
47 type_ == Type::Back ? obj_->getBackColorsForAllViewports() :
48 obj_->getFrontColorsForAllViewports( type_ == Type::Selected );
49 if ( type_ == Type::Back )
50 obj_->setBackColorsForAllViewports( colors_ );
52 obj_->setFrontColorsForAllViewports( colors_, type_ == Type::Selected );
56 static void setObjectDirty(
const std::shared_ptr<VisualObject>& )
60 [[nodiscard]]
virtual size_t heapBytes()
const override
62 return name_.capacity();
66 std::shared_ptr<VisualObject> obj_;
68 ViewportProperty<Color> colors_;
74class ChangeFacesColorMapAction :
public HistoryAction
77 using Obj = ObjectMeshHolder;
85 colorMap_ = obj->getFacesColorMap();
89 ChangeFacesColorMapAction(
const std::string& name,
const std::shared_ptr<ObjectMeshHolder>& obj, FaceColors&& newColorMap ) :
95 colorMap_ = std::move( newColorMap );
96 obj_->updateFacesColorMap( colorMap_ );
100 virtual std::string
name()
const override
105 virtual void action( HistoryAction::Type )
override
109 obj_->updateFacesColorMap( colorMap_ );
112 static void setObjectDirty(
const std::shared_ptr<ObjectMeshHolder>& obj )
115 obj->setDirtyFlags( DIRTY_PRIMITIVE_COLORMAP );
118 [[nodiscard]]
virtual size_t heapBytes()
const override
120 return name_.capacity() + colorMap_.heapBytes();
124 std::shared_ptr<ObjectMeshHolder> obj_;
125 FaceColors colorMap_;
131class ChangeLinesColorMapAction :
public HistoryAction
134 using Obj = ObjectLinesHolder;
142 colorMap_ = obj->getLinesColorMap();
146 ChangeLinesColorMapAction(
const std::string& name,
const std::shared_ptr<ObjectLinesHolder>& obj, UndirectedEdgeColors&& newColorMap ) :
152 colorMap_ = std::move( newColorMap );
153 obj_->updateLinesColorMap( colorMap_ );
157 virtual std::string
name()
const override
162 virtual void action( HistoryAction::Type )
override
166 obj_->updateLinesColorMap( colorMap_ );
169 static void setObjectDirty(
const std::shared_ptr<ObjectLinesHolder>& obj )
172 obj->setDirtyFlags( DIRTY_PRIMITIVE_COLORMAP );
175 [[nodiscard]]
virtual size_t heapBytes()
const override
177 return name_.capacity() + colorMap_.heapBytes();
181 std::shared_ptr<ObjectLinesHolder> obj_;
182 UndirectedEdgeColors colorMap_;
Selected
object itself is selected and all its ancestors are selectable
Definition MRObjectsAccess.h:18
unsafe void action(MR.HistoryAction.Type _1)
unsafe ChangeFacesColorMapAction(MR._ByValue_ChangeFacesColorMapAction _other)
unsafe void action(MR.HistoryAction.Type _1)
unsafe ChangeLinesColorMapAction(MR._ByValue_ChangeLinesColorMapAction _other)
unsafe void action(MR.HistoryAction.Type _1)
unsafe ChangeObjectColorAction(MR._ByValue_ChangeObjectColorAction _other)
std::string name(const T &primitive)
Definition MRFeatures.h:309
Definition MRCameraOrientationPlugin.h:8