paysages3d/src/rendering/Scenery.h

81 lines
2.3 KiB
C
Raw Normal View History

#ifndef SCENERY_H
#define SCENERY_H
#include "rendering_global.h"
2013-10-30 14:39:56 +00:00
#include "BaseDefinition.h"
2013-11-07 08:37:11 +00:00
class AtmosphereDefinition;
class CameraDefinition;
class CloudsDefinition;
class TerrainDefinition;
class TexturesDefinition;
class Renderer;
typedef void (*SceneryCustomDataCallback)(PackStream* stream, void* data);
/**
* @brief Global scenery management
*
* This class contains the whole scenery definition.
*/
2013-10-30 14:39:56 +00:00
class RENDERINGSHARED_EXPORT Scenery: private BaseDefinition
{
public:
Scenery();
2013-10-30 14:39:56 +00:00
virtual ~Scenery();
2013-11-10 16:04:38 +00:00
static Scenery* getCurrent();
void setCustomSaveCallbacks(SceneryCustomDataCallback callback_save, SceneryCustomDataCallback callback_load, void* data);
2013-11-13 19:07:35 +00:00
virtual void save(PackStream* stream) const override;
virtual void load(PackStream* stream) override;
2013-10-30 14:39:56 +00:00
void autoPreset(int seed);
void setAtmosphere(AtmosphereDefinition* atmosphere);
2013-11-13 19:07:35 +00:00
inline AtmosphereDefinition* getAtmosphere() const {return atmosphere;}
void getAtmosphere(AtmosphereDefinition* atmosphere);
void setCamera(CameraDefinition* camera);
2013-11-13 19:07:35 +00:00
inline CameraDefinition* getCamera() const {return camera;}
void getCamera(CameraDefinition* camera);
void setClouds(CloudsDefinition* clouds);
2013-11-13 19:07:35 +00:00
inline CloudsDefinition* getClouds() const {return clouds;}
void getClouds(CloudsDefinition* clouds);
void setTerrain(TerrainDefinition* terrain);
2013-11-13 19:07:35 +00:00
inline TerrainDefinition* getTerrain() const {return terrain;}
void getTerrain(TerrainDefinition* terrain);
void setTextures(TexturesDefinition* textures);
2013-11-13 19:07:35 +00:00
inline TexturesDefinition* getTextures() const {return textures;}
void getTextures(TexturesDefinition* textures);
void setWater(WaterDefinition* water);
2013-11-13 19:07:35 +00:00
inline WaterDefinition* getWater() const {return water;}
void getWater(WaterDefinition* water);
void bindToRenderer(Renderer* renderer);
private:
AtmosphereDefinition* atmosphere;
CameraDefinition* camera;
CloudsDefinition* clouds;
TerrainDefinition* terrain;
TexturesDefinition* textures;
WaterDefinition* water;
SceneryCustomDataCallback _custom_save;
SceneryCustomDataCallback _custom_load;
void* _custom_data;
};
// Transitional C-API
RENDERINGSHARED_EXPORT void sceneryRenderFirstPass(Renderer* renderer);
#endif // SCENERY_H