OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2009, Google Inc. | 2 * Copyright 2009, Google Inc. |
3 * All rights reserved. | 3 * All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions are | 6 * modification, are permitted provided that the following conditions are |
7 * met: | 7 * met: |
8 * | 8 * |
9 * * Redistributions of source code must retain the above copyright | 9 * * Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
290 Serialize(writer_, primitive->start_index()); | 290 Serialize(writer_, primitive->start_index()); |
291 } | 291 } |
292 | 292 |
293 void Visit(Shape* shape) { | 293 void Visit(Shape* shape) { |
294 Visit(static_cast<ParamObject*>(shape)); | 294 Visit(static_cast<ParamObject*>(shape)); |
295 | 295 |
296 writer_->WritePropertyName("elements"); | 296 writer_->WritePropertyName("elements"); |
297 writer_->BeginCompacting(); | 297 writer_->BeginCompacting(); |
298 writer_->OpenArray(); | 298 writer_->OpenArray(); |
299 const ElementRefArray& elements = shape->GetElementRefs(); | 299 const ElementRefArray& elements = shape->GetElementRefs(); |
300 for (int i = 0; i != elements.size(); ++i) { | 300 for (ElementRefArray::size_type i = 0; i != elements.size(); ++i) { |
301 Serialize(writer_, elements[i].Get()); | 301 Serialize(writer_, elements[i].Get()); |
302 } | 302 } |
303 writer_->CloseArray(); | 303 writer_->CloseArray(); |
304 writer_->EndCompacting(); | 304 writer_->EndCompacting(); |
305 } | 305 } |
306 | 306 |
307 void Visit(Skin* skin) { | 307 void Visit(Skin* skin) { |
308 Visit(static_cast<NamedObject*>(skin)); | 308 Visit(static_cast<NamedObject*>(skin)); |
309 | 309 |
310 writer_->WritePropertyName("inverseBindPoseMatrices"); | 310 writer_->WritePropertyName("inverseBindPoseMatrices"); |
311 writer_->BeginCompacting(); | 311 writer_->BeginCompacting(); |
312 writer_->OpenArray(); | 312 writer_->OpenArray(); |
313 const Skin::MatrixArray& inverse_bind_pose_matrices = | 313 const Skin::MatrixArray& inverse_bind_pose_matrices = |
314 skin->inverse_bind_pose_matrices(); | 314 skin->inverse_bind_pose_matrices(); |
315 for (int i = 0; i != inverse_bind_pose_matrices.size(); ++i) { | 315 for (Skin::MatrixArray::size_type i = 0; |
| 316 i != inverse_bind_pose_matrices.size(); ++i) { |
316 const Matrix4& matrix = inverse_bind_pose_matrices[i]; | 317 const Matrix4& matrix = inverse_bind_pose_matrices[i]; |
317 Serialize(writer_, matrix); | 318 Serialize(writer_, matrix); |
318 } | 319 } |
319 writer_->CloseArray(); | 320 writer_->CloseArray(); |
320 writer_->EndCompacting(); | 321 writer_->EndCompacting(); |
321 } | 322 } |
322 | 323 |
323 void Visit(Transform* transform) { | 324 void Visit(Transform* transform) { |
324 Visit(static_cast<ParamObject*>(transform)); | 325 Visit(static_cast<ParamObject*>(transform)); |
325 | 326 |
326 writer_->WritePropertyName("shapes"); | 327 writer_->WritePropertyName("shapes"); |
327 writer_->BeginCompacting(); | 328 writer_->BeginCompacting(); |
328 writer_->OpenArray(); | 329 writer_->OpenArray(); |
329 const ShapeRefArray& shape_array = transform->GetShapeRefs(); | 330 const ShapeRefArray& shape_array = transform->GetShapeRefs(); |
330 for (int i = 0; i != shape_array.size(); ++i) { | 331 for (ShapeRefArray::size_type i = 0; i != shape_array.size(); ++i) { |
331 Serialize(writer_, shape_array[i]); | 332 Serialize(writer_, shape_array[i]); |
332 } | 333 } |
333 writer_->CloseArray(); | 334 writer_->CloseArray(); |
334 writer_->EndCompacting(); | 335 writer_->EndCompacting(); |
335 | 336 |
336 writer_->WritePropertyName("parent"); | 337 writer_->WritePropertyName("parent"); |
337 Serialize(writer_, transform->parent()); | 338 Serialize(writer_, transform->parent()); |
338 } | 339 } |
339 | 340 |
340 StructuredWriter* writer_; | 341 StructuredWriter* writer_; |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
420 WriteObjectBinaryRange(skin); | 421 WriteObjectBinaryRange(skin); |
421 } | 422 } |
422 | 423 |
423 void Visit(SkinEval* skin_eval) { | 424 void Visit(SkinEval* skin_eval) { |
424 Visit(static_cast<VertexSource*>(skin_eval)); | 425 Visit(static_cast<VertexSource*>(skin_eval)); |
425 | 426 |
426 writer_->WritePropertyName("vertexStreams"); | 427 writer_->WritePropertyName("vertexStreams"); |
427 writer_->OpenArray(); | 428 writer_->OpenArray(); |
428 const StreamParamVector& vertex_stream_params = | 429 const StreamParamVector& vertex_stream_params = |
429 skin_eval->vertex_stream_params(); | 430 skin_eval->vertex_stream_params(); |
430 for (int i = 0; i != vertex_stream_params.size(); ++i) { | 431 for (StreamParamVector::size_type i = 0; |
| 432 i != vertex_stream_params.size(); ++i) { |
431 const Stream& stream = vertex_stream_params[i]->stream(); | 433 const Stream& stream = vertex_stream_params[i]->stream(); |
432 writer_->OpenObject(); | 434 writer_->OpenObject(); |
433 writer_->WritePropertyName("stream"); | 435 writer_->WritePropertyName("stream"); |
434 Serialize(writer_, stream); | 436 Serialize(writer_, stream); |
435 | 437 |
436 if (vertex_stream_params[i]->input_connection() != NULL) { | 438 if (vertex_stream_params[i]->input_connection() != NULL) { |
437 writer_->WritePropertyName("bind"); | 439 writer_->WritePropertyName("bind"); |
438 Serialize(writer_, | 440 Serialize(writer_, |
439 GetObjectId( | 441 GetObjectId( |
440 vertex_stream_params[i]->input_connection()->owner())); | 442 vertex_stream_params[i]->input_connection()->owner())); |
441 } | 443 } |
442 | 444 |
443 writer_->CloseObject(); | 445 writer_->CloseObject(); |
444 } | 446 } |
445 writer_->CloseArray(); | 447 writer_->CloseArray(); |
446 } | 448 } |
447 | 449 |
448 void Visit(StreamBank* stream_bank) { | 450 void Visit(StreamBank* stream_bank) { |
449 Visit(static_cast<NamedObject*>(stream_bank)); | 451 Visit(static_cast<NamedObject*>(stream_bank)); |
450 | 452 |
451 writer_->WritePropertyName("vertexStreams"); | 453 writer_->WritePropertyName("vertexStreams"); |
452 writer_->OpenArray(); | 454 writer_->OpenArray(); |
453 const StreamParamVector& vertex_stream_params = | 455 const StreamParamVector& vertex_stream_params = |
454 stream_bank->vertex_stream_params(); | 456 stream_bank->vertex_stream_params(); |
455 for (int i = 0; i != vertex_stream_params.size(); ++i) { | 457 for (StreamParamVector::size_type i = 0; |
| 458 i != vertex_stream_params.size(); ++i) { |
456 const Stream& stream = vertex_stream_params[i]->stream(); | 459 const Stream& stream = vertex_stream_params[i]->stream(); |
457 writer_->OpenObject(); | 460 writer_->OpenObject(); |
458 writer_->WritePropertyName("stream"); | 461 writer_->WritePropertyName("stream"); |
459 Serialize(writer_, stream); | 462 Serialize(writer_, stream); |
460 | 463 |
461 if (vertex_stream_params[i]->input_connection() != NULL) { | 464 if (vertex_stream_params[i]->input_connection() != NULL) { |
462 writer_->WritePropertyName("bind"); | 465 writer_->WritePropertyName("bind"); |
463 Serialize(writer_, | 466 Serialize(writer_, |
464 GetObjectId( | 467 GetObjectId( |
465 vertex_stream_params[i]->input_connection()->owner())); | 468 vertex_stream_params[i]->input_connection()->owner())); |
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
750 } | 753 } |
751 } | 754 } |
752 | 755 |
753 | 756 |
754 writer_->WritePropertyName("objects"); | 757 writer_->WritePropertyName("objects"); |
755 writer_->OpenObject(); | 758 writer_->OpenObject(); |
756 | 759 |
757 std::vector<const ObjectBase::Class*> classes = | 760 std::vector<const ObjectBase::Class*> classes = |
758 class_manager_->GetAllClasses(); | 761 class_manager_->GetAllClasses(); |
759 | 762 |
760 for (int i = 0; i != classes.size(); ++i) { | 763 for (std::vector<const ObjectBase::Class*>::size_type i = 0; |
| 764 i != classes.size(); ++i) { |
761 const ObjectBase::Class* current_class = classes[i]; | 765 const ObjectBase::Class* current_class = classes[i]; |
762 if (!ObjectBase::ClassIsA(current_class, Param::GetApparentClass())) { | 766 if (!ObjectBase::ClassIsA(current_class, Param::GetApparentClass())) { |
763 std::vector<ObjectBase*> objects_of_class; | 767 std::vector<ObjectBase*> objects_of_class; |
764 for (ObjectBaseArray::const_iterator it = owned_objects.begin(); | 768 for (ObjectBaseArray::const_iterator it = owned_objects.begin(); |
765 it != owned_objects.end(); ++it) { | 769 it != owned_objects.end(); ++it) { |
766 if ((*it)->GetClassName() == current_class->name() && | 770 if ((*it)->GetClassName() == current_class->name() && |
767 !NameStartsWithPrefix(*it, ROOT_PREFIX, NULL)) { | 771 !NameStartsWithPrefix(*it, ROOT_PREFIX, NULL)) { |
768 objects_of_class.push_back(*it); | 772 objects_of_class.push_back(*it); |
769 } | 773 } |
770 } | 774 } |
771 if (objects_of_class.size() != 0) { | 775 if (objects_of_class.size() != 0) { |
772 writer_->WritePropertyName(current_class->name()); | 776 writer_->WritePropertyName(current_class->name()); |
773 writer_->OpenArray(); | 777 writer_->OpenArray(); |
774 for (int j = 0; j != objects_of_class.size(); ++j) { | 778 for (std::vector<ObjectBase*>::size_type j = 0; |
| 779 j != objects_of_class.size(); ++j) { |
775 writer_->OpenObject(); | 780 writer_->OpenObject(); |
776 SerializeObject(objects_of_class[j]); | 781 SerializeObject(objects_of_class[j]); |
777 writer_->CloseObject(); | 782 writer_->CloseObject(); |
778 } | 783 } |
779 writer_->CloseArray(); | 784 writer_->CloseArray(); |
780 } | 785 } |
781 } | 786 } |
782 } | 787 } |
783 | 788 |
784 writer_->CloseObject(); | 789 writer_->CloseObject(); |
(...skipping 26 matching lines...) Expand all Loading... |
811 | 816 |
812 void Serializer::SerializeSection(ObjectBase* object, Section section) { | 817 void Serializer::SerializeSection(ObjectBase* object, Section section) { |
813 DCHECK(section >= 0 && section < NUM_SECTIONS); | 818 DCHECK(section >= 0 && section < NUM_SECTIONS); |
814 sections_[section].visitor_->Accept(object); | 819 sections_[section].visitor_->Accept(object); |
815 } | 820 } |
816 | 821 |
817 void Serializer::SerializeParam(Param* param) { | 822 void Serializer::SerializeParam(Param* param) { |
818 param_visitor_->Accept(param); | 823 param_visitor_->Accept(param); |
819 } | 824 } |
820 } // namespace o3d | 825 } // namespace o3d |
OLD | NEW |