PK_ERROR_code_t PK_FACE_imprint_curve ( --- received arguments --- PK_FACE_t face, --- face PK_CURVE_t curve, --- curve PK_INTERVAL_t bounds, --- bounds of curve --- returned arguments --- int *const n_new_edges, --- number of new edges PK_EDGE_t **const new_edges, --- new edges (optional) int *const n_new_faces, --- number of new faces PK_FACE_t **const new_faces --- new faces (optional) ) This function imprints a curve onto a face, thereby creating a new edge or edges. Specific Errors: PK_ERROR_missing_geom face does not have geometry PK_ERROR_not_on_surface curve does not lie on faces surface or bounds not within face PK_ERROR_bad_basis_surf SP curve basis surface differs from faces surface. PK_ERROR_invalid_geometry curve does not pass checks PK_ERROR_not_on_face no new edges created If the curve does not lie on the faces surface, then the error PK_ERROR_not_on_surface is returned. If none of the interval of the curve lies inside the face i.e. no new edges are created as a result of the imprint, then the error PK_ERROR_not_on_face is returned. Otherwise, each part of the interval of the curve which lies within the face will be imprinted on the face as a new edge. The new edges are returned in new_edges, and the number of them in n_new_edges. The new edges may split the face into several faces. The new faces are returned in new_faces and the number of them in n_new_faces. If new faces are created, the old face will lie on the right of one of the new edges, which will all go in the direction of the curve. Both the new_edges and new_faces arguments are optional. If they are set to NULL then only the number of new edges and/or faces will be returned. If curve was an orphan, then it will be attached to the new edge(s). If curve may be shared with the new edge(s) then it will be. Otherwise a copy of the curve will be made and attached to the new edge(s). When several new edges are created by imprinting one curve, then all of the edges will share the same geometry.