MeshLib C++ Docs
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{
10
11
15{
16public:
18
20 ChangeVisualizePropertyAction( const std::string& name, const std::shared_ptr<VisualObject>& obj, AnyVisualizeMaskEnum visualizeMaskType ) :
21 obj_{ obj },
22 maskType_{ visualizeMaskType },
23 name_{ name }
24 {
25 if ( obj )
26 visualMask_ = obj_->getVisualizePropertyMask( maskType_ );
27 }
28
30 ChangeVisualizePropertyAction( const std::string& name, const std::shared_ptr<VisualObject>& obj, AnyVisualizeMaskEnum visualizeMaskType, ViewportMask newMask ) :
31 obj_{ obj },
32 maskType_{ visualizeMaskType },
33 name_{ name }
34 {
35 if ( obj )
36 {
37 visualMask_ = obj_->getVisualizePropertyMask( maskType_ );
38 obj_->setVisualizePropertyMask( maskType_, newMask );
39 }
40 }
41
42 virtual std::string name() const override
43 {
44 return name_;
45 }
46
47 virtual void action( HistoryAction::Type ) override
48 {
49 if ( !obj_ )
50 return;
51 auto bufMask = obj_->getVisualizePropertyMask( maskType_ );
52 obj_->setVisualizePropertyMask( maskType_, visualMask_ );
53 visualMask_ = bufMask;
54 }
55
56 static void setObjectDirty( const std::shared_ptr<VisualObject>& ){ }
57
58 [[nodiscard]] virtual size_t heapBytes() const override
59 {
60 return name_.capacity();
61 }
62
63private:
64 std::shared_ptr<VisualObject> obj_;
65 ViewportMask visualMask_;
66 AnyVisualizeMaskEnum maskType_;
67 std::string name_;
68};
69
73{
74public:
75 using Obj = Object;
76
78 ChangeObjectSelectedAction( const std::string& name, const std::shared_ptr<Object>& obj ) :
79 obj_{ obj },
80 name_{ name }
81 {
82 if ( obj )
83 selected_ = obj_->isSelected();
84 }
85
87 ChangeObjectSelectedAction( const std::string& name, const std::shared_ptr<Object>& obj, bool newValue ) :
88 obj_{ obj },
89 name_{ name }
90 {
91 if ( obj )
92 {
93 selected_ = obj_->isSelected();
94 obj_->select( newValue );
95 }
96 }
97
98 virtual std::string name() const override
99 {
100 return name_;
101 }
102
103 virtual void action( HistoryAction::Type ) override
104 {
105 if ( !obj_ )
106 return;
107 auto bufSel = obj_->isSelected();
108 obj_->select( selected_ );
109 selected_ = bufSel;
110 }
111
112 static void setObjectDirty( const std::shared_ptr<Object>& )
113 {}
114
115 [[nodiscard]] virtual size_t heapBytes() const override
116 {
117 return name_.capacity();
118 }
119
120private:
121 std::shared_ptr<Object> obj_;
122 bool selected_{ false };
123 std::string name_;
124};
125
129{
130public:
131 using Obj = Object;
132
134 ChangeObjectVisibilityAction( const std::string& name, const std::shared_ptr<Object>& obj ) :
135 obj_{ obj },
136 name_{ name }
137 {
138 if ( obj )
139 visibilityMask_ = obj_->visibilityMask();
140 }
141
143 ChangeObjectVisibilityAction( const std::string& name, const std::shared_ptr<Object>& obj, ViewportMask newVisibilityMask ) :
144 obj_{ obj },
145 name_{ name }
146 {
147 if ( obj )
148 {
149 visibilityMask_ = obj_->visibilityMask();
150 obj_->setVisibilityMask( newVisibilityMask );
151 }
152 }
153
154 virtual std::string name() const override
155 {
156 return name_;
157 }
158
159 virtual void action( HistoryAction::Type ) override
160 {
161 if ( !obj_ )
162 return;
163 auto bufVisMask = obj_->visibilityMask();
164 obj_->setVisibilityMask( visibilityMask_ );
165 visibilityMask_ = bufVisMask;
166 }
167
168 static void setObjectDirty( const std::shared_ptr<Object>& )
169 {}
170
171 [[nodiscard]] virtual size_t heapBytes() const override
172 {
173 return name_.capacity();
174 }
175
176private:
177 std::shared_ptr<Object> obj_;
178 ViewportMask visibilityMask_;
179 std::string name_;
180};
181
182}
Definition MRVisualObject.h:54
Definition MRChangeObjectFields.h:73
Definition MRChangeObjectFields.h:129
Definition MRChangeObjectFields.h:15
Definition MRHistoryAction.h:15
named object in the data model
Definition MRObject.h:62
stores mask of viewport unique identifiers
Definition MRViewportId.h:42
Visual Object.
Definition MRVisualObject.h:116
virtual size_t heapBytes() const override
returns the amount of memory this object occupies on heap
Definition MRChangeObjectFields.h:171
static void setObjectDirty(const std::shared_ptr< Object > &)
Definition MRChangeObjectFields.h:112
ChangeObjectSelectedAction(const std::string &name, const std::shared_ptr< Object > &obj, bool newValue)
use this constructor to remember object's isSelected property and immediately set new value
Definition MRChangeObjectFields.h:87
static void setObjectDirty(const std::shared_ptr< VisualObject > &)
Definition MRChangeObjectFields.h:56
virtual size_t heapBytes() const override
returns the amount of memory this object occupies on heap
Definition MRChangeObjectFields.h:115
ChangeObjectVisibilityAction(const std::string &name, const std::shared_ptr< Object > &obj, ViewportMask newVisibilityMask)
use this constructor to remember object's visibility mask and immediately set new mask
Definition MRChangeObjectFields.h:143
ChangeVisualizePropertyAction(const std::string &name, const std::shared_ptr< VisualObject > &obj, AnyVisualizeMaskEnum visualizeMaskType, ViewportMask newMask)
use this constructor to remember object's visualize property mask and immediately set new value
Definition MRChangeObjectFields.h:30
ChangeObjectVisibilityAction(const std::string &name, const std::shared_ptr< Object > &obj)
use this constructor to remember object's visibility mask before making any changes in it
Definition MRChangeObjectFields.h:134
ChangeVisualizePropertyAction(const std::string &name, const std::shared_ptr< VisualObject > &obj, AnyVisualizeMaskEnum visualizeMaskType)
use this constructor to remember object's visualize property mask before making any changes in it
Definition MRChangeObjectFields.h:20
virtual void action(HistoryAction::Type) override
This function is called on history action (undo, redo, etc.)
Definition MRChangeObjectFields.h:47
virtual size_t heapBytes() const override
returns the amount of memory this object occupies on heap
Definition MRChangeObjectFields.h:58
ChangeObjectSelectedAction(const std::string &name, const std::shared_ptr< Object > &obj)
use this constructor to remember object's isSelected property before making any changes in it
Definition MRChangeObjectFields.h:78
virtual void action(HistoryAction::Type) override
This function is called on history action (undo, redo, etc.)
Definition MRChangeObjectFields.h:103
virtual void action(HistoryAction::Type) override
This function is called on history action (undo, redo, etc.)
Definition MRChangeObjectFields.h:159
virtual std::string name() const override
Definition MRChangeObjectFields.h:42
Type
Definition MRHistoryAction.h:22
static void setObjectDirty(const std::shared_ptr< Object > &)
Definition MRChangeObjectFields.h:168
virtual std::string name() const override
Definition MRChangeObjectFields.h:98
virtual std::string name() const override
Definition MRChangeObjectFields.h:154
only for bindings generation
Definition MRCameraOrientationPlugin.h:8