PK_EDGE_imprint_point   


PK_ERROR_code_t    PK_EDGE_imprint_point
(
--- received arguments ---
PK_EDGE_t          edge,        --- edge to be imprinted onto
PK_POINT_t         point,       --- point to imprint

--- returned arguments ---
PK_VERTEX_t *const new_vertex,  --- new vertex
PK_EDGE_t   *const new_edge     --- new edge   (may be PK_ENTITY_null)
)


This function imprints a point onto an edge, thereby creating a
new vertex.


Specific Errors:
    PK_ERROR_coincident            point coincident with existing vertex
    PK_ERROR_not_on_curve          point does not lie on edge's curve or
                                   it is outside the edge
    PK_ERROR_missing_geom          edge does not have geometry


If point does not lie on edges curve, or it is outside that part of the
curve on which the edge lies, then the error code PK_ERROR_not_on_curve is
returned.

If point lies within the edge, then a new_vertex is created at this
position.  If edge was a ring edge, then no 'new_edge' is created and
new_edge is returned as PK_ENTITY_null.  If edge was not a ring edge,
then adding the new vertex splits the edge into two.  The new edge is returned
in new_edge.  If point was an orphan then it will be attached to the new
vertex.  If point was not an orphan, then a copy of it will be attached to
the new vertex.