2011-12-10 13:25:22 +00:00
|
|
|
#ifndef _PAYSAGES_TYPES_H_
|
|
|
|
#define _PAYSAGES_TYPES_H_
|
|
|
|
|
2011-12-23 22:58:50 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
2011-12-10 13:25:22 +00:00
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
double x;
|
|
|
|
double y;
|
|
|
|
double z;
|
|
|
|
} Vector3;
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
double a;
|
|
|
|
double b;
|
|
|
|
double c;
|
|
|
|
double d;
|
|
|
|
double e;
|
|
|
|
double f;
|
|
|
|
double g;
|
|
|
|
double h;
|
|
|
|
double i;
|
|
|
|
double j;
|
|
|
|
double k;
|
|
|
|
double l;
|
|
|
|
double m;
|
|
|
|
double n;
|
|
|
|
double o;
|
|
|
|
double p;
|
|
|
|
} Matrix4;
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
double r;
|
|
|
|
double g;
|
|
|
|
double b;
|
|
|
|
double a;
|
|
|
|
} Color;
|
|
|
|
|
|
|
|
#define MAX_COLORGRADATION_PARTS 10
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
double start;
|
|
|
|
Color col;
|
|
|
|
} _ColorGradationPart;
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
int nbparts;
|
|
|
|
_ColorGradationPart parts[MAX_COLORGRADATION_PARTS];
|
|
|
|
} ColorGradation;
|
|
|
|
|
|
|
|
struct RenderFragment;
|
|
|
|
|
|
|
|
typedef int(*f_RenderFragmentCallback)(struct RenderFragment*);
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
Vector3 location;
|
|
|
|
Vector3 normal;
|
|
|
|
Color color;
|
|
|
|
f_RenderFragmentCallback callback;
|
|
|
|
} Vertex;
|
|
|
|
|
|
|
|
typedef struct RenderFragment
|
|
|
|
{
|
|
|
|
int x;
|
|
|
|
int y;
|
|
|
|
double z;
|
|
|
|
Vertex vertex;
|
|
|
|
} RenderFragment;
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
int width;
|
|
|
|
int height;
|
|
|
|
} RenderContext;
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
int length;
|
|
|
|
int alloc_length;
|
|
|
|
int item_size;
|
|
|
|
int dirty;
|
|
|
|
void* data;
|
|
|
|
} Array;
|
|
|
|
|
|
|
|
struct NoiseLevel
|
|
|
|
{
|
|
|
|
double scaling;
|
|
|
|
double height;
|
|
|
|
double xoffset;
|
|
|
|
double yoffset;
|
|
|
|
double zoffset;
|
|
|
|
};
|
|
|
|
typedef struct NoiseLevel NoiseLevel;
|
|
|
|
typedef struct NoiseGenerator NoiseGenerator;
|
|
|
|
|
2011-12-23 22:58:50 +00:00
|
|
|
typedef struct Zone Zone;
|
2011-12-10 13:25:22 +00:00
|
|
|
|
|
|
|
typedef void (*PreviewCallbackResize)(int width, int height);
|
|
|
|
typedef void (*PreviewCallbackClear)(Color col);
|
|
|
|
typedef void (*PreviewCallbackDraw)(int x, int y, Color col);
|
|
|
|
typedef void (*PreviewCallbackUpdate)(double progress);
|
|
|
|
typedef int (*RenderProgressCallback)(double progress);
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
int hit;
|
|
|
|
Color hit_color;
|
|
|
|
Vector3 hit_location;
|
|
|
|
} RayCastingResult;
|
|
|
|
typedef RayCastingResult (*RayCastingFunction)(Vector3 start, Vector3 direction);
|
|
|
|
|
2011-12-23 22:58:50 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2011-12-10 13:25:22 +00:00
|
|
|
#endif
|