2013-05-18 21:43:19 +00:00
|
|
|
#ifndef _PAYSAGES_CLOUDS_DENSITY_H_
|
|
|
|
#define _PAYSAGES_CLOUDS_DENSITY_H_
|
|
|
|
|
|
|
|
#include "public.h"
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Coverage/density management in a cloud layer.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
2013-08-13 15:11:39 +00:00
|
|
|
* Get the coverage of a cloud layer [0.0;1.0]
|
2013-05-18 21:43:19 +00:00
|
|
|
*
|
|
|
|
* 0.0 means no cloud is present.
|
|
|
|
* 1.0 means full layer.
|
|
|
|
*/
|
2013-10-20 14:47:59 +00:00
|
|
|
RENDERINGSHARED_EXPORT double cloudsGetLayerCoverage(CloudsLayerDefinition* layer, Vector3 location);
|
2013-05-18 21:43:19 +00:00
|
|
|
|
|
|
|
/**
|
2013-08-13 15:11:39 +00:00
|
|
|
* Get the global density of a cloud layer at a given point [0.0;1.0].
|
2013-05-18 21:43:19 +00:00
|
|
|
*
|
|
|
|
* 0.0 means no cloud is present.
|
|
|
|
* 1.0 means full density (deep inside cloud).
|
|
|
|
*/
|
2013-10-20 14:47:59 +00:00
|
|
|
RENDERINGSHARED_EXPORT double cloudsGetLayerDensity(CloudsLayerDefinition* layer, Vector3 location, double coverage);
|
2013-05-18 21:43:19 +00:00
|
|
|
|
2013-08-13 15:11:39 +00:00
|
|
|
/**
|
|
|
|
* Get the local density of a cloud layer at a given point inside an edge [0.0;1.0].
|
|
|
|
*/
|
2013-10-20 14:47:59 +00:00
|
|
|
RENDERINGSHARED_EXPORT double cloudsGetEdgeDensity(CloudsLayerDefinition* layer, Vector3 location, double layer_density);
|
2013-08-13 15:11:39 +00:00
|
|
|
|
2013-05-18 21:43:19 +00:00
|
|
|
/*
|
|
|
|
* Bind fake density functions to a renderer.
|
|
|
|
*/
|
2013-10-20 14:47:59 +00:00
|
|
|
RENDERINGSHARED_EXPORT void cloudsBindFakeDensityToRenderer(CloudsRenderer* renderer);
|
2013-05-18 21:43:19 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
* Bind real density functions to a renderer.
|
|
|
|
*/
|
2013-10-20 14:47:59 +00:00
|
|
|
RENDERINGSHARED_EXPORT void cloudsBindRealDensityToRenderer(CloudsRenderer* renderer);
|
2013-05-18 21:43:19 +00:00
|
|
|
|
|
|
|
#endif
|