#pragma once
#include <stdbool.h>
#include <stdint.h>
#include "../rute_base.h"
#ifdef __cplusplus
extern "C" {
#endif
#include "point_ffi.h"
struct RULineFuncs;
struct RULine;
typedef struct RULineFuncs {
void (*destroy)(struct RUBase* self);
bool (*is_null)(struct RUBase* self_c);
struct RUPoint (*p1)(struct RUBase* self_c);
struct RUPoint (*p2)(struct RUBase* self_c);
int (*x1)(struct RUBase* self_c);
int (*y1)(struct RUBase* self_c);
int (*x2)(struct RUBase* self_c);
int (*y2)(struct RUBase* self_c);
int (*dx)(struct RUBase* self_c);
int (*dy)(struct RUBase* self_c);
struct RUPoint (*center)(struct RUBase* self_c);
void (*set_p1)(struct RUBase* self_c, struct RUBase* p1);
void (*set_p2)(struct RUBase* self_c, struct RUBase* p2);
void (*set_points)(struct RUBase* self_c, struct RUBase* p1,
struct RUBase* p2);
void (*set_line)(struct RUBase* self_c, int x1, int y1, int x2, int y2);
} RULineFuncs;
typedef struct RULineAllFuncs {
struct RULineFuncs* line_funcs;
} RULineAllFuncs;
typedef struct RULine {
RUBase* qt_data;
RUBase* host_data;
struct RULineAllFuncs* all_funcs;
} RULine;
extern RULineFuncs s_line_funcs;
extern RULineAllFuncs s_line_all_funcs;
#ifdef __cplusplus
}
#endif