Fix bounding box and some warnings

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2252 dfc29bdd-3216-0410-991c-e03cc46cb475
master
bitplane 2009-03-05 02:20:33 +00:00
parent ce44c10fa4
commit 6036a8e31e
1 changed files with 13 additions and 10 deletions

View File

@ -47,7 +47,7 @@ CPLYMeshFileLoader::~CPLYMeshFileLoader()
//! returns true if the file maybe is able to be loaded by this class //! returns true if the file maybe is able to be loaded by this class
bool CPLYMeshFileLoader::isALoadableFileExtension(const core::string<c16>& filename) const bool CPLYMeshFileLoader::isALoadableFileExtension(const core::string<c16>& filename) const
{ {
return core::hasFileExtension(filename, "ply" ); return core::hasFileExtension(filename, "ply");
} }
@ -243,9 +243,11 @@ IAnimatedMesh* CPLYMeshFileLoader::createMesh(io::IReadFile* file)
mb->recalculateBoundingBox(); mb->recalculateBoundingBox();
SMesh* m = new SMesh(); SMesh* m = new SMesh();
m->addMeshBuffer(mb); m->addMeshBuffer(mb);
m->recalculateBoundingBox();
mb->drop(); mb->drop();
animMesh = new SAnimatedMesh(); animMesh = new SAnimatedMesh();
animMesh->addMesh(m); animMesh->addMesh(m);
animMesh->recalculateBoundingBox();
m->drop(); m->drop();
} }
} }
@ -552,7 +554,7 @@ c8* CPLYMeshFileLoader::getNextLine()
if (pos >= EndPointer) if (pos >= EndPointer)
{ {
// get data from the file // get data from the file
if (File->getPos() < File->getSize()) if (!EndOfFile)
{ {
fillBuffer(); fillBuffer();
// reset line end pointer // reset line end pointer
@ -568,6 +570,7 @@ c8* CPLYMeshFileLoader::getNextLine()
// EOF // EOF
StartPointer = EndPointer-1; StartPointer = EndPointer-1;
*StartPointer = '\0'; *StartPointer = '\0';
return StartPointer;
} }
} }
else else
@ -626,7 +629,7 @@ f32 CPLYMeshFileLoader::getFloat(CPLYMeshFileLoader::E_PLY_PROPERTY_TYPE t)
StartPointer += 2; StartPointer += 2;
break; break;
case EPLYPT_INT32: case EPLYPT_INT32:
retVal = *(reinterpret_cast<s32*>(StartPointer)); retVal = f32(*(reinterpret_cast<s32*>(StartPointer)));
StartPointer += 4; StartPointer += 4;
break; break;
case EPLYPT_FLOAT32: case EPLYPT_FLOAT32:
@ -634,7 +637,7 @@ f32 CPLYMeshFileLoader::getFloat(CPLYMeshFileLoader::E_PLY_PROPERTY_TYPE t)
StartPointer += 4; StartPointer += 4;
break; break;
case EPLYPT_FLOAT64: case EPLYPT_FLOAT64:
retVal = *(reinterpret_cast<f64*>(StartPointer)); retVal = f32(*(reinterpret_cast<f64*>(StartPointer)));
StartPointer += 8; StartPointer += 8;
break; break;
case EPLYPT_LIST: case EPLYPT_LIST:
@ -645,7 +648,7 @@ f32 CPLYMeshFileLoader::getFloat(CPLYMeshFileLoader::E_PLY_PROPERTY_TYPE t)
} }
} }
else else
return 0.0f; retVal = 0.0f;
} }
else else
{ {
@ -659,7 +662,7 @@ f32 CPLYMeshFileLoader::getFloat(CPLYMeshFileLoader::E_PLY_PROPERTY_TYPE t)
break; break;
case EPLYPT_FLOAT32: case EPLYPT_FLOAT32:
case EPLYPT_FLOAT64: case EPLYPT_FLOAT64:
retVal = atof(word); retVal = f32(atof(word));
break; break;
case EPLYPT_LIST: case EPLYPT_LIST:
case EPLYPT_UNKNOWN: case EPLYPT_UNKNOWN:
@ -696,22 +699,22 @@ u32 CPLYMeshFileLoader::getInt(CPLYMeshFileLoader::E_PLY_PROPERTY_TYPE t)
StartPointer += 4; StartPointer += 4;
break; break;
case EPLYPT_FLOAT32: case EPLYPT_FLOAT32:
retVal = *(reinterpret_cast<f32*>(StartPointer)); retVal = (u32)(*(reinterpret_cast<f32*>(StartPointer)));
StartPointer += 4; StartPointer += 4;
break; break;
case EPLYPT_FLOAT64: case EPLYPT_FLOAT64:
retVal = *(reinterpret_cast<f64*>(StartPointer)); retVal = (u32)(*(reinterpret_cast<f64*>(StartPointer)));
StartPointer += 8; StartPointer += 8;
break; break;
case EPLYPT_LIST: case EPLYPT_LIST:
case EPLYPT_UNKNOWN: case EPLYPT_UNKNOWN:
default: default:
retVal = 0.0f; retVal = 0;
StartPointer++; // ouch! StartPointer++; // ouch!
} }
} }
else else
return 0; retVal = 0;
} }
else else
{ {