From: <axl...@us...> - 2008-12-05 12:22:32
|
Revision: 47 http://hgengine.svn.sourceforge.net/hgengine/?rev=47&view=rev Author: axlecrusher Date: 2008-12-05 11:49:09 +0000 (Fri, 05 Dec 2008) Log Message: ----------- Hide and cull Modified Paths: -------------- Mercury2/src/RenderableNode.cpp Mercury2/src/RenderableNode.h Modified: Mercury2/src/RenderableNode.cpp =================================================================== --- Mercury2/src/RenderableNode.cpp 2008-12-04 02:57:41 UTC (rev 46) +++ Mercury2/src/RenderableNode.cpp 2008-12-05 11:49:09 UTC (rev 47) @@ -7,6 +7,11 @@ REGISTER_NODE_TYPE(RenderableNode); +RenderableNode::RenderableNode() + :m_hidden(false) +{ +} + RenderableNode::~RenderableNode() { m_prerender.clear(); @@ -18,6 +23,8 @@ { list< MercuryAsset* >::iterator i; + if (m_hidden || IsCulled()) return; + MercuryMatrix m = FindGlobalMatrix(); m.Transpose(); glLoadMatrixf( m.Ptr() ); @@ -71,12 +78,7 @@ m_postrender.push_back(asset); } -/* -bool RenderableNode::IsMyType( MercuryNode* n ) -{ - return ( typeid(RenderableNode) == typeid(*n) ); -} -*/ + bool RenderableNode::IsInAssetList( MercuryAsset* asset ) const { std::list< MAutoPtr< MercuryAsset > >::const_iterator i; @@ -97,7 +99,10 @@ } void RenderableNode::LoadFromXML(const XMLNode& node) -{ +{ + if ( !node.Attribute("hidden").empty() ) + m_hidden = node.Attribute("hidden")=="true"?true:false; + for (XMLNode child = node.Child(); child.IsValid(); child = child.NextNode()) { if ( child.Name() == "asset" ) Modified: Mercury2/src/RenderableNode.h =================================================================== --- Mercury2/src/RenderableNode.h 2008-12-04 02:57:41 UTC (rev 46) +++ Mercury2/src/RenderableNode.h 2008-12-05 11:49:09 UTC (rev 47) @@ -11,6 +11,7 @@ class RenderableNode : public MercuryNode { public: + RenderableNode(); ~RenderableNode(); virtual void Render(); @@ -29,8 +30,12 @@ virtual void LoadFromXML(const XMLNode& node); const MercuryMatrix& FindGlobalMatrix() const; + + virtual bool IsCulled() { return false; } GENRTTI(RenderableNode); + protected: + bool m_hidden; private: bool IsInAssetList(MercuryAsset* asset) const; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |