Merge branch 'master' into issue_2054
commit
df2a279895
|
@ -451,13 +451,6 @@ void ObjFileParser::getFace( aiPrimitiveType type ) {
|
||||||
if (type == aiPrimitiveType_POINT) {
|
if (type == aiPrimitiveType_POINT) {
|
||||||
ASSIMP_LOG_ERROR("Obj: Separator unexpected in point statement");
|
ASSIMP_LOG_ERROR("Obj: Separator unexpected in point statement");
|
||||||
}
|
}
|
||||||
if (iPos == 0) {
|
|
||||||
//if there are no texture coordinates in the file, but normals
|
|
||||||
if (!vt && vn) {
|
|
||||||
iPos = 1;
|
|
||||||
iStep++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
iPos++;
|
iPos++;
|
||||||
} else if( IsSpaceOrNewLine( *m_DataIt ) ) {
|
} else if( IsSpaceOrNewLine( *m_DataIt ) ) {
|
||||||
iPos = 0;
|
iPos = 0;
|
||||||
|
@ -474,6 +467,9 @@ void ObjFileParser::getFace( aiPrimitiveType type ) {
|
||||||
++iStep;
|
++iStep;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (iPos == 1 && !vt && vn)
|
||||||
|
iPos = 2; // skip texture coords for normals if there are no tex coords
|
||||||
|
|
||||||
if ( iVal > 0 ) {
|
if ( iVal > 0 ) {
|
||||||
// Store parsed index
|
// Store parsed index
|
||||||
if ( 0 == iPos ) {
|
if ( 0 == iPos ) {
|
||||||
|
|
|
@ -391,6 +391,39 @@ TEST_F(utObjImportExport, invalid_normals_uvs) {
|
||||||
EXPECT_NE(nullptr, scene);
|
EXPECT_NE(nullptr, scene);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(utObjImportExport, no_vt_just_vns) {
|
||||||
|
static const char *ObjModel =
|
||||||
|
"v 0 0 0\n"
|
||||||
|
"v 0 0 0\n"
|
||||||
|
"v 0 0 0\n"
|
||||||
|
"v 0 0 0\n"
|
||||||
|
"v 0 0 0\n"
|
||||||
|
"v 0 0 0\n"
|
||||||
|
"v 0 0 0\n"
|
||||||
|
"v 0 0 0\n"
|
||||||
|
"v 0 0 0\n"
|
||||||
|
"v 0 0 0\n"
|
||||||
|
"v 10 0 0\n"
|
||||||
|
"v 0 10 0\n"
|
||||||
|
"vn 0 0 1\n"
|
||||||
|
"vn 0 0 1\n"
|
||||||
|
"vn 0 0 1\n"
|
||||||
|
"vn 0 0 1\n"
|
||||||
|
"vn 0 0 1\n"
|
||||||
|
"vn 0 0 1\n"
|
||||||
|
"vn 0 0 1\n"
|
||||||
|
"vn 0 0 1\n"
|
||||||
|
"vn 0 0 1\n"
|
||||||
|
"vn 0 0 1\n"
|
||||||
|
"vn 0 0 1\n"
|
||||||
|
"vn 0 0 1\n"
|
||||||
|
"f 10/10 11/11 12/12\n";
|
||||||
|
|
||||||
|
Assimp::Importer myImporter;
|
||||||
|
const aiScene *scene = myImporter.ReadFileFromMemory(ObjModel, strlen(ObjModel), 0);
|
||||||
|
EXPECT_NE(nullptr, scene);
|
||||||
|
}
|
||||||
|
|
||||||
TEST_F( utObjImportExport, mtllib_after_g ) {
|
TEST_F( utObjImportExport, mtllib_after_g ) {
|
||||||
::Assimp::Importer importer;
|
::Assimp::Importer importer;
|
||||||
const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/OBJ/cube_mtllib_after_g.obj", aiProcess_ValidateDataStructure );
|
const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/OBJ/cube_mtllib_after_g.obj", aiProcess_ValidateDataStructure );
|
||||||
|
|
Loading…
Reference in New Issue