Michaël Lemaire
b46060f3c4
git-svn-id: https://subversion.assembla.com/svn/thunderk/paysages@500 b1fd45b6-86a6-48da-8261-f70d1f35bdcc
71 lines
1.8 KiB
C
71 lines
1.8 KiB
C
#ifndef _PAYSAGES_WATER_H_
|
|
#define _PAYSAGES_WATER_H_
|
|
|
|
#include "tools/color.h"
|
|
#include "tools/euclid.h"
|
|
#include "tools/lighting.h"
|
|
#include "tools/pack.h"
|
|
#include "renderer.h"
|
|
#include "noise.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef enum
|
|
{
|
|
WATER_PRESET_LAKE,
|
|
WATER_PRESET_SEA
|
|
} WaterPreset;
|
|
|
|
typedef struct
|
|
{
|
|
double height;
|
|
double transparency;
|
|
double reflection;
|
|
SurfaceMaterial material;
|
|
Color depth_color;
|
|
double transparency_depth;
|
|
double lighting_depth;
|
|
|
|
double scaling;
|
|
double turbulence;
|
|
double waves_height;
|
|
double detail_height;
|
|
|
|
double foam_coverage;
|
|
SurfaceMaterial foam_material;
|
|
|
|
NoiseGenerator* _waves_noise;
|
|
} WaterDefinition;
|
|
|
|
typedef struct
|
|
{
|
|
Vector3 location;
|
|
Color base;
|
|
Color reflected;
|
|
Color refracted;
|
|
Color foam;
|
|
Color final;
|
|
} WaterResult;
|
|
|
|
void waterSave(PackStream* stream, WaterDefinition* definition);
|
|
void waterLoad(PackStream* stream, WaterDefinition* definition);
|
|
|
|
WaterDefinition waterCreateDefinition();
|
|
void waterDeleteDefinition(WaterDefinition* definition);
|
|
void waterAutoPreset(WaterDefinition* definition, WaterPreset preset);
|
|
void waterCopyDefinition(WaterDefinition* source, WaterDefinition* destination);
|
|
void waterValidateDefinition(WaterDefinition* definition);
|
|
|
|
HeightInfo waterGetHeightInfo(WaterDefinition* definition);
|
|
Color waterLightFilter(WaterDefinition* definition, Renderer* renderer, Color light, Vector3 location, Vector3 light_location, Vector3 direction_to_light);
|
|
WaterResult waterGetColorDetail(WaterDefinition* definition, Renderer* renderer, Vector3 location, Vector3 look);
|
|
Color waterGetColor(WaterDefinition* definition, Renderer* renderer, Vector3 location, Vector3 look);
|
|
void waterRender(WaterDefinition* definition, Renderer* renderer);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|