PostGIS 3.0.6dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ lwcollection_allows_subtype()

int lwcollection_allows_subtype ( int  collectiontype,
int  subtype 
)

Check if subtype is allowed in collectiontype.

Definition at line 523 of file lwcollection.c.

524{
525 if ( collectiontype == COLLECTIONTYPE )
526 return LW_TRUE;
527 if ( collectiontype == MULTIPOINTTYPE &&
528 subtype == POINTTYPE )
529 return LW_TRUE;
530 if ( collectiontype == MULTILINETYPE &&
531 subtype == LINETYPE )
532 return LW_TRUE;
533 if ( collectiontype == MULTIPOLYGONTYPE &&
534 subtype == POLYGONTYPE )
535 return LW_TRUE;
536 if ( collectiontype == COMPOUNDTYPE &&
537 (subtype == LINETYPE || subtype == CIRCSTRINGTYPE) )
538 return LW_TRUE;
539 if ( collectiontype == CURVEPOLYTYPE &&
540 (subtype == CIRCSTRINGTYPE || subtype == LINETYPE || subtype == COMPOUNDTYPE) )
541 return LW_TRUE;
542 if ( collectiontype == MULTICURVETYPE &&
543 (subtype == CIRCSTRINGTYPE || subtype == LINETYPE || subtype == COMPOUNDTYPE) )
544 return LW_TRUE;
545 if ( collectiontype == MULTISURFACETYPE &&
546 (subtype == POLYGONTYPE || subtype == CURVEPOLYTYPE) )
547 return LW_TRUE;
548 if ( collectiontype == POLYHEDRALSURFACETYPE &&
549 subtype == POLYGONTYPE )
550 return LW_TRUE;
551 if ( collectiontype == TINTYPE &&
552 subtype == TRIANGLETYPE )
553 return LW_TRUE;
554
555 /* Must be a bad combination! */
556 return LW_FALSE;
557}
#define LW_FALSE
Definition liblwgeom.h:108
#define COLLECTIONTYPE
Definition liblwgeom.h:122
#define COMPOUNDTYPE
Definition liblwgeom.h:124
#define CURVEPOLYTYPE
Definition liblwgeom.h:125
#define MULTILINETYPE
Definition liblwgeom.h:120
#define MULTISURFACETYPE
Definition liblwgeom.h:127
#define LINETYPE
Definition liblwgeom.h:117
#define MULTIPOINTTYPE
Definition liblwgeom.h:119
#define POINTTYPE
LWTYPE numbers, used internally by PostGIS.
Definition liblwgeom.h:116
#define TINTYPE
Definition liblwgeom.h:130
#define MULTIPOLYGONTYPE
Definition liblwgeom.h:121
#define POLYGONTYPE
Definition liblwgeom.h:118
#define POLYHEDRALSURFACETYPE
Definition liblwgeom.h:128
#define CIRCSTRINGTYPE
Definition liblwgeom.h:123
#define MULTICURVETYPE
Definition liblwgeom.h:126
#define TRIANGLETYPE
Definition liblwgeom.h:129
#define LW_TRUE
Return types for functions with status returns.
Definition liblwgeom.h:107

References CIRCSTRINGTYPE, COLLECTIONTYPE, COMPOUNDTYPE, CURVEPOLYTYPE, LINETYPE, LW_FALSE, LW_TRUE, MULTICURVETYPE, MULTILINETYPE, MULTIPOINTTYPE, MULTIPOLYGONTYPE, MULTISURFACETYPE, POINTTYPE, POLYGONTYPE, POLYHEDRALSURFACETYPE, TINTYPE, and TRIANGLETYPE.

Referenced by lwcollection_add_lwgeom(), lwcollection_from_gserialized1_buffer(), and lwcollection_from_gserialized2_buffer().

Here is the caller graph for this function: