Merged 2D and 3D modules into Graphics module

Former-commit-id: 33bf0fbe727e50e864bc52680c95a106ada508e9
This commit is contained in:
Lynix
2013-04-03 01:14:55 +02:00
parent e52412577b
commit 34dbd19385
50 changed files with 168 additions and 393 deletions

View File

@@ -0,0 +1,63 @@
// Copyright (C) 2013 Jérôme Leclercq
// This file is part of the "Nazara Engine - Graphics module"
// For conditions of distribution and use, see copyright notice in Config.hpp
#pragma once
#ifndef NAZARA_SCENE_HPP
#define NAZARA_SCENE_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Core/Color.hpp>
#include <Nazara/Core/Updatable.hpp>
#include <Nazara/Graphics/Background.hpp>
#include <Nazara/Math/Frustum.hpp>
class NzCamera;
class NzLight;
class NzModel;
class NzNode;
class NzRenderQueue;
class NzSceneNode;
struct NzSceneImpl;
class NAZARA_API NzScene
{
friend NzCamera;
public:
NzScene();
~NzScene();
void AddToVisibilityList(NzUpdatable* object);
void Cull();
void Draw();
const NzCamera* GetActiveCamera() const;
NzBackground* GetBackground() const;
NzSceneNode& GetRoot() const;
float GetUpdateTime() const;
unsigned int GetUpdatePerSecond() const;
void RegisterForUpdate(NzUpdatable* object);
void SetAmbientColor(const NzColor& color);
void SetBackground(NzBackground* background);
void SetUpdatePerSecond(unsigned int updatePerSecond);
void UnregisterForUpdate(NzUpdatable* object);
void Update();
void UpdateVisible();
operator const NzSceneNode&() const;
private:
void RecursiveFrustumCull(NzRenderQueue& renderQueue, const NzFrustumf& frustum, NzNode* node);
void SetActiveCamera(const NzCamera* camera);
NzSceneImpl* m_impl;
};
#endif // NAZARA_SCENE_HPP