Skip to content

Commit cc3c549

Browse files
Merge pull request #1166 from Geode-solutions/fix/model-copy-active
fix(ModelBuilder): copy component active status
2 parents 1765b7f + 6aba55d commit cc3c549

File tree

2 files changed

+36
-29
lines changed

2 files changed

+36
-29
lines changed

include/geode/model/representation/builder/detail/copy.hpp

Lines changed: 36 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -63,17 +63,18 @@ namespace geode
6363
ModelFrom::dim == BuilderTo::dim
6464
? builder_to.add_corner( id, corner.mesh().impl_name() )
6565
: builder_to.add_corner( id );
66-
builder_to.set_corner_name( id, corner.name() );
6766
}
6867
else
6968
{
7069
const auto& id =
7170
ModelFrom::dim == BuilderTo::dim
7271
? builder_to.add_corner( corner.mesh().impl_name() )
7372
: builder_to.add_corner();
74-
builder_to.set_corner_name( id, corner.name() );
7573
mapping.map( corner.id(), id );
7674
}
75+
const auto& id = mapping.in2out( corner.id() );
76+
builder_to.set_corner_name( id, corner.name() );
77+
builder_to.set_corner_active( id, corner.is_active() );
7778
}
7879
}
7980

@@ -89,17 +90,18 @@ namespace geode
8990
ModelFrom::dim == BuilderTo::dim
9091
? builder_to.add_line( id, line.mesh().impl_name() )
9192
: builder_to.add_line( id );
92-
builder_to.set_line_name( id, line.name() );
9393
}
9494
else
9595
{
9696
const auto& id =
9797
ModelFrom::dim == BuilderTo::dim
9898
? builder_to.add_line( line.mesh().impl_name() )
9999
: builder_to.add_line();
100-
builder_to.set_line_name( id, line.name() );
101100
mapping.map( line.id(), id );
102101
}
102+
const auto& id = mapping.in2out( line.id() );
103+
builder_to.set_line_name( id, line.name() );
104+
builder_to.set_line_active( id, line.is_active() );
103105
}
104106
}
105107

@@ -116,17 +118,18 @@ namespace geode
116118
? builder_to.add_surface(
117119
id, surface.mesh().impl_name() )
118120
: builder_to.add_surface( id );
119-
builder_to.set_surface_name( id, surface.name() );
120121
}
121122
else
122123
{
123124
const auto& id = ModelFrom::dim == BuilderTo::dim
124125
? builder_to.add_surface(
125126
surface.mesh().impl_name() )
126127
: builder_to.add_surface();
127-
builder_to.set_surface_name( id, surface.name() );
128128
mapping.map( surface.id(), id );
129129
}
130+
const auto& id = mapping.in2out( surface.id() );
131+
builder_to.set_surface_name( id, surface.name() );
132+
builder_to.set_surface_active( id, surface.is_active() );
130133
}
131134
}
132135

@@ -142,17 +145,18 @@ namespace geode
142145
ModelFrom::dim == BuilderTo::dim
143146
? builder_to.add_block( id, block.mesh().impl_name() )
144147
: builder_to.add_block( id );
145-
builder_to.set_block_name( id, block.name() );
146148
}
147149
else
148150
{
149151
const auto& id =
150152
ModelFrom::dim == BuilderTo::dim
151153
? builder_to.add_block( block.mesh().impl_name() )
152154
: builder_to.add_block();
153-
builder_to.set_block_name( id, block.name() );
154155
mapping.map( block.id(), id );
155156
}
157+
const auto& id = mapping.in2out( block.id() );
158+
builder_to.set_block_name( id, block.name() );
159+
builder_to.set_block_active( id, block.is_active() );
156160
}
157161
}
158162

