Collada exporter: fix invalid access to already release scene after
reimporting exported scene.pull/682/head
parent
6be8df5fde
commit
95c20cb5ab
|
@ -49,32 +49,48 @@ TEST_F(ColladaExportCamera, testExportCamera)
|
||||||
|
|
||||||
|
|
||||||
EXPECT_EQ(AI_SUCCESS,ex->Export(pTest,"collada",file));
|
EXPECT_EQ(AI_SUCCESS,ex->Export(pTest,"collada",file));
|
||||||
|
const unsigned int origNumCams( pTest->mNumCameras );
|
||||||
|
float *origFOV = new float[ origNumCams ];
|
||||||
|
float *orifClipPlaneNear = new float[ origNumCams ];
|
||||||
|
float *orifClipPlaneFar = new float[ origNumCams ];
|
||||||
|
aiString *names = new aiString[ origNumCams ];
|
||||||
|
aiVector3D *pos = new aiVector3D[ origNumCams ];
|
||||||
|
for (size_t i = 0; i < origNumCams; i++) {
|
||||||
|
const aiCamera *orig = pTest->mCameras[ i ];
|
||||||
|
origFOV[ i ] = orig->mHorizontalFOV;
|
||||||
|
orifClipPlaneNear[ i ] = orig->mClipPlaneNear;
|
||||||
|
orifClipPlaneFar[ i ] = orig->mClipPlaneFar;
|
||||||
|
names[ i ] = orig->mName;
|
||||||
|
pos[ i ] = orig->mPosition;
|
||||||
|
}
|
||||||
const aiScene* imported = im->ReadFile(file,0);
|
const aiScene* imported = im->ReadFile(file,0);
|
||||||
|
|
||||||
ASSERT_TRUE(imported!=NULL);
|
ASSERT_TRUE(imported!=NULL);
|
||||||
|
|
||||||
EXPECT_TRUE( imported->HasCameras() );
|
EXPECT_TRUE( imported->HasCameras() );
|
||||||
EXPECT_EQ(pTest->mNumCameras,imported->mNumCameras);
|
EXPECT_EQ( origNumCams, imported->mNumCameras );
|
||||||
|
|
||||||
for(size_t i=0; i< pTest->mNumCameras;i++){
|
for(size_t i=0; i< imported->mNumCameras;i++){
|
||||||
|
//const aiCamera *orig = pTest->mCameras[ i ];
|
||||||
const aiCamera *orig = pTest->mCameras[i];
|
|
||||||
const aiCamera *read = imported->mCameras[ i ];
|
const aiCamera *read = imported->mCameras[ i ];
|
||||||
|
|
||||||
EXPECT_TRUE(orig->mName==read->mName);
|
EXPECT_TRUE( names[ i ] == read->mName );
|
||||||
EXPECT_FLOAT_EQ(orig->mHorizontalFOV,read->mHorizontalFOV);
|
EXPECT_FLOAT_EQ( origFOV[ i ],read->mHorizontalFOV );
|
||||||
EXPECT_FLOAT_EQ(orig->mClipPlaneNear,read->mClipPlaneNear);
|
EXPECT_FLOAT_EQ( orifClipPlaneNear[ i ], read->mClipPlaneNear);
|
||||||
EXPECT_FLOAT_EQ(orig->mClipPlaneFar,read->mClipPlaneFar);
|
EXPECT_FLOAT_EQ( orifClipPlaneFar[ i ], read->mClipPlaneFar);
|
||||||
|
|
||||||
EXPECT_FLOAT_EQ(orig->mPosition.x,read->mPosition.x);
|
EXPECT_FLOAT_EQ( pos[ i ].x,read->mPosition.x);
|
||||||
EXPECT_FLOAT_EQ(orig->mPosition.y,read->mPosition.y);
|
EXPECT_FLOAT_EQ( pos[ i ].y,read->mPosition.y);
|
||||||
EXPECT_FLOAT_EQ(orig->mPosition.z,read->mPosition.z);
|
EXPECT_FLOAT_EQ( pos[ i ].z,read->mPosition.z);
|
||||||
}
|
}
|
||||||
|
delete [] origFOV;
|
||||||
|
delete [] orifClipPlaneNear;
|
||||||
|
delete [] orifClipPlaneFar;
|
||||||
|
delete [] names;
|
||||||
|
delete [] pos;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue