Affine transform a pointarray.
Definition at line 1766 of file ptarray.c.
1767{
1768 uint32_t i;
1771
1772 LWDEBUG(2,
"lwgeom_affine_ptarray start");
1773
1775 {
1777
1779 {
1784 p4d.
x = a->afac *
x + a->bfac *
y + a->cfac * z + a->xoff;
1785 p4d.
y = a->dfac *
x + a->efac *
y + a->ffac * z + a->yoff;
1786 p4d.
z = a->gfac *
x + a->hfac *
y + a->ifac * z + a->zoff;
1788
1789 LWDEBUGF(3,
" POINT %g %g %g => %g %g %g", x, y, z, p4d.
x, p4d.
y, p4d.
z);
1790 }
1791 }
1792 else
1793 {
1794 LWDEBUG(3,
" doesn't have z");
1795
1797 {
1801 p4d.
x = a->afac *
x + a->bfac *
y + a->xoff;
1802 p4d.
y = a->dfac *
x + a->efac *
y + a->yoff;
1804
1805 LWDEBUGF(3,
" POINT %g %g => %g %g", x, y, p4d.
x, p4d.
y);
1806 }
1807 }
1808
1809 LWDEBUG(3,
"lwgeom_affine_ptarray end");
1810
1811}
#define FLAGS_GET_Z(flags)
int getPoint4d_p(const POINTARRAY *pa, uint32_t n, POINT4D *point)
void ptarray_set_point4d(POINTARRAY *pa, uint32_t n, const POINT4D *p4d)
#define LWDEBUG(level, msg)
#define LWDEBUGF(level, msg,...)
References AFFINE::afac, AFFINE::bfac, AFFINE::cfac, AFFINE::dfac, AFFINE::efac, AFFINE::ffac, POINTARRAY::flags, FLAGS_GET_Z, getPoint4d_p(), AFFINE::gfac, AFFINE::hfac, AFFINE::ifac, LWDEBUG, LWDEBUGF, POINTARRAY::npoints, ptarray_set_point4d(), POINT4D::x, AFFINE::xoff, POINT4D::y, AFFINE::yoff, POINT4D::z, and AFFINE::zoff.
Referenced by lwgeom_affine().