paysages3d/src/rendering/shared/types.h
2013-04-27 19:41:57 +00:00

56 lines
1.2 KiB
C

#ifndef _PAYSAGES_TYPES_H_
#define _PAYSAGES_TYPES_H_
#include "../tools/euclid.h"
#include "../tools/color.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct Renderer Renderer;
typedef struct
{
int hit;
Color hit_color;
Vector3 hit_location;
} RayCastingResult;
typedef RayCastingResult (*FuncGeneralCastRay)(Renderer* renderer, Vector3 start, Vector3 direction);
typedef struct
{
double min_height;
double max_height;
double base_height;
} HeightInfo;
typedef void* (*FuncObjectCreate)();
typedef void (*FuncObjectDelete)(void* object);
typedef void (*FuncObjectCopy)(void* source, void* destination);
typedef void (*FuncObjectValidate)(void* object);
typedef void (*FuncObjectSave)(PackStream* stream, void* object);
typedef void (*FuncObjectLoad)(PackStream* stream, void* object);
typedef void (*FuncObjectBind)(void* base, void* sub);
typedef struct {
FuncObjectCreate create;
FuncObjectDelete destroy;
FuncObjectCopy copy;
FuncObjectValidate validate;
FuncObjectSave save;
FuncObjectLoad load;
} StandardDefinition;
typedef struct {
FuncObjectCreate create;
FuncObjectDelete destroy;
FuncObjectBind bind;
} StandardRenderer;
#ifdef __cplusplus
}
#endif
#endif