125 if (!blendfile_load(
"usd" SEP_STR "usd_hierarchy_export_test.blend")) {
131 iterator->iterate_and_write();
134 used_writers expected_transforms = {
135 {
"OBCamera", {
"/Camera"}},
136 {
"OBDupli1", {
"/Dupli1"}},
137 {
"OBDupli2", {
"/ParentOfDupli2/Dupli2"}},
139 {
"/Dupli1/GEO_Head-0/GEO_Ear_L-1",
140 "/Ground plane/OutsideDupliGrandParent/OutsideDupliParent/GEO_Head/GEO_Ear_L",
141 "/ParentOfDupli2/Dupli2/GEO_Head-0/GEO_Ear_L-1"}},
143 {
"/Dupli1/GEO_Head-0/GEO_Ear_R-2",
144 "/Ground plane/OutsideDupliGrandParent/OutsideDupliParent/GEO_Head/GEO_Ear_R",
145 "/ParentOfDupli2/Dupli2/GEO_Head-0/GEO_Ear_R-2"}},
147 {
"/Dupli1/GEO_Head-0",
148 "/Ground plane/OutsideDupliGrandParent/OutsideDupliParent/GEO_Head",
149 "/ParentOfDupli2/Dupli2/GEO_Head-0"}},
151 {
"/Dupli1/GEO_Head-0/GEO_Nose-3",
152 "/Ground plane/OutsideDupliGrandParent/OutsideDupliParent/GEO_Head/GEO_Nose",
153 "/ParentOfDupli2/Dupli2/GEO_Head-0/GEO_Nose-3"}},
154 {
"OBGround plane", {
"/Ground plane"}},
155 {
"OBOutsideDupliGrandParent", {
"/Ground plane/OutsideDupliGrandParent"}},
156 {
"OBOutsideDupliParent", {
"/Ground plane/OutsideDupliGrandParent/OutsideDupliParent"}},
157 {
"OBParentOfDupli2", {
"/ParentOfDupli2"}}};
158 EXPECT_EQ(expected_transforms, iterator->transform_writers);
160 used_writers expected_data = {
161 {
"OBCamera", {
"/Camera/Camera"}},
163 {
"/Dupli1/GEO_Head-0/GEO_Ear_L-1/Ear",
164 "/Ground plane/OutsideDupliGrandParent/OutsideDupliParent/GEO_Head/GEO_Ear_L/Ear",
165 "/ParentOfDupli2/Dupli2/GEO_Head-0/GEO_Ear_L-1/Ear"}},
167 {
"/Dupli1/GEO_Head-0/GEO_Ear_R-2/Ear",
168 "/Ground plane/OutsideDupliGrandParent/OutsideDupliParent/GEO_Head/GEO_Ear_R/Ear",
169 "/ParentOfDupli2/Dupli2/GEO_Head-0/GEO_Ear_R-2/Ear"}},
171 {
"/Dupli1/GEO_Head-0/Face",
172 "/Ground plane/OutsideDupliGrandParent/OutsideDupliParent/GEO_Head/Face",
173 "/ParentOfDupli2/Dupli2/GEO_Head-0/Face"}},
175 {
"/Dupli1/GEO_Head-0/GEO_Nose-3/Nose",
176 "/Ground plane/OutsideDupliGrandParent/OutsideDupliParent/GEO_Head/GEO_Nose/Nose",
177 "/ParentOfDupli2/Dupli2/GEO_Head-0/GEO_Nose-3/Nose"}},
178 {
"OBGround plane", {
"/Ground plane/Plane"}},
179 {
"OBParentOfDupli2", {
"/ParentOfDupli2/Icosphere"}},
182 EXPECT_EQ(expected_data, iterator->data_writers);
185 EXPECT_EQ(0, iterator->hair_writers.size());
186 EXPECT_EQ(0, iterator->particle_writers.size());
190 iterator->transform_writers.clear();
191 iterator->data_writers.clear();
192 iterator->iterate_and_write();
193 EXPECT_EQ(expected_transforms, iterator->transform_writers);
194 EXPECT_EQ(expected_data, iterator->data_writers);
203 if (!blendfile_load(
"usd" SEP_STR "usd_hierarchy_export_test.blend")) {
210 used_writers expected_transforms = {
211 {
"OBCamera", {
"/Camera"}},
212 {
"OBDupli1", {
"/Dupli1"}},
213 {
"OBDupli2", {
"/ParentOfDupli2/Dupli2"}},
215 {
"/Dupli1/GEO_Head-0/GEO_Ear_L-1",
216 "/Ground plane/OutsideDupliGrandParent/OutsideDupliParent/GEO_Head/GEO_Ear_L",
217 "/ParentOfDupli2/Dupli2/GEO_Head-0/GEO_Ear_L-1"}},
219 {
"/Dupli1/GEO_Head-0/GEO_Ear_R-2",
220 "/Ground plane/OutsideDupliGrandParent/OutsideDupliParent/GEO_Head/GEO_Ear_R",
221 "/ParentOfDupli2/Dupli2/GEO_Head-0/GEO_Ear_R-2"}},
223 {
"/Dupli1/GEO_Head-0",
224 "/Ground plane/OutsideDupliGrandParent/OutsideDupliParent/GEO_Head",
225 "/ParentOfDupli2/Dupli2/GEO_Head-0"}},
227 {
"/Dupli1/GEO_Head-0/GEO_Nose-3",
228 "/Ground plane/OutsideDupliGrandParent/OutsideDupliParent/GEO_Head/GEO_Nose",
229 "/ParentOfDupli2/Dupli2/GEO_Head-0/GEO_Nose-3"}},
230 {
"OBGround plane", {
"/Ground plane"}},
231 {
"OBOutsideDupliGrandParent", {
"/Ground plane/OutsideDupliGrandParent"}},
232 {
"OBOutsideDupliParent", {
"/Ground plane/OutsideDupliGrandParent/OutsideDupliParent"}},
233 {
"OBParentOfDupli2", {
"/ParentOfDupli2"}}};
235 used_writers expected_data = {
236 {
"OBCamera", {
"/Camera/Camera"}},
238 {
"/Dupli1/GEO_Head-0/GEO_Ear_L-1/Ear",
239 "/Ground plane/OutsideDupliGrandParent/OutsideDupliParent/GEO_Head/GEO_Ear_L/Ear",
240 "/ParentOfDupli2/Dupli2/GEO_Head-0/GEO_Ear_L-1/Ear"}},
242 {
"/Dupli1/GEO_Head-0/GEO_Ear_R-2/Ear",
243 "/Ground plane/OutsideDupliGrandParent/OutsideDupliParent/GEO_Head/GEO_Ear_R/Ear",
244 "/ParentOfDupli2/Dupli2/GEO_Head-0/GEO_Ear_R-2/Ear"}},
246 {
"/Dupli1/GEO_Head-0/Face",
247 "/Ground plane/OutsideDupliGrandParent/OutsideDupliParent/GEO_Head/Face",
248 "/ParentOfDupli2/Dupli2/GEO_Head-0/Face"}},
250 {
"/Dupli1/GEO_Head-0/GEO_Nose-3/Nose",
251 "/Ground plane/OutsideDupliGrandParent/OutsideDupliParent/GEO_Head/GEO_Nose/Nose",
252 "/ParentOfDupli2/Dupli2/GEO_Head-0/GEO_Nose-3/Nose"}},
253 {
"OBGround plane", {
"/Ground plane/Plane"}},
254 {
"OBParentOfDupli2", {
"/ParentOfDupli2/Icosphere"}},
262 export_subset.
shapes =
false;
263 iterator->set_export_subset(export_subset);
265 iterator->iterate_and_write();
266 EXPECT_EQ(expected_transforms, iterator->transform_writers);
267 EXPECT_EQ(expected_data, iterator->data_writers);
270 iterator->transform_writers.clear();
271 iterator->data_writers.clear();
274 iterator->iterate_and_write();
275 EXPECT_EQ(expected_transforms, iterator->transform_writers);
276 EXPECT_EQ(0, iterator->data_writers.size());
279 iterator->transform_writers.clear();
280 iterator->data_writers.clear();
286 export_subset.
shapes =
true;
287 iterator->set_export_subset(export_subset);
289 iterator->iterate_and_write();
290 EXPECT_EQ(0, iterator->transform_writers.size());
291 EXPECT_EQ(expected_data, iterator->data_writers);
294 iterator->transform_writers.clear();
295 iterator->data_writers.clear();
301 export_subset.
shapes =
true;
302 iterator->set_export_subset(export_subset);
304 iterator->iterate_and_write();
305 EXPECT_EQ(expected_transforms, iterator->transform_writers);
306 EXPECT_EQ(expected_data, iterator->data_writers);
323 if (!blendfile_load(
"alembic" SEP_STR "visibility.blend")) {
329 iterator->iterate_and_write();
332 used_writers expected_transforms = {{
"OBInvisibleAnimatedCube", {
"/InvisibleAnimatedCube"}},
333 {
"OBInvisibleCube", {
"/InvisibleCube"}},
334 {
"OBVisibleCube", {
"/VisibleCube"}}};
335 EXPECT_EQ(expected_transforms, iterator->transform_writers);
337 used_writers expected_data = {{
"OBInvisibleAnimatedCube", {
"/InvisibleAnimatedCube/Cube"}},
338 {
"OBInvisibleCube", {
"/InvisibleCube/Cube"}},
339 {
"OBVisibleCube", {
"/VisibleCube/Cube"}}};
341 EXPECT_EQ(expected_data, iterator->data_writers);
344 EXPECT_EQ(0, iterator->hair_writers.size());
345 EXPECT_EQ(0, iterator->particle_writers.size());
EXPECT_EQ(BLI_expr_pylike_eval(expr, nullptr, 0, &result), EXPR_PYLIKE_INVALID)