Cloud Interface Classes

class simul::clouds::CloudProperties

A virtual interface that returns the keyframe-independent cloud properties.

Subclassed by simul::clouds::CellularCloudGrid

Public Functions

virtual see simul::clouds::CloudKeyframe::persistence Density of clouds for rendering Not used by all renderers virtual VIRTUAL_GetAndSet(float, MinimumLightElevationDegrees,"Minimum elevation for lighting - if light direction is below this angle, it will be raised - useful for sunsets.") virtual simul int GetGenerationNumber () const =0

get the effective origin in world co-ordinates, including wind offsets:

A number that is changed every time the clouds are regenerated.

virtual void GetExtents(simul::math::Vector3 &X1, simul::math::Vector3 &X2, float cloud_base_z, float w, float h) const = 0

Get the physical extents of the cloud volume in the x, y and z directions.

virtual const float *GetTransformToLightspaceMatrix(unsigned axis, const simul::math::Vector3 &dir, const simul::math::Vector3 &orig, const simul::math::Vector3 &scales) const = 0

Get a 4x4 matrix to transform from real space to lightspace.

virtual const float *GetTransformLightspaceToCloudspaceMatrix(unsigned axis, const simul::math::Vector3 &dir, const simul::math::Vector3 &orig, const simul::math::Vector3 &scales, float cloud_base_z, float w, float h) const = 0

Get a 4x4 matrix to transform from lightspace to cloudspace.

class simul::clouds::CloudInterface

The virtual interface for controlling and reading cloud data.

Public Functions

virtual float GetOpticalPathLength(float cloud_base_z, float w, float h, const simul::math::Vector3 &X, const simul::math::Vector3 &dir, float time, float cloudiness, float extinction, float diffusivity) const = 0

At the 3D Position X, find the optical density of cloud in the direction dir.

virtual float GetCloudDensity(float cloud_base_z, float width, float height, const simul::math::Vector3 &X, float time, float cloudiness, float extinction, float diffusivity) const = 0

Get the normalized cloud density at real-world position X.

virtual simul::math::NoiseInterface *GetNoiseInterface() = 0

Get the noise object.

class simul::clouds::CloudGridInterface

The virtual interface for controlling and reading a grid of cloud data.

Public Functions

Z (Up-Down) axis grid size of volumetric texture.")  virtual void GetGrid(int &width

Get the grid width (x size), length (y size) and height (z size).

virtual void SetGrid(int width, int length, int height) = 0

Set the grid width (x size), length (y size) and height (z size).