Classes | Defines | Enumerations | Functions | Variables

plfill.c File Reference

#include "plplotP.h"

Go to the source code of this file.

Classes

struct  point

Defines

#define INSIDE(ix, iy)   ( BETW( ix, xmin, xmax ) && BETW( iy, ymin, ymax ) )
#define DTOR   ( PI / 180. )
#define BINC   50
#define PL_NBCC   2
#define BETW_NBCC(ix, ia, ib)   ( ( ( ix ) <= ( ia + PL_NBCC ) && ( ix ) >= ( ib - PL_NBCC ) ) || ( ( ix ) >= ( ia - PL_NBCC ) && ( ix ) <= ( ib + PL_NBCC ) ) )
#define NEW_NOTPOINTINPOLYGON_CODE
#define MAX_RECURSION_DEPTH   10

Enumerations

enum  PL_CrossedStatus {
  PL_NOT_CROSSED = 0x1, PL_NEAR_A1 = 0x2, PL_NEAR_A2 = 0x4, PL_NEAR_B1 = 0x8,
  PL_NEAR_B2 = 0x10, PL_NEAR_PARALLEL = 0x20, PL_PARALLEL = 0x40
}

Functions

static int compar (const void *, const void *)
static void addcoord (PLINT, PLINT)
static void tran (PLINT *, PLINT *, PLFLT, PLFLT)
static void buildlist (PLINT, PLINT, PLINT, PLINT, PLINT, PLINT, PLINT)
static int notpointinpolygon (PLINT n, const PLINT *x, const PLINT *y, PLINT xp, PLINT yp)
static int circulation (PLINT *x, PLINT *y, PLINT npts)
static void fill_intersection_polygon (PLINT recursion_depth, PLINT ifextrapolygon, PLINT fill_status, void(*fill)(short *, short *, PLINT), const PLINT *x1, const PLINT *y1, PLINT i1start, PLINT n1, const PLINT *x2, const PLINT *y2, const PLINT *if2, PLINT n2)
static int notcrossed (PLINT *xintersect, PLINT *yintersect, PLINT xA1, PLINT yA1, PLINT xA2, PLINT yA2, PLINT xB1, PLINT yB1, PLINT xB2, PLINT yB2)
static int positive_orientation (PLINT n, const PLINT *x, const PLINT *y)
static int number_crossings (PLINT *xcross, PLINT *ycross, PLINT *i2cross, PLINT ncross, PLINT i1, PLINT n1, const PLINT *x1, const PLINT *y1, PLINT n2, const PLINT *x2, const PLINT *y2)
void c_plfill (PLINT n, const PLFLT *x, const PLFLT *y)
void c_plfill3 (PLINT n, const PLFLT *x, const PLFLT *y, const PLFLT *z)
void plfill_soft (short *x, short *y, PLINT n)
void plP_plfclp (PLINT *x, PLINT *y, PLINT npts, PLINT xmin, PLINT xmax, PLINT ymin, PLINT ymax, void(*draw)(short *, short *, PLINT))
int plP_pointinpolygon (PLINT n, const PLFLT *x, const PLFLT *y, PLFLT xp, PLFLT yp)

Variables

static PLINT bufferleng
static PLINT buffersize
static PLINTbuffer

Define Documentation

#define BETW_NBCC (   ix,
  ia,
  ib 
)    ( ( ( ix ) <= ( ia + PL_NBCC ) && ( ix ) >= ( ib - PL_NBCC ) ) || ( ( ix ) >= ( ia - PL_NBCC ) && ( ix ) <= ( ib + PL_NBCC ) ) )

Definition at line 35 of file plfill.c.

#define BINC   50

Definition at line 31 of file plfill.c.

#define DTOR   ( PI / 180. )

Definition at line 30 of file plfill.c.

#define INSIDE (   ix,
  iy 
)    ( BETW( ix, xmin, xmax ) && BETW( iy, ymin, ymax ) )

Definition at line 28 of file plfill.c.

