void MeshSerializerTests::testSkeleton_Version_1_0() { if (!mSkeleton.isNull()) { SkeletonSerializer skeletonSerializer; skeletonSerializer.exportSkeleton(mSkeleton.get(), mSkeletonFullPath, SKELETON_VERSION_1_0); mSkeleton->reload(); } }
//-------------------------------------------------------------------------- void MeshSerializerTests::testSkeleton_Version_1_0() { UnitTestSuite::getSingletonPtr()->startTestMethod(__FUNCTION__); if (!mSkeleton.isNull()) { SkeletonSerializer skeletonSerializer; skeletonSerializer.exportSkeleton(mSkeleton.get(), mSkeletonFullPath, SKELETON_VERSION_1_0); mSkeleton->reload(); } }
//----------------------------------------------------------------------------- const AxisAlignedBox& XsiSkeletonExporter::exportSkeleton(const String& skeletonFileName, DeformerMap& deformers, float framesPerSecond, AnimationList& animList) { LogOgreAndXSI(L"** Begin OGRE Skeleton Export **"); copyDeformerMap(deformers); SkeletonPtr skeleton = SkeletonManager::getSingleton().create("export", ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME); // construct the hierarchy buildBoneHierarchy(skeleton.get(), deformers, animList); // progress report ProgressManager::getSingleton().progress(); establishInitialTransforms(deformers); // create animations mAABB.setNull(); createAnimations(skeleton.get(), deformers, framesPerSecond, animList, mAABB); // progress report ProgressManager::getSingleton().progress(); // Optimise skeleton->optimiseAllAnimations(); SkeletonSerializer ser; ser.exportSkeleton(skeleton.get(), skeletonFileName); // progress report ProgressManager::getSingleton().progress(); LogOgreAndXSI(L"** OGRE Skeleton Export Complete **"); cleanup(); return mAABB; }
//--------------------------------------------------------------------- void Skeleton::loadImpl(void) { SkeletonSerializer serializer; LogManager::getSingleton().stream() << "Skeleton: Loading " << mName; DataStreamPtr stream = ResourceGroupManager::getSingleton().openResource( mName, mGroup, true, this); serializer.importSkeleton(stream, this); // Load any linked skeletons LinkedSkeletonAnimSourceList::iterator i; for (i = mLinkedSkeletonAnimSourceList.begin(); i != mLinkedSkeletonAnimSourceList.end(); ++i) { i->pSkeleton = SkeletonManager::getSingleton().load( i->skeletonName, mGroup); } }
void MeshCombiner::consoleSkeletonCombiner() { StringVector vec = m_MeshCombinerConfig->getMultiSetting( "Skeleton" ); if( vec.empty() ) return; MergeSkeleton* ms = new MergeSkeleton(); for( StringVector::iterator it = vec.begin(); it != vec.end(); ++it ) { log( "Loading: " + *it ); try { SkeletonPtr skel = SkeletonManager::getSingleton().load( *it, ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME ); if( !skel.isNull() ) ms->addSkeleton( skel ); } catch( ... ) { } } // save SkeletonPtr skel = ms->bake(); SkeletonSerializer* skelSerializer = new SkeletonSerializer(); skelSerializer->exportSkeleton( skel.getPointer(), "./media/merged.skeleton" ); SkeletonManager::getSingleton().remove( skel->getHandle() ); delete skelSerializer; delete ms; }
void MeshSerializerTests::testMesh_Version_1_2() { // Exporting legacy Mesh not supported! // testMesh(MESH_VERSION_LEGACY); #ifdef I_HAVE_LOT_OF_FREE_TIME // My sandboxing test. Takes a long time to complete! // Runs on all meshes and exports all to every Lod version. char* groups [] = { "Popular", "General", "Tests" }; for (int i = 0; i < 3; i++) { StringVectorPtr meshes = ResourceGroupManager::getSingleton().findResourceNames(groups[i], "*.mesh"); StringVector::iterator it, itEnd; it = meshes->begin(); itEnd = meshes->end(); for (; it != itEnd; it++) { try { mMesh = MeshManager::getSingleton().load(*it, groups[i]); } catch(std::exception e) { // OutputDebugStringA(e.what()); } getResourceFullPath(mMesh, mMeshFullPath); if (!copyFile(mMeshFullPath + ".bak", mMeshFullPath)) { // If there is no backup, create one. copyFile(mMeshFullPath, mMeshFullPath + ".bak"); } mOrigMesh = mMesh->clone(mMesh->getName() + ".orig.mesh", mMesh->getGroup()); testMesh_XML(); testMesh(MESH_VERSION_1_10); testMesh(MESH_VERSION_1_8); testMesh(MESH_VERSION_1_7); testMesh(MESH_VERSION_1_4); testMesh(MESH_VERSION_1_0); } meshes = ResourceGroupManager::getSingleton().findResourceNames(groups[i], "*.skeleton"); it = meshes->begin(); itEnd = meshes->end(); for (; it != itEnd; it++) { mSkeleton = SkeletonManager::getSingleton().load(*it, groups[i]); getResourceFullPath(mSkeleton, mSkeletonFullPath); if (!copyFile(mSkeletonFullPath + ".bak", mSkeletonFullPath)) { // If there is no backup, create one. copyFile(mSkeletonFullPath, mSkeletonFullPath + ".bak"); } SkeletonSerializer skeletonSerializer; skeletonSerializer.exportSkeleton(mSkeleton.get(), mSkeletonFullPath, SKELETON_VERSION_1_8); mSkeleton->reload(); skeletonSerializer.exportSkeleton(mSkeleton.get(), mSkeletonFullPath, SKELETON_VERSION_1_0); mSkeleton->reload(); } } #endif /* ifdef I_HAVE_LOT_OF_FREE_TIME */ }