MeshLib
 
Loading...
Searching...
No Matches
MRChangeObjectFields.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 ChangeVisualizePropertyAction( const std::string& name, const std::shared_ptr<VisualObject>& obj, AnyVisualizeMaskEnum visualizeMaskType ) :
17 obj_{ obj },
18 maskType_{ visualizeMaskType },
19 name_{ name }
20 {
21 if ( obj )
22 visualMask_ = obj_->getVisualizePropertyMask( maskType_ );
23 }
24
25 virtual std::string name() const override
26 {
27 return name_;
28 }
29
30 virtual void action( HistoryAction::Type ) override
31 {
32 if ( !obj_ )
33 return;
34 auto bufMask = obj_->getVisualizePropertyMask( maskType_ );
35 obj_->setVisualizePropertyMask( maskType_, visualMask_ );
36 visualMask_ = bufMask;
37 }
38
39 static void setObjectDirty( const std::shared_ptr<VisualObject>& ){ }
40
41 [[nodiscard]] virtual size_t heapBytes() const override
42 {
43 return name_.capacity();
44 }
45
46private:
47 std::shared_ptr<VisualObject> obj_;
48 ViewportMask visualMask_;
49 AnyVisualizeMaskEnum maskType_;
50 std::string name_;
51};
52
56{
57public:
58 using Obj = Object;
60 ChangeObjectSelectedAction( const std::string& name, const std::shared_ptr<Object>& obj ) :
61 obj_{ obj },
62 name_{ name }
63 {
64 if ( obj )
65 selected_ = obj_->isSelected();
66 }
67
68 virtual std::string name() const override
69 {
70 return name_;
71 }
72
73 virtual void action( HistoryAction::Type ) override
74 {
75 if ( !obj_ )
76 return;
77 auto bufSel = obj_->isSelected();
78 obj_->select( selected_ );
79 selected_ = bufSel;
80 }
81
82 static void setObjectDirty( const std::shared_ptr<Object>& )
83 {}
84
85 [[nodiscard]] virtual size_t heapBytes() const override
86 {
87 return name_.capacity();
88 }
89
90private:
91 std::shared_ptr<Object> obj_;
92 bool selected_{ false };
93 std::string name_;
94};
95
99{
100public:
101 using Obj = Object;
103 ChangeObjectVisibilityAction( const std::string& name, const std::shared_ptr<Object>& obj ) :
104 obj_{ obj },
105 name_{ name }
106 {
107 if ( obj )
108 visibilityMask_ = obj_->visibilityMask();
109 }
110
111 virtual std::string name() const override
112 {
113 return name_;
114 }
115
116 virtual void action( HistoryAction::Type ) override
117 {
118 if ( !obj_ )
119 return;
120 auto bufVisMask = obj_->visibilityMask();
121 obj_->setVisibilityMask( visibilityMask_ );
122 visibilityMask_ = bufVisMask;
123 }
124
125 static void setObjectDirty( const std::shared_ptr<Object>& )
126 {}
127
128 [[nodiscard]] virtual size_t heapBytes() const override
129 {
130 return name_.capacity();
131 }
132
133private:
134 std::shared_ptr<Object> obj_;
135 ViewportMask visibilityMask_;
136 std::string name_;
137};
138
139}
Definition MRVisualObject.h:67
Definition MRChangeObjectFields.h:56
static void setObjectDirty(const std::shared_ptr< Object > &)
Definition MRChangeObjectFields.h:82
virtual size_t heapBytes() const override
returns the amount of memory this object occupies on heap
Definition MRChangeObjectFields.h:85
ChangeObjectSelectedAction(const std::string &name, const std::shared_ptr< Object > &obj)
Constructed from original obj.
Definition MRChangeObjectFields.h:60
virtual void action(HistoryAction::Type) override
This function is called on history action (undo, redo, etc.)
Definition MRChangeObjectFields.h:73
virtual std::string name() const override
Definition MRChangeObjectFields.h:68
Definition MRChangeObjectFields.h:99
virtual size_t heapBytes() const override
returns the amount of memory this object occupies on heap
Definition MRChangeObjectFields.h:128
ChangeObjectVisibilityAction(const std::string &name, const std::shared_ptr< Object > &obj)
Constructed from original obj.
Definition MRChangeObjectFields.h:103
virtual void action(HistoryAction::Type) override
This function is called on history action (undo, redo, etc.)
Definition MRChangeObjectFields.h:116
static void setObjectDirty(const std::shared_ptr< Object > &)
Definition MRChangeObjectFields.h:125
virtual std::string name() const override
Definition MRChangeObjectFields.h:111
Definition MRChangeObjectFields.h:12
static void setObjectDirty(const std::shared_ptr< VisualObject > &)
Definition MRChangeObjectFields.h:39
ChangeVisualizePropertyAction(const std::string &name, const std::shared_ptr< VisualObject > &obj, AnyVisualizeMaskEnum visualizeMaskType)
Constructed from original obj.
Definition MRChangeObjectFields.h:16
virtual void action(HistoryAction::Type) override
This function is called on history action (undo, redo, etc.)
Definition MRChangeObjectFields.h:30
virtual size_t heapBytes() const override
returns the amount of memory this object occupies on heap
Definition MRChangeObjectFields.h:41
virtual std::string name() const override
Definition MRChangeObjectFields.h:25
Definition MRHistoryAction.h:12
Type
Definition MRHistoryAction.h:19
named object in the data model
Definition MRObject.h:60
stores mask of viewport unique identifiers
Definition MRViewportId.h:38
Visual Object.
Definition MRVisualObject.h:131
Definition MRCameraOrientationPlugin.h:7