2666 LWLINE *lwline1, *lwline2;
2667 LWGEOM *lwgeom1, *lwgeom2;
2668 double distance_forward, distance_backward;
2670 geom1 = PG_GETARG_GSERIALIZED_P(0);
2671 distance_forward = PG_GETARG_FLOAT8(1);
2672 distance_backward = PG_GETARG_FLOAT8(2);
2677 lwpgerror(
"Argument must be LINESTRING geometry");
2683 PG_RETURN_POINTER(geom1);
2685 lwline2 =
lwline_extend(lwline1, distance_forward, distance_backward);
2687 geom2 = geometry_serialize(lwgeom2);
2689 PG_RETURN_POINTER(geom2);
LWGEOM * lwgeom_from_gserialized(const GSERIALIZED *g)
Allocate a new LWGEOM from a GSERIALIZED.
LWLINE * lwgeom_as_lwline(const LWGEOM *lwgeom)
LWGEOM * lwline_as_lwgeom(const LWLINE *obj)
LWLINE * lwline_extend(const LWLINE *line, double distance_forward, double distance_backward)
Extend the ends of a line.
double lwline_length_2d(const LWLINE *line)
int lwline_is_empty(const LWLINE *line)