Merged Obj and Engine Restructure

This commit is contained in:
lanariel 2013-11-21 14:17:03 +01:00
commit b419849fd4
4 changed files with 45 additions and 17 deletions

View File

@ -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 );

View File

@ -2,6 +2,7 @@
#define OBJREADER_H
#include "..\..\Misc\Utilities.h"
#include "..\..\OysterMath\OysterMath.h"
#include "..\Model\ModelInfo.h"
//#include <fstream>
@ -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<OBJFormat> _myOBJ;
private:
vector<Oyster::Math::Float3> _mVertexCoord, _mVertexNormal;
vector<Oyster::Math::Float2> _mVertexTexture;
std::vector<Oyster::Math::Float3> _mVertexCoord, _mVertexNormal;
std::vector<Oyster::Math::Float2> _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

View File

@ -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;
};
}

View File

@ -10,7 +10,7 @@
//#include "OysterMath.h"
//#include "ICollideable.h"
using namespace Oyster::Math;
//using namespace Oyster::Math;
namespace Oyster
{