Big 3D update (WIP)

Former-commit-id: 9f55dae0521bded91640a7ea2d223a49a378c97c
This commit is contained in:
Lynix
2013-03-02 01:29:44 +01:00
parent a20818d66b
commit ab1fc99fcd
17 changed files with 1446 additions and 77 deletions

View File

@@ -9,16 +9,39 @@
#include <Nazara/Prerequesites.hpp>
#include <Nazara/3D/Enums.hpp>
#include <Nazara/Utility/AxisAlignedBox.hpp>
#include <Nazara/3D/RenderQueue.hpp>
#include <Nazara/3D/Scene.hpp>
#include <Nazara/Math/BoundingBox.hpp>
#include <Nazara/Math/Frustum.hpp>
#include <Nazara/Utility/Node.hpp>
class NzSceneNode : public NzNode
class NAZARA_API NzSceneNode : public NzNode
{
friend class NzScene;
public:
NzSceneNode();
NzSceneNode(const NzSceneNode& node);
virtual ~NzSceneNode();
virtual const NzAxisAlignedBox& GetAABB() const = 0;
virtual void AddToRenderQueue(NzRenderQueue& renderQueue) const = 0;
virtual const NzBoundingBoxf& GetBoundingBox() const = 0;
nzNodeType GetNodeType() const final;
NzScene* GetScene() const;
virtual nzSceneNodeType GetSceneNodeType() const = 0;
virtual bool IsVisible(const NzFrustumf& frustum) const = 0;
protected:
virtual void OnParenting(const NzNode* parent) override;
virtual void Register();
void SetScene(NzScene* scene);
virtual bool ShouldUpdateWhenVisible();
virtual void Unregister();
virtual void Update();
NzScene* m_scene;
};
#endif // NAZARA_SCENENODE_HPP