Cloud Interface Classes

class CloudProperties

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

Subclassed by simul::clouds::CellularCloudGrid

Public Functions

virtual simul::math::Vector3 GetOrigin(math::Vector3, float cloud_base_z, float w) const = 0

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

virtual int GetGenerationNumber() const = 0

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 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 CloudGridInterface

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

Public Functions

virtual void GetGrid(int &width, int &length, int &height) const = 0

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).