PostGIS  2.2.7dev-r@@SVN_REVISION@@
LWCIRCSTRING* lwcircstring_construct ( int  srid,
GBOX bbox,
POINTARRAY points 
)

Definition at line 38 of file lwcircstring.c.

References LWCIRCSTRING::bbox, CIRCSTRINGTYPE, POINTARRAY::flags, LWCIRCSTRING::flags, FLAGS_SET_BBOX, lwalloc(), lwnotice(), POINTARRAY::npoints, LWCIRCSTRING::points, LWCIRCSTRING::srid, and LWCIRCSTRING::type.

Referenced by circstring_from_pa(), lwcircstring_addpoint(), lwcircstring_from_lwmpoint(), lwcircstring_from_lwpointarray(), lwcircstring_from_wkb_state(), lwcircstring_grid(), lwcircstring_removepoint(), and wkt_parser_circularstring_new().

39 {
40  LWCIRCSTRING *result;
41 
42  /*
43  * The first arc requires three points. Each additional
44  * arc requires two more points. Thus the minimum point count
45  * is three, and the count must be odd.
46  */
47  if (points->npoints % 2 != 1 || points->npoints < 3)
48  {
49  lwnotice("lwcircstring_construct: invalid point count %d", points->npoints);
50  }
51 
52  result = (LWCIRCSTRING*) lwalloc(sizeof(LWCIRCSTRING));
53 
54  result->type = CIRCSTRINGTYPE;
55 
56  result->flags = points->flags;
57  FLAGS_SET_BBOX(result->flags, bbox?1:0);
58 
59  result->srid = srid;
60  result->points = points;
61  result->bbox = bbox;
62 
63  return result;
64 }
uint8_t flags
Definition: liblwgeom.h:425
void lwnotice(const char *fmt,...)
Write a notice out to the notice handler.
Definition: lwutil.c:61
int npoints
Definition: liblwgeom.h:355
int32_t srid
Definition: liblwgeom.h:427
uint8_t flags
Definition: liblwgeom.h:353
uint8_t type
Definition: liblwgeom.h:424
GBOX * bbox
Definition: liblwgeom.h:426
#define FLAGS_SET_BBOX(flags, value)
Definition: liblwgeom.h:132
POINTARRAY * points
Definition: liblwgeom.h:428
#define CIRCSTRINGTYPE
Definition: liblwgeom.h:77
void * lwalloc(size_t size)
Definition: lwutil.c:199

Here is the call graph for this function:

Here is the caller graph for this function: