2012-08-29 21:43:11 +00:00
|
|
|
//
|
|
|
|
|
// KROctree.h
|
|
|
|
|
// KREngine
|
|
|
|
|
//
|
|
|
|
|
// Created by Kearwood Gilbert on 2012-08-29.
|
|
|
|
|
// Copyright (c) 2012 Kearwood Software. All rights reserved.
|
|
|
|
|
//
|
|
|
|
|
|
2012-08-30 19:31:38 +00:00
|
|
|
#ifndef KROCTREE_H
|
|
|
|
|
#define KROCTREE_H
|
2012-08-29 21:43:11 +00:00
|
|
|
|
|
|
|
|
#import "KREngine-common.h"
|
|
|
|
|
#include "KROctreeNode.h"
|
2012-08-30 19:31:38 +00:00
|
|
|
#include "KRMat4.h"
|
2012-08-29 21:43:11 +00:00
|
|
|
|
|
|
|
|
class KRNode;
|
|
|
|
|
|
|
|
|
|
class KROctree {
|
|
|
|
|
public:
|
|
|
|
|
KROctree();
|
|
|
|
|
~KROctree();
|
|
|
|
|
|
|
|
|
|
void add(KRNode *pNode);
|
|
|
|
|
void remove(KRNode *pNode);
|
|
|
|
|
void update(KRNode *pNode);
|
|
|
|
|
|
2012-08-30 19:31:38 +00:00
|
|
|
KROctreeNode *getRootNode();
|
|
|
|
|
std::set<KRNode *> &getOuterSceneNodes();
|
2012-09-05 18:14:08 +00:00
|
|
|
#if TARGET_OS_IPHONE
|
2012-08-30 22:37:44 +00:00
|
|
|
void getOcclusionQueryResults(std::set<KRAABB> &renderedBounds);
|
2012-09-05 18:14:08 +00:00
|
|
|
#endif
|
2012-08-29 21:43:11 +00:00
|
|
|
private:
|
|
|
|
|
KROctreeNode *m_pRootNode;
|
|
|
|
|
std::set<KRNode *>m_outerSceneNodes;
|
2012-08-30 19:31:38 +00:00
|
|
|
//std::set<KRMat4> visibleMVPs;
|
2012-08-29 21:43:11 +00:00
|
|
|
|
|
|
|
|
void shrink();
|
|
|
|
|
};
|
|
|
|
|
|
2012-08-30 19:31:38 +00:00
|
|
|
#endif /* defined(KROCTREE_H) */
|