PLplot  5.15.0
plfill.c File Reference
#include "plplotP.h"

Go to the source code of this file.

Classes

struct  point
 

Macros

#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, PLINT_VECTOR x, PLINT_VECTOR y, PLINT xp, PLINT yp)
 
static int circulation (PLINT *x, PLINT *y, PLINT npts)
 
static int notcrossed (PLINT *xintersect, PLINT *yintersect, PLINT xA1, PLINT yA1, PLINT xA2, PLINT yA2, PLINT xB1, PLINT yB1, PLINT xB2, PLINT yB2)
 
void c_plfill (PLINT n, PLFLT_VECTOR x, PLFLT_VECTOR y)
 
void c_plfill3 (PLINT n, PLFLT_VECTOR x, PLFLT_VECTOR y, PLFLT_VECTOR z)
 
void plfill_soft (short *x, short *y, PLINT n)
 
void buildlist (PLINT xp1, PLINT yp1, PLINT xp2, PLINT yp2, PLINT PL_UNUSED(xp3), PLINT yp3, PLINT dinc)
 
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, PLFLT_VECTOR x, PLFLT_VECTOR y, PLFLT xp, PLFLT yp)
 

Variables

static PLINT bufferleng
 
static PLINT buffersize
 
static PLINTbuffer
 

Macro Definition Documentation

◆ BETW_NBCC

#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 33 of file plfill.c.

◆ BINC

#define BINC   50

Definition at line 29 of file plfill.c.

◆ DTOR

#define DTOR   ( PI / 180. )

Definition at line 28 of file plfill.c.

◆ INSIDE

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

Definition at line 26 of file plfill.c.

◆ MAX_RECURSION_DEPTH

#define MAX_RECURSION_DEPTH   10

Definition at line 1410 of file plfill.c.

◆ NEW_NOTPOINTINPOLYGON_CODE

#define NEW_NOTPOINTINPOLYGON_CODE

Definition at line 1256 of file plfill.c.

◆ PL_NBCC

#define PL_NBCC   2

Definition at line 31 of file plfill.c.

Enumeration Type Documentation

◆ PL_CrossedStatus

Enumerator
PL_NOT_CROSSED 
PL_NEAR_A1 
PL_NEAR_A2 
PL_NEAR_B1 
PL_NEAR_B2 
PL_NEAR_PARALLEL 
PL_PARALLEL 

Definition at line 59 of file plfill.c.

Function Documentation

◆ addcoord()

void addcoord ( PLINT  xp1,
PLINT  yp1 
)
static

Definition at line 487 of file plfill.c.

◆ buildlist() [1/2]

static void buildlist ( PLINT  ,
PLINT  ,
PLINT  ,
PLINT  ,
PLINT  ,
PLINT  ,
PLINT   
)
static

◆ buildlist() [2/2]

void buildlist ( PLINT  xp1,
PLINT  yp1,
PLINT  xp2,
PLINT  yp2,
PLINT   PL_UNUSEDxp3,
PLINT  yp3,
PLINT  dinc 
)

Definition at line 431 of file plfill.c.

◆ c_plfill()

void c_plfill ( PLINT  n,
PLFLT_VECTOR  x,
PLFLT_VECTOR  y 
)

Definition at line 132 of file plfill.c.

◆ c_plfill3()

void c_plfill3 ( PLINT  n,
PLFLT_VECTOR  x,
PLFLT_VECTOR  y,
PLFLT_VECTOR  z 
)

Definition at line 202 of file plfill.c.

◆ circulation()

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

Definition at line 1183 of file plfill.c.

◆ compar()

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

Definition at line 509 of file plfill.c.

◆ notcrossed()

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 1939 of file plfill.c.

◆ notpointinpolygon()

static int notpointinpolygon ( PLINT  n,
PLINT_VECTOR  x,
PLINT_VECTOR  y,
PLINT  xp,
PLINT  yp 
)
static

Definition at line 1258 of file plfill.c.

◆ plfill_soft()

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

Definition at line 307 of file plfill.c.

◆ plP_plfclp()

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 538 of file plfill.c.

◆ plP_pointinpolygon()

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

Definition at line 1212 of file plfill.c.

◆ tran()

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

Definition at line 419 of file plfill.c.

Variable Documentation

◆ buffer

PLINT * buffer
static

Definition at line 74 of file plfill.c.

◆ bufferleng

PLINT bufferleng
static

Definition at line 74 of file plfill.c.

◆ buffersize

PLINT buffersize
static

Definition at line 74 of file plfill.c.