@@ -166,16 +170,16 @@ namespace geode
166170
{
167171
const auto& id = mapping.in2out( model_boundary.id() );
168172
builder_to.add_model_boundary( id );
169-
builder_to.set_model_boundary_name(
170-
id, model_boundary.name() );
171173
}
172174
else
173175
{
174176
const auto& id = builder_to.add_model_boundary();
175-
builder_to.set_model_boundary_name(
176-
id, model_boundary.name() );
177177
mapping.map( model_boundary.id(), id );
178178
}
179+
const auto& id = mapping.in2out( model_boundary.id() );
180+
builder_to.set_model_boundary_name( id, model_boundary.name() );
181+
builder_to.set_model_boundary_active(
182+
id, model_boundary.is_active() );
179183
}
180184
}
181185

@@ -189,16 +193,17 @@ namespace geode
189193
{
190194
const auto& id = mapping.in2out( corner_collection.id() );
191195
builder_to.add_corner_collection( id );
192-
builder_to.set_corner_collection_name(
193-
id, corner_collection.name() );
194196
}
195197
else
196198
{
197199
const auto& id = builder_to.add_corner_collection();
198-
builder_to.set_corner_collection_name(
199-
id, corner_collection.name() );
200200
mapping.map( corner_collection.id(), id );
201201
}
202+
const auto& id = mapping.in2out( corner_collection.id() );
203+
builder_to.set_corner_collection_name(
204+
id, corner_collection.name() );
205+
builder_to.set_corner_collection_active(
206+
id, corner_collection.is_active() );
202207
}
203208
}
204209

@@ -212,16 +217,17 @@ namespace geode
212217
{
213218
const auto& id = mapping.in2out( line_collection.id() );
214219
builder_to.add_line_collection( id );
215-
builder_to.set_line_collection_name(
216-
id, line_collection.name() );
217220
}
218221
else
219222
{
220223
const auto& id = builder_to.add_line_collection();
221-
builder_to.set_line_collection_name(
222-
id, line_collection.name() );
223224
mapping.map( line_collection.id(), id );
224225
}
226+
const auto& id = mapping.in2out( line_collection.id() );
227+
builder_to.set_line_collection_name(
228+
id, line_collection.name() );
229+
builder_to.set_line_collection_active(
230+
id, line_collection.is_active() );
225231
}
226232
}
227233

@@ -235,16 +241,17 @@ namespace geode
235241
{
236242
const auto& id = mapping.in2out( surface_collection.id() );
237243
builder_to.add_surface_collection( id );
238-
builder_to.set_surface_collection_name(
239-
id, surface_collection.name() );
240244
}
241245
else
242246
{
243247
const auto& id = builder_to.add_surface_collection();
244-
builder_to.set_surface_collection_name(
245-
id, surface_collection.name() );
246248
mapping.map( surface_collection.id(), id );
247249
}
250+
const auto& id = mapping.in2out( surface_collection.id() );
251+
builder_to.set_surface_collection_name(
252+
id, surface_collection.name() );
253+
builder_to.set_surface_collection_active(
254+
id, surface_collection.is_active() );
248255
}
249256
}
250257

@@ -258,16 +265,17 @@ namespace geode
258265
{
259266
const auto& id = mapping.in2out( block_collection.id() );
260267
builder_to.add_block_collection( id );
261-
builder_to.set_block_collection_name(
262-
id, block_collection.name() );
263268
}
264269
else
265270
{
266271
const auto& id = builder_to.add_block_collection();
267-
builder_to.set_block_collection_name(
268-
id, block_collection.name() );
269272
mapping.map( block_collection.id(), id );
270273
}
274+
const auto& id = mapping.in2out( block_collection.id() );
275+
builder_to.set_block_collection_name(
276+
id, block_collection.name() );
277+
builder_to.set_block_collection_active(
278+
id, block_collection.is_active() );
271279
}
272280
}
273281

src/geode/model/mixin/core/component.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,6 @@ namespace geode
119119
component.impl_->backward_compatible_id() );
120120
component.set_name(
121121
component.impl_->backward_compatible_name() );
122-
component.impl_.reset();
123122
},
124123
[]( Archive& local_archive, Component& component ) {
125124
local_archive.ext( component,

0 commit comments

Comments
 (0)