| 620 | } |
| 621 | |
| 622 | void AssimpShapeLoader::addMetaDataToTree(const aiMetadata* metaData, GuiTreeViewCtrl* tree) |
| 623 | { |
| 624 | S32 metaItem = tree->insertItem(0, "MetaData", String::ToString("%i", metaData->mNumProperties)); |
| 625 | |
| 626 | aiString valString; |
| 627 | aiVector3D valVec; |
| 628 | |
| 629 | for (U32 n = 0; n < metaData->mNumProperties; ++n) |
| 630 | { |
| 631 | String keyStr = metaData->mKeys[n].C_Str(); |
| 632 | keyStr += ": "; |
| 633 | switch (metaData->mValues[n].mType) |
| 634 | { |
| 635 | case AI_BOOL: |
| 636 | keyStr += ((bool)metaData->mValues[n].mData) ? "true" : "false"; |
| 637 | break; |
| 638 | case AI_INT32: |
| 639 | keyStr += String::ToString(*((S32*)(metaData->mValues[n].mData))); |
| 640 | break; |
| 641 | case AI_UINT64: |
| 642 | keyStr += String::ToString("%I64u", *((U64*)metaData->mValues[n].mData)); |
| 643 | break; |
| 644 | case AI_FLOAT: |
| 645 | keyStr += String::ToString(*((F32*)metaData->mValues[n].mData)); |
| 646 | break; |
| 647 | case AI_DOUBLE: |
| 648 | keyStr += String::ToString(*((F64*)metaData->mValues[n].mData)); |
| 649 | break; |
| 650 | case AI_AISTRING: |
| 651 | metaData->Get<aiString>(metaData->mKeys[n], valString); |
| 652 | keyStr += valString.C_Str(); |
| 653 | break; |
| 654 | case AI_AIVECTOR3D: |
| 655 | metaData->Get<aiVector3D>(metaData->mKeys[n], valVec); |
| 656 | keyStr += String::ToString("%f, %f, %f", valVec.x, valVec.y, valVec.z); |
| 657 | break; |
| 658 | default: |
| 659 | break; |
| 660 | } |
| 661 | |
| 662 | tree->insertItem(metaItem, keyStr.c_str(), String::ToString("%i", n)); |
| 663 | } |
| 664 | } |
| 665 | |
| 666 | bool AssimpShapeLoader::getMetabool(const char* key, bool& boolVal) |
| 667 | { |
nothing calls this directly
no test coverage detected