Spaces:
Runtime error
Runtime error
/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 4; tab-width: 4 -*- */ | |
/* We are building this library */ | |
/* We are using this library */ | |
/* We are building this library */ | |
/* We are using this library */ | |
extern "C" { | |
typedef enum region_type {EMPTY, SPECIAL, RECTANGLE, POLYGON, MASK} region_type; | |
typedef struct region_bounds { | |
float top; | |
float bottom; | |
float left; | |
float right; | |
} region_bounds; | |
typedef struct region_polygon { | |
int count; | |
float* x; | |
float* y; | |
} region_polygon; | |
typedef struct region_mask { | |
int x; | |
int y; | |
int width; | |
int height; | |
char* data; | |
} region_mask; | |
typedef struct region_rectangle { | |
float x; | |
float y; | |
float width; | |
float height; | |
} region_rectangle; | |
typedef struct region_container { | |
enum region_type type; | |
union { | |
region_rectangle rectangle; | |
region_polygon polygon; | |
region_mask mask; | |
int special; | |
} data; | |
} region_container; | |
typedef struct region_overlap { | |
float overlap; | |
float only1; | |
float only2; | |
} region_overlap; | |
extern const region_bounds region_no_bounds; | |
__TRAX_EXPORT int region_set_flags(int mask); | |
__TRAX_EXPORT int region_clear_flags(int mask); | |
__TRAX_EXPORT region_overlap region_compute_overlap(const region_container* ra, const region_container* rb, region_bounds bounds); | |
__TRAX_EXPORT float compute_polygon_overlap(const region_polygon* p1, const region_polygon* p2, float *only1, float *only2, region_bounds bounds); | |
__TRAX_EXPORT region_bounds region_create_bounds(float left, float top, float right, float bottom); | |
__TRAX_EXPORT region_bounds region_compute_bounds(const region_container* region); | |
__TRAX_EXPORT int region_parse(const char* buffer, region_container** region); | |
__TRAX_EXPORT char* region_string(region_container* region); | |
__TRAX_EXPORT void region_print(FILE* out, region_container* region); | |
__TRAX_EXPORT region_container* region_convert(const region_container* region, region_type type); | |
__TRAX_EXPORT void region_release(region_container** region); | |
__TRAX_EXPORT region_container* region_create_special(int code); | |
__TRAX_EXPORT region_container* region_create_rectangle(float x, float y, float width, float height); | |
__TRAX_EXPORT region_container* region_create_polygon(int count); | |
__TRAX_EXPORT int region_contains_point(region_container* r, float x, float y); | |
__TRAX_EXPORT void region_get_mask(region_container* r, char* mask, int width, int height); | |
__TRAX_EXPORT void region_get_mask_offset(region_container* r, char* mask, int x, int y, int width, int height); | |
} | |