/* This file was automatically generated.  Do not edit! */
#include <stdint.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#if !defined(DISTRIBUTION_BUILD)
#include "triangle.h"
#endif
typedef struct triangle_params triangle_params;
struct triangle_params {
  int numpoints;
  int numsegs;
  int numholes;
  bool render;
};
int ctriangulate(float *points,int *segments,float *holes,int *triangles_out,float *verts_out,int *counts,triangle_params param);
typedef struct { float x, y; uint32_t id; }edge_pt;
typedef struct { edge_pt p1, p2; }Edge;
typedef struct { Edge edge; float lx, ly, rx,ry; uint16_t t; int8_t e; }side;
int compSides(side *a,side *b);
int segmentize(float segmentBuf[][24],float line[][10],float bbox[5],int fill,int last,int index);
int sortSegs(float *seg1,float *seg2);
int trigger();
float frandom(float x);
extern double integer;
int makebez(float buffer[][6],float line[][10],uint16_t detail);
void evaluateBezier(float curve[10],float t,float *x,float *y);
float dist(float x1,float y1,float x2,float y2);
float lerp(float a,float b,float f);
int pnpoly2(int nvert,float verts[][10],float testx,float testy);
int pnpoly(int nvert,float verts[][6],float testx,float testy);
float frand(float a);
typedef unsigned int uint;
typedef struct { 
  float x,  y,  z;
  uint8_t r,  g,  b, a;
  int8_t nx, ny;
  int8_t u,  v;
}strkvec;
typedef struct stroke_prop_t stroke_prop_t;
struct stroke_prop_t {
  uint vBufferN, vBufferSize, length, ends;
  bool onePixel, lineWidthOverride, writeSegs, preview;
  float size, wobble, lineWidth;
};
uint genstroke(strkvec *vBuffer,uint verts[][2],float line[][6],float segs[][24],float color[6],stroke_prop_t props);
uint genstroke(strkvec *vBuffer,uint verts[][2],float line[][6],float segs[][24],float color[6],stroke_prop_t props);
typedef struct {
  float r,g,b,a;
}Color4;
typedef struct {
  uint8_t ends;
  uint8_t group;
  float size;
  Color4 color;
  float* line;
}stroke;
#define INTERFACE 0
