21 #include "CaelumPrecompiled.h" 22 #include "CloudSystem.h" 23 #include "FlatCloudLayer.h" 29 CloudSystem::CloudSystem(
30 Ogre::SceneManager *sceneMgr,
31 Ogre::SceneNode *cloudRoot)
34 mCloudRoot = cloudRoot;
46 std::auto_ptr<FlatCloudLayer> layer(
new FlatCloudLayer(mSceneMgr, mCloudRoot));
47 mLayers.push_back(layer.get());
48 return layer.release();
53 assert(layer != NULL);
54 mLayers.push_back(layer);
57 void CloudSystem::clearLayers()
59 for (
unsigned i = 0; i < mLayers.size(); i++)
66 CloudSystem::~CloudSystem()
71 void CloudSystem::update(
72 Ogre::Real timePassed,
73 const Ogre::Vector3 &sunDirection,
74 const Ogre::ColourValue &sunLightColour,
75 const Ogre::ColourValue &fogColour,
76 const Ogre::ColourValue &sunSphereColour)
78 for (uint i = 0; i < mLayers.size(); i++) {
79 assert(mLayers[i] != NULL);
80 mLayers[i]->update(timePassed, sunDirection, sunLightColour, fogColour, sunSphereColour);
84 void CloudSystem::forceLayerQueryFlags (uint flags) {
85 for (uint i = 0; i < mLayers.size(); i++) {
86 mLayers[i]->setQueryFlags (flags);
90 void CloudSystem::forceLayerVisibilityFlags (uint flags) {
91 for (uint i = 0; i < mLayers.size(); i++) {
92 mLayers[i]->setVisibilityFlags (flags);
void setHeight(Ogre::Real height)
Set the height of the cloud layer.
A flat cloud layer; drawn as a simple plane.