diff --git a/Code/OysterGraphics/FileLoader/ObjReader.cpp b/Code/OysterGraphics/FileLoader/ObjReader.cpp index b5ad5d4e..e9839031 100644 --- a/Code/OysterGraphics/FileLoader/ObjReader.cpp +++ b/Code/OysterGraphics/FileLoader/ObjReader.cpp @@ -15,14 +15,14 @@ OBJReader::~OBJReader() } -void OBJReader::readOBJFile( wstring fileName ) +void OBJReader::readOBJFile( std::wstring fileName ) { - fstream inStream; - string typeOfData = " "; + std::fstream inStream; + std::string typeOfData = " "; float vertexData; - string face1, face2, face3; + std::string face1, face2, face3; - inStream.open( fileName, fstream::in ); + inStream.open( fileName, std::fstream::in ); if( inStream.is_open() ) { @@ -94,12 +94,38 @@ void OBJReader::readOBJFile( wstring fileName ) inStream.close(); } +Oyster::Graphics::Render::ModelInfo OBJReader::toModel() +{ + Oyster::Graphics::Buffer b; + Oyster::Graphics::Buffer::BUFFER_INIT_DESC desc; + Oyster::Graphics::Render::ModelInfo modelInfo; + + desc.ElementSize = sizeof(OBJReader::OBJFormat); + desc.InitData = &this->_myOBJ[0]; + desc.NumElements = (UINT32)this->_myOBJ.size(); + desc.Type = Oyster::Graphics::Buffer::BUFFER_TYPE::CONSTANT_BUFFER_VS; + desc.Usage = Oyster::Graphics::Buffer::BUFFER_USAGE_IMMUTABLE; + HRESULT hr = S_OK; + + hr = b.Init(desc); + if(FAILED(hr)) + { + //Something isn't okay here + } + modelInfo.Indexed = false; + modelInfo.VertexCount = (int)desc.NumElements; + modelInfo.Vertices = b; + + + return modelInfo; +} + //Private functions -void OBJReader::stringSplit( string strToSplit ) +void OBJReader::stringSplit( std::string strToSplit ) { char delim = '/'; - string vPos, vNormal, vTexel; - stringstream aStream(strToSplit); + std::string vPos, vNormal, vTexel; + std::stringstream aStream(strToSplit); getline( aStream, vPos, delim ); getline( aStream, vTexel, delim ); getline( aStream, vNormal ); diff --git a/Code/OysterGraphics/FileLoader/ObjReader.h b/Code/OysterGraphics/FileLoader/ObjReader.h index 562d81fc..e5e2f67a 100644 --- a/Code/OysterGraphics/FileLoader/ObjReader.h +++ b/Code/OysterGraphics/FileLoader/ObjReader.h @@ -2,6 +2,7 @@ #define OBJREADER_H #include "..\..\Misc\Utilities.h" #include "..\..\OysterMath\OysterMath.h" +#include "..\Model\ModelInfo.h" //#include @@ -19,8 +20,8 @@ class OBJReader struct OBJMaterialData { - string _name; - string _mapKd; + std::string _name; + std::string _mapKd; float _kd[3]; float _ka[3]; float _tf[3]; @@ -35,19 +36,20 @@ class OBJReader std::vector _myOBJ; private: - vector _mVertexCoord, _mVertexNormal; - vector _mVertexTexture; + std::vector _mVertexCoord, _mVertexNormal; + std::vector _mVertexTexture; int _mNrOfCoords, _mNrOfNormals, _mNrOfTexels, _mNrOfFaces; int _mPos, _mNormal, _mTexel; - void stringSplit( string strToSplit ); + void stringSplit( std::string strToSplit ); void addToOBJarray(); public: OBJReader(); ~OBJReader(); - void readOBJFile( wstring fileName); + void readOBJFile( std::wstring fileName); + Oyster::Graphics::Render::ModelInfo toModel(); }; #endif \ No newline at end of file diff --git a/Code/OysterGraphics/Model/Model.h b/Code/OysterGraphics/Model/Model.h index 05a9a5c3..ef0d1051 100644 --- a/Code/OysterGraphics/Model/Model.h +++ b/Code/OysterGraphics/Model/Model.h @@ -11,7 +11,7 @@ //#include "ICollideable.h" #include "ModelInfo.h" -using namespace Oyster::Math; +//using namespace Oyster::Math; namespace Oyster { @@ -22,7 +22,7 @@ namespace Oyster struct Model { ModelInfo* info; - Float4x4 *World; + Oyster::Math::Float4x4 *World; bool Visible; }; } diff --git a/Code/OysterGraphics/Model/ModelInfo.h b/Code/OysterGraphics/Model/ModelInfo.h index 2c968b00..e78df441 100644 --- a/Code/OysterGraphics/Model/ModelInfo.h +++ b/Code/OysterGraphics/Model/ModelInfo.h @@ -10,7 +10,7 @@ //#include "OysterMath.h" //#include "ICollideable.h" -using namespace Oyster::Math; +//using namespace Oyster::Math; namespace Oyster {