2658 LWLINE *lwline1, *lwline2;
2659 LWGEOM *lwgeom1, *lwgeom2;
2660 double distance_forward, distance_backward;
2662 geom1 = PG_GETARG_GSERIALIZED_P(0);
2663 distance_forward = PG_GETARG_FLOAT8(1);
2664 distance_backward = PG_GETARG_FLOAT8(2);
2669 lwpgerror(
"Argument must be LINESTRING geometry");
2675 PG_RETURN_POINTER(geom1);
2677 lwline2 =
lwline_extend(lwline1, distance_forward, distance_backward);
2679 geom2 = geometry_serialize(lwgeom2);
2681 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)