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

◆ LWGEOM_affine()

Datum LWGEOM_affine ( PG_FUNCTION_ARGS  )

Definition at line 2644 of file lwgeom_functions_basic.c.

2645{
2646 GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P_COPY(0);
2647 LWGEOM *lwgeom = lwgeom_from_gserialized(geom);
2648 GSERIALIZED *ret;
2649 AFFINE affine;
2650
2651 affine.afac = PG_GETARG_FLOAT8(1);
2652 affine.bfac = PG_GETARG_FLOAT8(2);
2653 affine.cfac = PG_GETARG_FLOAT8(3);
2654 affine.dfac = PG_GETARG_FLOAT8(4);
2655 affine.efac = PG_GETARG_FLOAT8(5);
2656 affine.ffac = PG_GETARG_FLOAT8(6);
2657 affine.gfac = PG_GETARG_FLOAT8(7);
2658 affine.hfac = PG_GETARG_FLOAT8(8);
2659 affine.ifac = PG_GETARG_FLOAT8(9);
2660 affine.xoff = PG_GETARG_FLOAT8(10);
2661 affine.yoff = PG_GETARG_FLOAT8(11);
2662 affine.zoff = PG_GETARG_FLOAT8(12);
2663
2664 POSTGIS_DEBUG(2, "LWGEOM_affine called.");
2665
2666 lwgeom_affine(lwgeom, &affine);
2667
2668 /* COMPUTE_BBOX TAINTING */
2669 if (lwgeom->bbox)
2670 {
2671 lwgeom_refresh_bbox(lwgeom);
2672 }
2673 ret = geometry_serialize(lwgeom);
2674
2675 /* Release memory */
2676 lwgeom_free(lwgeom);
2677 PG_FREE_IF_COPY(geom, 0);
2678
2679 PG_RETURN_POINTER(ret);
2680}
LWGEOM * lwgeom_from_gserialized(const GSERIALIZED *g)
Allocate a new LWGEOM from a GSERIALIZED.
void lwgeom_refresh_bbox(LWGEOM *lwgeom)
Drop current bbox and calculate a fresh one.
Definition lwgeom.c:689
void lwgeom_free(LWGEOM *geom)
Definition lwgeom.c:1138
void lwgeom_affine(LWGEOM *geom, const AFFINE *affine)
Definition lwgeom.c:1975
GSERIALIZED * geometry_serialize(LWGEOM *lwgeom)
double gfac
Definition liblwgeom.h:318
double zoff
Definition liblwgeom.h:318
double bfac
Definition liblwgeom.h:318
double ifac
Definition liblwgeom.h:318
double xoff
Definition liblwgeom.h:318
double dfac
Definition liblwgeom.h:318
double afac
Definition liblwgeom.h:318
double ffac
Definition liblwgeom.h:318
double cfac
Definition liblwgeom.h:318
double hfac
Definition liblwgeom.h:318
double efac
Definition liblwgeom.h:318
double yoff
Definition liblwgeom.h:318
GBOX * bbox
Definition liblwgeom.h:444

References AFFINE::afac, LWGEOM::bbox, AFFINE::bfac, AFFINE::cfac, AFFINE::dfac, AFFINE::efac, AFFINE::ffac, geometry_serialize(), AFFINE::gfac, AFFINE::hfac, AFFINE::ifac, lwgeom_affine(), lwgeom_free(), lwgeom_from_gserialized(), lwgeom_refresh_bbox(), AFFINE::xoff, AFFINE::yoff, and AFFINE::zoff.

Here is the call graph for this function: