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