From f08e9491ed00b00aedba0eabf1caed33830fc0e2 Mon Sep 17 00:00:00 2001 From: Tobias Grundel Date: Thu, 21 Nov 2013 13:45:11 +0100 Subject: [PATCH] ObjReader --- Code/OysterGraphics/FileLoader/ObjReader.cpp | 26 ++++++++++++++++++++ Code/OysterGraphics/FileLoader/ObjReader.h | 2 ++ Code/OysterGraphics/Model/Model.h | 4 +-- Code/OysterGraphics/Model/ModelInfo.h | 2 +- 4 files changed, 31 insertions(+), 3 deletions(-) diff --git a/Code/OysterGraphics/FileLoader/ObjReader.cpp b/Code/OysterGraphics/FileLoader/ObjReader.cpp index 1723e776..e9839031 100644 --- a/Code/OysterGraphics/FileLoader/ObjReader.cpp +++ b/Code/OysterGraphics/FileLoader/ObjReader.cpp @@ -94,6 +94,32 @@ void OBJReader::readOBJFile( std::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( std::string strToSplit ) { diff --git a/Code/OysterGraphics/FileLoader/ObjReader.h b/Code/OysterGraphics/FileLoader/ObjReader.h index 84e9a7a2..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 @@ -48,6 +49,7 @@ class OBJReader ~OBJReader(); 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 {