From 7ee6d4f3f4bdf6447d90bf7e95723c589e887c4b Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Mon, 13 Jan 2003 14:11:06 +0000 Subject: [PATCH] Clean up to the cross platform support in DirectX plugin. --- src/osgPlugins/directx/ReaderWriterDirectX.cpp | 9 +++++++-- src/osgPlugins/directx/directx.h | 4 +++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/osgPlugins/directx/ReaderWriterDirectX.cpp b/src/osgPlugins/directx/ReaderWriterDirectX.cpp index 635937056..9f1ed1678 100644 --- a/src/osgPlugins/directx/ReaderWriterDirectX.cpp +++ b/src/osgPlugins/directx/ReaderWriterDirectX.cpp @@ -145,7 +145,7 @@ osg::Geode* ReaderWriterDirectX::convertFromDX(DX::Object& obj, * * - Polys are CW oriented */ - std::vector geomList; + vector geomList; unsigned int i; for (i = 0; i < meshMaterial->material.size(); i++) { @@ -220,7 +220,12 @@ osg::Geode* ReaderWriterDirectX::convertFromDX(DX::Object& obj, geom->addPrimitiveSet(new osg::DrawArrayLengths(osg::PrimitiveSet::POLYGON)); } - assert(mesh->faces.size() == meshMaterial->faceIndices.size()); + if (mesh->faces.size() != meshMaterial->faceIndices.size()) + { + osg::notify(osg::FATAL)<<"Error: internal error in DirectX .x loader,"<faces.size() == meshMaterial->faceIndices.size()"<faceIndices.size(); i++) { diff --git a/src/osgPlugins/directx/directx.h b/src/osgPlugins/directx/directx.h index e6e355e66..1f06c29a4 100644 --- a/src/osgPlugins/directx/directx.h +++ b/src/osgPlugins/directx/directx.h @@ -24,6 +24,8 @@ #ifndef _DIRECTX_H_ #define _DIRECTX_H_ +#include + #include #include #include @@ -40,7 +42,7 @@ namespace DX { float x,y,z; inline void normalize() { - float lenRecip = 1.0f / (float) sqrt(x * x + y * y + z * z); + float lenRecip = 1.0f / sqrtf(x * x + y * y + z * z); x *= lenRecip; y *= lenRecip; z *= lenRecip;