Now using scene graph nodes for instance and bound extents management.

--HG--
extra : convert_revision : svn%3A7752d6cf-9f14-4ad2-affc-04f1e67b81a5/trunk%4035
This commit is contained in:
kearwood
2012-04-12 06:04:15 +00:00
parent d4b80212cc
commit ff9bd874d3
9 changed files with 113 additions and 116 deletions

View File

@@ -45,10 +45,7 @@
/* OpenGL names for the renderbuffer and framebuffers used to render to this view */
GLuint viewFramebuffer, viewRenderbuffer;
KREngine *renderEngine;
KRScene *m_pScene;
KREngine *renderEngine;
}
// OpenGL drawing

View File

@@ -86,10 +86,6 @@
}
- (void)dealloc {
if(m_pScene) {
delete m_pScene;
m_pScene = NULL;
}
if(renderEngine) {
[renderEngine release];
renderEngine = nil;
@@ -102,9 +98,7 @@
#pragma mark OpenGL drawing
- (BOOL)loadObjects
{
m_pScene = new KRScene("default");
{
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSFileManager* fileManager = [NSFileManager defaultManager];
@@ -149,7 +143,7 @@
//m_scene.addInstance(pModelManager->getModel("HoganCombined"), KRMat4());
//m_scene.addInstance(pModelManager->getModel("polySurface12848"), KRMat4(), "PillarLightmap2k");
//m_scene.addInstance(pModelManager->getModel("Wall2"), KRMat4(), "Wall2_lightmap");
/*
std::map<std::string, KRModel *> models = pModelManager->getModels();
for(std::map<std::string, KRModel *>::iterator itr=models.begin(); itr != models.end(); itr++) {
std::string lightmap = (*itr).first;
@@ -157,6 +151,7 @@
m_pScene->addInstance((*itr).second->getName(), (*itr).second->getName(), KRMat4(), lightmap);
}
*/
[renderEngine setNearZ: 25.0];
[renderEngine setFarZ: 5000.0];
@@ -262,7 +257,7 @@
- (KRScene *)getScene;
{
return m_pScene;
return renderEngine.getSceneManager->getFirstScene();
}
#pragma mark -

View File

@@ -213,47 +213,21 @@
if(bUpdateParam) {
bUpdateParam = false;
if(iParam == [engine getParameterCount] && dRightSlider > 0.9) {
if(!bLoadedTestInstances) {
bLoadedTestInstances = true;
KRModelManager *pModelManager = [engine getModelManager];
KRScene *scene =[glView getScene];
srand ( time(NULL) );
for(int iHouse=1; iHouse < 12; iHouse++) {
for(int iInstance=0; iInstance < 20; iInstance++) {
char szName[100];
sprintf(szName, "fachwerkhaus%i", iHouse);
KRMat4 pos;
pos.rotate((double)rand() / (double)RAND_MAX * 6.282, Y_AXIS);
pos.translate((double)rand() / (double)RAND_MAX * 10000 - 5000, 0.0, (double)rand() / (double)RAND_MAX * 10000 - 5000);
scene->addInstance(szName, szName, pos, "");
}
}
}
} else {
double dValue = dRightSlider * ([engine getParameterMaxWithIndex: iParam] - [engine getParameterMinWithIndex: iParam]) + [engine getParameterMinWithIndex: iParam];
switch([engine getParameterTypeWithIndex: iParam]) {
case KRENGINE_PARAMETER_INT:
dValue = dRightSlider * ([engine getParameterMaxWithIndex: iParam] + 0.5 - [engine getParameterMinWithIndex: iParam]) + [engine getParameterMinWithIndex: iParam];
[engine setParameterValueWithIndex: iParam Value: dValue];
break;
case KRENGINE_PARAMETER_BOOL:
[engine setParameterValueWithIndex: iParam Value: 1.0 - dValue];
break;
case KRENGINE_PARAMETER_FLOAT:
[engine setParameterValueWithIndex: iParam Value: dValue];
break;
}
double dValue = dRightSlider * ([engine getParameterMaxWithIndex: iParam] - [engine getParameterMinWithIndex: iParam]) + [engine getParameterMinWithIndex: iParam];
switch([engine getParameterTypeWithIndex: iParam]) {
case KRENGINE_PARAMETER_INT:
dValue = dRightSlider * ([engine getParameterMaxWithIndex: iParam] + 0.5 - [engine getParameterMinWithIndex: iParam]) + [engine getParameterMinWithIndex: iParam];
[engine setParameterValueWithIndex: iParam Value: dValue];
break;
case KRENGINE_PARAMETER_BOOL:
[engine setParameterValueWithIndex: iParam Value: 1.0 - dValue];
break;
case KRENGINE_PARAMETER_FLOAT:
[engine setParameterValueWithIndex: iParam Value: dValue];
break;
}
}