MCPcopy Create free account
hub / github.com/Overload-Technologies/Overload / CopyScene

Method CopyScene

Dependencies/assimp/code/Common/SceneCombiner.cpp:1017–1073  ·  view source on GitHub ↗

------------------------------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

1015
1016// ------------------------------------------------------------------------------------------------
1017void 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

Callers

nothing calls this directly

Calls 3

CopyPtrArrayFunction · 0.85
CopyFunction · 0.85
ScenePrivFunction · 0.85

Tested by

no test coverage detected