PostGIS  3.4.0dev-r@@SVN_REVISION@@

◆ lwcollection_allows_subtype()

int lwcollection_allows_subtype ( int  collectiontype,
int  subtype 
)

Check if subtype is allowed in collectiontype.

Definition at line 513 of file lwcollection.c.

514 {
515  if ( collectiontype == COLLECTIONTYPE )
516  return LW_TRUE;
517  if ( collectiontype == MULTIPOINTTYPE &&
518  subtype == POINTTYPE )
519  return LW_TRUE;
520  if ( collectiontype == MULTILINETYPE &&
521  subtype == LINETYPE )
522  return LW_TRUE;
523  if ( collectiontype == MULTIPOLYGONTYPE &&
524  subtype == POLYGONTYPE )
525  return LW_TRUE;
526  if ( collectiontype == COMPOUNDTYPE &&
527  (subtype == LINETYPE || subtype == CIRCSTRINGTYPE) )
528  return LW_TRUE;
529  if ( collectiontype == CURVEPOLYTYPE &&
530  (subtype == CIRCSTRINGTYPE || subtype == LINETYPE || subtype == COMPOUNDTYPE) )
531  return LW_TRUE;
532  if ( collectiontype == MULTICURVETYPE &&
533  (subtype == CIRCSTRINGTYPE || subtype == LINETYPE || subtype == COMPOUNDTYPE) )
534  return LW_TRUE;
535  if ( collectiontype == MULTISURFACETYPE &&
536  (subtype == POLYGONTYPE || subtype == CURVEPOLYTYPE) )
537  return LW_TRUE;
538  if ( collectiontype == POLYHEDRALSURFACETYPE &&
539  subtype == POLYGONTYPE )
540  return LW_TRUE;
541  if ( collectiontype == TINTYPE &&
542  subtype == TRIANGLETYPE )
543  return LW_TRUE;
544 
545  /* Must be a bad combination! */
546  return LW_FALSE;
547 }
#define LW_FALSE
Definition: liblwgeom.h:94
#define COLLECTIONTYPE
Definition: liblwgeom.h:108
#define COMPOUNDTYPE
Definition: liblwgeom.h:110
#define CURVEPOLYTYPE
Definition: liblwgeom.h:111
#define MULTILINETYPE
Definition: liblwgeom.h:106
#define MULTISURFACETYPE
Definition: liblwgeom.h:113
#define LINETYPE
Definition: liblwgeom.h:103
#define MULTIPOINTTYPE
Definition: liblwgeom.h:105
#define POINTTYPE
LWTYPE numbers, used internally by PostGIS.
Definition: liblwgeom.h:102
#define TINTYPE
Definition: liblwgeom.h:116
#define MULTIPOLYGONTYPE
Definition: liblwgeom.h:107
#define POLYGONTYPE
Definition: liblwgeom.h:104
#define POLYHEDRALSURFACETYPE
Definition: liblwgeom.h:114
#define CIRCSTRINGTYPE
Definition: liblwgeom.h:109
#define MULTICURVETYPE
Definition: liblwgeom.h:112
#define TRIANGLETYPE
Definition: liblwgeom.h:115
#define LW_TRUE
Return types for functions with status returns.
Definition: liblwgeom.h:93

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: