MeshLib
 
Loading...
Searching...
No Matches
MRChangeColoringType.h
Go to the documentation of this file.
1#pragma once
2#include "MRHistoryAction.h"
3#include "MRVisualObject.h"
4#include <memory>
5
6namespace MR
7{
8
12{
13public:
16 ChangeColoringType( const std::string& name, const std::shared_ptr<VisualObject>& obj ) :
17 obj_{ obj },
18 name_{ name }
19 {
20 if ( obj )
21 coloringType_ = obj->getColoringType();
22 }
23
24 virtual std::string name() const override
25 {
26 return name_;
27 }
28
29 virtual void action( HistoryAction::Type ) override
30 {
31 if ( !obj_ )
32 return;
33 auto c = obj_->getColoringType();
34 obj_->setColoringType( coloringType_ );
35 coloringType_ = c;
36 }
37
38 static void setObjectDirty( const std::shared_ptr<VisualObject>& obj )
39 {
40 if ( obj )
41 obj->setDirtyFlags( DIRTY_VERTS_COLORMAP );
42 }
43
44 [[nodiscard]] virtual size_t heapBytes() const override
45 {
46 return name_.capacity();
47 }
48
49private:
50 std::shared_ptr<VisualObject> obj_;
52 std::string name_;
53};
54
55}
Definition MRChangeColoringType.h:12
static void setObjectDirty(const std::shared_ptr< VisualObject > &obj)
Definition MRChangeColoringType.h:38
virtual size_t heapBytes() const override
returns the amount of memory this object occupies on heap
Definition MRChangeColoringType.h:44
virtual std::string name() const override
Definition MRChangeColoringType.h:24
ChangeColoringType(const std::string &name, const std::shared_ptr< VisualObject > &obj)
Constructed from original obj.
Definition MRChangeColoringType.h:16
virtual void action(HistoryAction::Type) override
This function is called on history action (undo, redo, etc.)
Definition MRChangeColoringType.h:29
Definition MRHistoryAction.h:12
Type
Definition MRHistoryAction.h:19
Visual Object.
Definition MRVisualObject.h:131
ColoringType
Definition MRVisualObject.h:21
@ DIRTY_VERTS_COLORMAP
Definition MRVisualObject.h:100
@ SolidColor
Use simple color for whole mesh.
Definition MRCameraOrientationPlugin.h:7