|
|
@@ -1,6 +1,6 @@
|
|
|
#include <cstring>
|
|
|
#include <GL/glew.h>
|
|
|
-#include "LightProps.h"
|
|
|
+#include "LightData.h"
|
|
|
#include "Parser.h"
|
|
|
#include "Texture.h"
|
|
|
|
|
|
@@ -8,7 +8,7 @@
|
|
|
//======================================================================================================================
|
|
|
// Constructor =
|
|
|
//======================================================================================================================
|
|
|
-LightProps::LightProps():
|
|
|
+LightData::LightData():
|
|
|
Resource(RT_LIGHT_PROPS),
|
|
|
diffuseCol(0.5),
|
|
|
specularCol(0.5),
|
|
|
@@ -19,31 +19,35 @@ LightProps::LightProps():
|
|
|
fovY(M::PI/4.0)
|
|
|
{}
|
|
|
|
|
|
+
|
|
|
//======================================================================================================================
|
|
|
// load =
|
|
|
//======================================================================================================================
|
|
|
-bool LightProps::load(const char* filename)
|
|
|
+bool LightData::load(const char* filename)
|
|
|
{
|
|
|
Scanner scanner;
|
|
|
- if(!scanner.loadFile(filename)) return false;
|
|
|
+ if(!scanner.loadFile(filename))
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
const Scanner::Token* token;
|
|
|
|
|
|
- do
|
|
|
+ while(true)
|
|
|
{
|
|
|
token = &scanner.getNextToken();
|
|
|
|
|
|
- //** DIFFUSE_COL **
|
|
|
+ // DIFFUSE_COL
|
|
|
if(token->getCode() == Scanner::TC_IDENTIFIER && !strcmp(token->getValue().getString(), "DIFFUSE_COLOR"))
|
|
|
{
|
|
|
Parser::parseArrOfNumbers<float>(scanner, true, true, 3, &diffuseCol[0]);
|
|
|
}
|
|
|
- //** SPECULAR_COL **
|
|
|
+ // SPECULAR_COL
|
|
|
else if(token->getCode() == Scanner::TC_IDENTIFIER && !strcmp(token->getValue().getString(), "SPECULAR_COLOR"))
|
|
|
{
|
|
|
Parser::parseArrOfNumbers<float>(scanner, true, true, 3, &specularCol[0]);
|
|
|
}
|
|
|
- //** RADIUS **
|
|
|
+ // RADIUS
|
|
|
else if(token->getCode() == Scanner::TC_IDENTIFIER && !strcmp(token->getValue().getString(), "RADIUS"))
|
|
|
{
|
|
|
token = &scanner.getNextToken();
|
|
|
@@ -56,7 +60,7 @@ bool LightProps::load(const char* filename)
|
|
|
radius = (token->getDataType() == Scanner::DT_FLOAT) ? token->getValue().getFloat() :
|
|
|
float(token->getValue().getInt());
|
|
|
}
|
|
|
- //** CASTS_SHADOW **
|
|
|
+ // CASTS_SHADOW
|
|
|
else if(token->getCode() == Scanner::TC_IDENTIFIER && !strcmp(token->getValue().getString(), "CASTS_SHADOW"))
|
|
|
{
|
|
|
token = &scanner.getNextToken();
|
|
|
@@ -68,7 +72,7 @@ bool LightProps::load(const char* filename)
|
|
|
|
|
|
castsShadow_ = token->getValue().getInt();
|
|
|
}
|
|
|
- //** DISTANCE **
|
|
|
+ // DISTANCE
|
|
|
else if(token->getCode() == Scanner::TC_IDENTIFIER && !strcmp(token->getValue().getString(), "DISTANCE"))
|
|
|
{
|
|
|
token = &scanner.getNextToken();
|
|
|
@@ -81,7 +85,7 @@ bool LightProps::load(const char* filename)
|
|
|
distance = (token->getDataType() == Scanner::DT_FLOAT) ? token->getValue().getFloat() :
|
|
|
float(token->getValue().getInt());
|
|
|
}
|
|
|
- //** FOV_X **
|
|
|
+ // FOV_X
|
|
|
else if(token->getCode() == Scanner::TC_IDENTIFIER && !strcmp(token->getValue().getString(), "FOV_X"))
|
|
|
{
|
|
|
token = &scanner.getNextToken();
|
|
|
@@ -94,7 +98,7 @@ bool LightProps::load(const char* filename)
|
|
|
fovX = (token->getDataType() == Scanner::DT_FLOAT) ? token->getValue().getFloat() :
|
|
|
float(token->getValue().getInt());
|
|
|
}
|
|
|
- //** FOV_Y **
|
|
|
+ // FOV_Y
|
|
|
else if(token->getCode() == Scanner::TC_IDENTIFIER && !strcmp(token->getValue().getString(), "FOV_Y"))
|
|
|
{
|
|
|
token = &scanner.getNextToken();
|
|
|
@@ -107,7 +111,7 @@ bool LightProps::load(const char* filename)
|
|
|
fovY = (token->getDataType() == Scanner::DT_FLOAT) ? token->getValue().getFloat() :
|
|
|
float(token->getValue().getInt());
|
|
|
}
|
|
|
- //** TEXTURE **
|
|
|
+ // TEXTURE
|
|
|
else if(token->getCode() == Scanner::TC_IDENTIFIER && !strcmp(token->getValue().getString(), "TEXTURE"))
|
|
|
{
|
|
|
token = &scanner.getNextToken();
|
|
|
@@ -134,8 +138,7 @@ bool LightProps::load(const char* filename)
|
|
|
PARSE_ERR_UNEXPECTED();
|
|
|
return false;
|
|
|
}
|
|
|
-
|
|
|
- }while(true);
|
|
|
+ }
|
|
|
|
|
|
return true;
|
|
|
}
|