#ifndef EMB_POINT_H
#define EMB_POINT_H
#include "emb-color.h"
#include "api-start.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct EmbPoint_
{
double xx;
double yy;
} EmbPoint;
extern EMB_PUBLIC double EMB_CALL embPoint_x(EmbPoint point);
extern EMB_PUBLIC double EMB_CALL embPoint_y(EmbPoint point);
extern EMB_PUBLIC EmbPoint EMB_CALL embPoint_make(double x, double y);
typedef struct EmbPointList_
{
EmbPoint point;
struct EmbPointList_* next;
} EmbPointList;
extern EMB_PUBLIC EmbPointList* EMB_CALL embPointList_create(double x, double y);
extern EMB_PUBLIC EmbPointList* EMB_CALL embPointList_add(EmbPointList* pointer, EmbPoint data);
extern EMB_PUBLIC int EMB_CALL embPointList_count(EmbPointList* pointer);
extern EMB_PUBLIC int EMB_CALL embPointList_empty(EmbPointList* pointer);
extern EMB_PUBLIC void EMB_CALL embPointList_free(EmbPointList* pointer);
typedef struct EmbPointObject_
{
EmbPoint point;
int lineType;
EmbColor color;
} EmbPointObject;
extern EMB_PUBLIC EmbPointObject EMB_CALL embPointObject_make(double x, double y);
extern EMB_PUBLIC EmbPointObject* EMB_CALL embPointObject_create(double x, double y);
typedef struct EmbPointObjectList_
{
EmbPointObject pointObj;
struct EmbPointObjectList_* next;
} EmbPointObjectList;
extern EMB_PUBLIC EmbPointObjectList* EMB_CALL embPointObjectList_create(EmbPointObject data);
extern EMB_PUBLIC EmbPointObjectList* EMB_CALL embPointObjectList_add(EmbPointObjectList* pointer, EmbPointObject data);
extern EMB_PUBLIC int EMB_CALL embPointObjectList_count(EmbPointObjectList* pointer);
extern EMB_PUBLIC int EMB_CALL embPointObjectList_empty(EmbPointObjectList* pointer);
extern EMB_PUBLIC void EMB_CALL embPointObjectList_free(EmbPointObjectList* pointer);
#ifdef __cplusplus
}
#endif
#include "api-stop.h"
#endif