2631 LWLINE *lwline1, *lwline2;
2632 LWGEOM *lwgeom1, *lwgeom2;
2633 double distance_forward, distance_backward;
2635 geom1 = PG_GETARG_GSERIALIZED_P(0);
2636 distance_forward = PG_GETARG_FLOAT8(1);
2637 distance_backward = PG_GETARG_FLOAT8(2);
2642 lwpgerror(
"Argument must be LINESTRING geometry");
2648 PG_RETURN_POINTER(geom1);
2650 lwline2 =
lwline_extend(lwline1, distance_forward, distance_backward);
2652 geom2 = geometry_serialize(lwgeom2);
2654 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)