@ -1943,13 +1943,14 @@ bool ExportMesh(Mesh mesh, const char *fileName)
if ( IsFileExtension ( fileName , " .obj " ) )
{
/ / Estimated data size , it should be enough . . .
int dataSize = mesh . vertexCount * ( int ) strlen ( " v 0000.00f 0000.00f 0000.00f " ) +
mesh . vertexCount * ( int ) strlen ( " vt 0.000f 0.00f " ) +
mesh . vertexCount * ( int ) strlen ( " vn 0.000f 0.00f 0.00f " ) +
mesh . triangleCount * ( int ) strlen ( " f 00000/00000/00000 00000/00000/00000 00000/00000/00000 " ) ;
int vc = mesh . vertexCount ;
int dataSize = vc * ( int ) strlen ( " v -0000.000000f -0000.000000f -0000.000000f \n " ) +
vc * ( int ) strlen ( " vt -0.000000f -0.000000f \n " ) +
vc * ( int ) strlen ( " vn -0.0000f -0.0000f -0.0000f \n " ) +
mesh . triangleCount * snprintf ( NULL , 0 , " f %i/%i/%i %i/%i/%i %i/%i/%i \n " , vc , vc , vc , vc , vc , vc , vc , vc , vc ) ;
/ / NOTE : Text data buffer size is estimated considering mesh data size
char * txtData = ( char * ) RL_CALLOC ( dataSize * 2 + 2 000, sizeof ( char ) ) ;
char * txtData = ( char * ) RL_CALLOC ( dataSize + 1 000 , sizeof ( char ) ) ;
int byteCount = 0 ;
byteCount + = sprintf ( txtData + byteCount , " # ////////////////////////////////////////////////////////////////////////////////// \n " ) ;
@ -1969,17 +1970,17 @@ bool ExportMesh(Mesh mesh, const char *fileName)
for ( int i = 0 , v = 0 ; i < mesh . vertexCount ; i + + , v + = 3 )
{
byteCount + = sprintf ( txtData + byteCount , " v %.2f %.2f %.2 f \n " , mesh . vertices [ v ] , mesh . vertices [ v + 1 ] , mesh . vertices [ v + 2 ] ) ;
byteCount + = sprintf ( txtData + byteCount , " v %.6f %.6f %.6 f \n " , mesh . vertices [ v ] , mesh . vertices [ v + 1 ] , mesh . vertices [ v + 2 ] ) ;
}
for ( int i = 0 , v = 0 ; i < mesh . vertexCount ; i + + , v + = 2 )
{
byteCount + = sprintf ( txtData + byteCount , " vt %.3f %.3 f \n " , mesh . texcoords [ v ] , mesh . texcoords [ v + 1 ] ) ;
byteCount + = sprintf ( txtData + byteCount , " vt %.6f %.6 f \n " , mesh . texcoords [ v ] , mesh . texcoords [ v + 1 ] ) ;
}
for ( int i = 0 , v = 0 ; i < mesh . vertexCount ; i + + , v + = 3 )
{
byteCount + = sprintf ( txtData + byteCount , " vn %.3f %.3f %.3 f \n " , mesh . normals [ v ] , mesh . normals [ v + 1 ] , mesh . normals [ v + 2 ] ) ;
byteCount + = sprintf ( txtData + byteCount , " vn %.4f %.4f %.4 f \n " , mesh . normals [ v ] , mesh . normals [ v + 1 ] , mesh . normals [ v + 2 ] ) ;
}
if ( mesh . indices ! = NULL )
@ -2000,8 +2001,6 @@ bool ExportMesh(Mesh mesh, const char *fileName)
}
}
byteCount + = sprintf ( txtData + byteCount , " \n " ) ;
/ / NOTE : Text data length exported is determined by ' \0 ' ( NULL ) character
success = SaveFileText ( fileName , txtData ) ;