416{
417 Pointer box2d_ptr = PG_GETARG_POINTER(0);
418 Pointer geom_ptr = PG_GETARG_POINTER(1);
422
423 if ( (box2d_ptr == NULL) && (geom_ptr == NULL) )
424 {
425 PG_RETURN_NULL();
426 }
427
428 result = (
GBOX *)palloc(
sizeof(
GBOX));
429
430 if (box2d_ptr == NULL)
431 {
432 lwgeom = PG_GETARG_GSERIALIZED_P(1);
433
435 memcpy(result, &box,
sizeof(
GBOX));
436 PG_RETURN_POINTER(result);
437 }
438
439
440 if (geom_ptr == NULL)
441 {
442 memcpy(result, (
char *)PG_GETARG_DATUM(0),
sizeof(
GBOX));
443 PG_RETURN_POINTER(result);
444 }
445
446
447
448 lwgeom = PG_GETARG_GSERIALIZED_P(1);
450 {
451
452 memcpy(result, (
char *)PG_GETARG_DATUM(0),
sizeof(
GBOX));
453 PG_RETURN_POINTER(result);
454 }
455
456 a = (
GBOX *)PG_GETARG_DATUM(0);
457 b = &box;
458
463
464 PG_RETURN_POINTER(result);
465}
int gserialized_get_gbox_p(const GSERIALIZED *g, GBOX *gbox)
Read the box from the GSERIALIZED or calculate it if necessary.