Moved Model::EnableDraw to SceneNode::EnableDrawing

Same goes for Model::IsDrawEnabled() => SceneNode::IsDrawingEnabled()
Is Drawable is now a pure virtual method from SceneNode


Former-commit-id: 217c6a21a98206ee0b283aaa216d419696a70faf
This commit is contained in:
Lynix
2013-08-23 13:16:42 +02:00
parent fe6816b089
commit 7fa8f3dafd
10 changed files with 87 additions and 39 deletions

View File

@@ -3,24 +3,32 @@
// For conditions of distribution and use, see copyright notice in Config.hpp
#include <Nazara/Graphics/SceneNode.hpp>
#include <Nazara/Graphics/Config.hpp>
#include <Nazara/Graphics/Scene.hpp>
#include <Nazara/Graphics/Debug.hpp>
NzSceneNode::NzSceneNode() :
m_scene(nullptr),
m_drawingEnabled(true),
m_visible(false)
{
}
NzSceneNode::NzSceneNode(const NzSceneNode& node) :
NzNode(node),
m_scene(node.m_scene),
NzSceneNode::NzSceneNode(const NzSceneNode& sceneNode) :
NzNode(sceneNode),
m_scene(sceneNode.m_scene),
m_drawingEnabled(sceneNode.m_drawingEnabled),
m_visible(false)
{
}
NzSceneNode::~NzSceneNode() = default;
void NzSceneNode::EnableDrawing(bool drawingEnabled)
{
m_drawingEnabled = drawingEnabled;
}
nzNodeType NzSceneNode::GetNodeType() const
{
return nzNodeType_Scene;
@@ -31,11 +39,34 @@ NzScene* NzSceneNode::GetScene() const
return m_scene;
}
bool NzSceneNode::IsDrawingEnabled() const
{
return m_drawingEnabled;
}
bool NzSceneNode::IsVisible() const
{
return m_visible;
}
NzSceneNode& NzSceneNode::operator=(const NzSceneNode& sceneNode)
{
m_drawingEnabled = sceneNode.m_drawingEnabled;
m_scene = sceneNode.m_scene;
m_visible = false;
return *this;
}
NzSceneNode& NzSceneNode::operator=(NzSceneNode&& sceneNode)
{
m_drawingEnabled = sceneNode.m_drawingEnabled;
m_scene = sceneNode.m_scene;
m_visible = sceneNode.m_visible;
return *this;
}
void NzSceneNode::OnParenting(const NzNode* parent)
{
if (parent)
@@ -101,7 +132,20 @@ void NzSceneNode::UpdateVisibility(const NzFrustumf& frustum)
{
bool wasVisible = m_visible;
m_visible = FrustumCull(frustum);
if (m_drawingEnabled)
{
#if NAZARA_GRAPHICS_SAFE
if (!IsDrawable())
{
NazaraError("SceneNode is not drawable");
return;
}
#endif
m_visible = FrustumCull(frustum);
}
else
m_visible = false;
if (m_visible != wasVisible)
OnVisibilityChange(m_visible);