| 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 |