(Scene) Added CreateNode and Clear methods
Former-commit-id: de92f4a4be45e5cbd1d2d83191300e0b46764f0e
This commit is contained in:
@@ -29,6 +29,12 @@ void NzScene::AddToVisibilityList(NzUpdatable* object)
|
||||
m_visibleUpdateList.push_back(object);
|
||||
}
|
||||
|
||||
void NzScene::Clear()
|
||||
{
|
||||
m_nodeMap.clear();
|
||||
m_nodes.clear();
|
||||
}
|
||||
|
||||
void NzScene::Cull()
|
||||
{
|
||||
#if NAZARA_GRAPHICS_SAFE
|
||||
@@ -48,8 +54,6 @@ void NzScene::Cull()
|
||||
RecursiveFrustumCull(renderQueue, m_viewer->GetFrustum(), &m_root);
|
||||
|
||||
///TODO: Occlusion culling
|
||||
|
||||
///TODO: Light culling
|
||||
}
|
||||
|
||||
void NzScene::Draw()
|
||||
@@ -77,7 +81,7 @@ void NzScene::Draw()
|
||||
if (m_renderTechniqueRanking > 0)
|
||||
{
|
||||
m_renderTechnique.reset(NzRenderTechniques::GetByRanking(m_renderTechniqueRanking-1, &m_renderTechniqueRanking));
|
||||
NazaraError("Render technique \"" + oldName + "\" failed, fallback to \"" + m_renderTechnique->GetName() + '"');
|
||||
NazaraError("Render technique \"" + oldName + "\" failed, falling back to \"" + m_renderTechnique->GetName() + '"');
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -333,6 +337,25 @@ NzScene::operator const NzSceneNode&() const
|
||||
return m_root;
|
||||
}
|
||||
|
||||
bool NzScene::RegisterSceneNode(const NzString& name, NzSceneNode* node)
|
||||
{
|
||||
if (!name.IsEmpty())
|
||||
{
|
||||
if (m_nodeMap.find(name) != m_nodeMap.end())
|
||||
{
|
||||
NazaraError("Node " + name + " is already registred");
|
||||
return false;
|
||||
}
|
||||
|
||||
m_nodeMap[name] = node;
|
||||
}
|
||||
|
||||
node->SetParent(m_root, true);
|
||||
|
||||
m_nodes.emplace_back(node);
|
||||
return true;
|
||||
}
|
||||
|
||||
void NzScene::RecursiveFrustumCull(NzAbstractRenderQueue* renderQueue, const NzFrustumf& frustum, NzNode* node)
|
||||
{
|
||||
for (NzNode* child : node->GetChilds())
|
||||
|
||||
Reference in New Issue
Block a user