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

Method Copy

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

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

Source from the content-addressed store, hash-verified

1074
1075// ------------------------------------------------------------------------------------------------
1076void SceneCombiner::Copy(aiMesh **_dest, const aiMesh *src) {
1077 if (nullptr == _dest || nullptr == src) {
1078 return;
1079 }
1080
1081 aiMesh *dest = *_dest = new aiMesh();
1082
1083 // get a flat copy
1084 *dest = *src;
1085
1086 // and reallocate all arrays
1087 GetArrayCopy(dest->mVertices, dest->mNumVertices);
1088 GetArrayCopy(dest->mNormals, dest->mNumVertices);
1089 GetArrayCopy(dest->mTangents, dest->mNumVertices);
1090 GetArrayCopy(dest->mBitangents, dest->mNumVertices);
1091
1092 unsigned int n = 0;
1093 while (dest->HasTextureCoords(n)) {
1094 GetArrayCopy(dest->mTextureCoords[n++], dest->mNumVertices);
1095 }
1096
1097 n = 0;
1098 while (dest->HasVertexColors(n)) {
1099 GetArrayCopy(dest->mColors[n++], dest->mNumVertices);
1100 }
1101
1102 // make a deep copy of all bones
1103 CopyPtrArray(dest->mBones, dest->mBones, dest->mNumBones);
1104
1105 // make a deep copy of all faces
1106 GetArrayCopy(dest->mFaces, dest->mNumFaces);
1107 for (unsigned int i = 0; i < dest->mNumFaces; ++i) {
1108 aiFace &f = dest->mFaces[i];
1109 GetArrayCopy(f.mIndices, f.mNumIndices);
1110 }
1111
1112 // make a deep copy of all blend shapes
1113 CopyPtrArray(dest->mAnimMeshes, dest->mAnimMeshes, dest->mNumAnimMeshes);
1114
1115 // make a deep copy of all texture coordinate names
1116 if (src->mTextureCoordsNames != nullptr) {
1117 dest->mTextureCoordsNames = new aiString *[AI_MAX_NUMBER_OF_TEXTURECOORDS] {};
1118 for (unsigned int i = 0; i < AI_MAX_NUMBER_OF_TEXTURECOORDS; ++i) {
1119 Copy(&dest->mTextureCoordsNames[i], src->mTextureCoordsNames[i]);
1120 }
1121 }
1122}
1123
1124// ------------------------------------------------------------------------------------------------
1125void SceneCombiner::Copy(aiAnimMesh **_dest, const aiAnimMesh *src) {

Callers 1

copyInputMethod · 0.80

Calls 6

GetArrayCopyFunction · 0.85
CopyPtrArrayFunction · 0.85
CopyFunction · 0.85
HasTextureCoordsMethod · 0.45
HasVertexColorsMethod · 0.45
ClearMethod · 0.45

Tested by

no test coverage detected