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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user