MCPcopy Create free account
hub / github.com/assimp/assimp / CopyScene

Method CopyScene

code/Common/SceneCombiner.cpp:1013–1069  ·  view source on GitHub ↗

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

Source from the content-addressed store, hash-verified

1011
1012// ------------------------------------------------------------------------------------------------
1013void 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

Callers

nothing calls this directly

Calls 3

CopyPtrArrayFunction · 0.85
CopyFunction · 0.85
ScenePrivFunction · 0.85

Tested by

no test coverage detected