------------------------------------------------------------------------------------------------
| 1011 | |
| 1012 | // ------------------------------------------------------------------------------------------------ |
| 1013 | void SceneCombiner::CopyScene(aiScene **_dest, const aiScene *src, bool allocate) { |
| 1014 | if (nullptr == _dest || nullptr == src) { |
| 1015 | return; |
| 1016 | } |
| 1017 | |
| 1018 | if (allocate) { |
| 1019 | *_dest = new aiScene(); |
| 1020 | } |
| 1021 | aiScene *dest = *_dest; |
| 1022 | ai_assert(nullptr != dest); |
| 1023 | |
| 1024 | // copy metadata |
| 1025 | if (nullptr != src->mMetaData) { |
| 1026 | dest->mMetaData = new aiMetadata(*src->mMetaData); |
| 1027 | } |
| 1028 | |
| 1029 | // copy animations |
| 1030 | dest->mNumAnimations = src->mNumAnimations; |
| 1031 | CopyPtrArray(dest->mAnimations, src->mAnimations, |
| 1032 | dest->mNumAnimations); |
| 1033 | |
| 1034 | // copy textures |
| 1035 | dest->mNumTextures = src->mNumTextures; |
| 1036 | CopyPtrArray(dest->mTextures, src->mTextures, |
| 1037 | dest->mNumTextures); |
| 1038 | |
| 1039 | // copy materials |
| 1040 | dest->mNumMaterials = src->mNumMaterials; |
| 1041 | CopyPtrArray(dest->mMaterials, src->mMaterials, |
| 1042 | dest->mNumMaterials); |
| 1043 | |
| 1044 | // copy lights |
| 1045 | dest->mNumLights = src->mNumLights; |
| 1046 | CopyPtrArray(dest->mLights, src->mLights, |
| 1047 | dest->mNumLights); |
| 1048 | |
| 1049 | // copy cameras |
| 1050 | dest->mNumCameras = src->mNumCameras; |
| 1051 | CopyPtrArray(dest->mCameras, src->mCameras, |
| 1052 | dest->mNumCameras); |
| 1053 | |
| 1054 | // copy meshes |
| 1055 | dest->mNumMeshes = src->mNumMeshes; |
| 1056 | CopyPtrArray(dest->mMeshes, src->mMeshes, |
| 1057 | dest->mNumMeshes); |
| 1058 | |
| 1059 | // now - copy the root node of the scene (deep copy, too) |
| 1060 | Copy(&dest->mRootNode, src->mRootNode); |
| 1061 | |
| 1062 | // and keep the flags ... |
| 1063 | dest->mFlags = src->mFlags; |
| 1064 | |
| 1065 | // source private data might be nullptr if the scene is user-allocated (i.e. for use with the export API) |
| 1066 | if (src->mPrivate != nullptr) { |
| 1067 | ScenePriv(dest)->mPPStepsApplied = ScenePriv(src) ? ScenePriv(src)->mPPStepsApplied : 0; |
| 1068 | } |
| 1069 | } |
| 1070 |
nothing calls this directly
no test coverage detected