Set up scene graph objects required for managing light sources

--HG--
extra : convert_revision : svn%3A7752d6cf-9f14-4ad2-affc-04f1e67b81a5/trunk%4033
This commit is contained in:
kearwood
2012-04-12 00:43:53 +00:00
parent 2ea2924764
commit 4215bf8b22
39 changed files with 4253 additions and 195 deletions

View File

@@ -47,7 +47,7 @@
KREngine *renderEngine;
KRScene m_scene;
KRScene *m_pScene;
}

View File

@@ -86,6 +86,10 @@
}
- (void)dealloc {
if(m_pScene) {
delete m_pScene;
m_pScene = NULL;
}
if(renderEngine) {
[renderEngine release];
renderEngine = nil;
@@ -99,9 +103,18 @@
- (BOOL)loadObjects
{
m_pScene = new KRScene("default");
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSFileManager* fileManager = [NSFileManager defaultManager];
for (NSString* fileName in [fileManager contentsOfDirectoryAtPath: documentsDirectory error:nil]) {
if([fileName hasSuffix: @".scene"]) {
NSString* path = [NSString stringWithFormat:@"%@/%@", documentsDirectory, fileName];
[renderEngine loadResource: path];
}
}
for (NSString* fileName in [fileManager contentsOfDirectoryAtPath: documentsDirectory error:nil]) {
if([fileName hasSuffix: @".pvr"]) {
NSString* path = [NSString stringWithFormat:@"%@/%@", documentsDirectory, fileName];
@@ -134,7 +147,7 @@
for(std::map<std::string, KRModel *>::iterator itr=models.begin(); itr != models.end(); itr++) {
std::string lightmap = (*itr).first;
lightmap.append("_lightmap");
m_scene.addInstance((*itr).second, KRMat4(), lightmap);
m_pScene->addInstance((*itr).second->getName(), (*itr).second->getName(), KRMat4(), lightmap);
}
@@ -242,7 +255,7 @@
- (KRScene *)getScene;
{
return &m_scene;
return m_pScene;
}
#pragma mark -

View File

@@ -231,7 +231,7 @@
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(pModelManager->getModel(szName), pos, "");
scene->addInstance(szName, szName, pos, "");
}
}