#define MAX_RECURSION_DEPTH   10

Definition at line 1404 of file plfill.c.

#define NEW_NOTPOINTINPOLYGON_CODE

Definition at line 1250 of file plfill.c.

#define PL_NBCC   2

Definition at line 33 of file plfill.c.


Enumeration Type Documentation

Enumerator:
PL_NOT_CROSSED 
PL_NEAR_A1 
PL_NEAR_A2 
PL_NEAR_B1 
PL_NEAR_B2 
PL_NEAR_PARALLEL 
PL_PARALLEL 

Definition at line 61 of file plfill.c.


Function Documentation

void addcoord ( PLINT  xp1,
PLINT  yp1 
) [static]

Definition at line 481 of file plfill.c.

void buildlist ( PLINT  xp1,
PLINT  yp1,
PLINT  xp2,
PLINT  yp2,
PLINT  xp3,
PLINT  yp3,
PLINT  dinc 
) [static]

Definition at line 425 of file plfill.c.

void c_plfill ( PLINT  n,
const PLFLT x,
const PLFLT y 
)

Definition at line 133 of file plfill.c.

void c_plfill3 ( PLINT  n,
const PLFLT x,
const PLFLT y,
const PLFLT z 
)

Definition at line 203 of file plfill.c.

int circulation ( PLINT x,
PLINT y,
PLINT  npts 
) [static]

Definition at line 1177 of file plfill.c.

int compar ( const void *  pnum1,
const void *  pnum2 
) [static]

Definition at line 503 of file plfill.c.

void fill_intersection_polygon ( PLINT  recursion_depth,
PLINT  ifextrapolygon,
PLINT  fill_status,
void(*)(short *, short *, PLINT fill,
const PLINT x1,
const PLINT y1,
PLINT  i1start,
PLINT  n1,
const PLINT x2,
const PLINT y2,
const PLINT if2,
PLINT  n2 
) [static]

Definition at line 1453 of file plfill.c.

int notcrossed ( PLINT xintersect,
PLINT yintersect,
PLINT  xA1,
PLINT  yA1,
PLINT  xA2,
PLINT  yA2,
PLINT  xB1,
PLINT  yB1,
PLINT  xB2,
PLINT  yB2 
) [static]

Definition at line 1928 of file plfill.c.

static int notpointinpolygon ( PLINT  n,
const PLINT x,
const PLINT y,
PLINT  xp,
PLINT  yp 
) [static]

Definition at line 1252 of file plfill.c.

int number_crossings ( PLINT xcross,
PLINT ycross,
PLINT i2cross,
PLINT  ncross,
PLINT  i1,
PLINT  n1,
const PLINT x1,
const PLINT y1,
PLINT  n2,
const PLINT x2,
const PLINT y2 
) [static]

Definition at line 2088 of file plfill.c.

void plfill_soft ( short *  x,
short *  y,
PLINT  n 
)

Definition at line 308 of file plfill.c.

void plP_plfclp ( PLINT x,
PLINT y,
PLINT  npts,
PLINT  xmin,
PLINT  xmax,
PLINT  ymin,
PLINT  ymax,
void(*)(short *, short *, PLINT draw 
)

Definition at line 532 of file plfill.c.

int plP_pointinpolygon ( PLINT  n,
const PLFLT x,
const PLFLT y,
PLFLT  xp,
PLFLT  yp 
)

Definition at line 1206 of file plfill.c.

int positive_orientation ( PLINT  n,
const PLINT x,
const PLINT y 
) [static]

Definition at line 2048 of file plfill.c.

void tran ( PLINT a,
PLINT b,
PLFLT  c,
PLFLT  d 
) [static]

Definition at line 413 of file plfill.c.


Variable Documentation

PLINT * buffer [static]

Definition at line 76 of file plfill.c.

PLINT bufferleng [static]

Definition at line 76 of file plfill.c.

PLINT buffersize [static]

Definition at line 76 of file plfill.c.