PK_ERROR_code_t PK_CURVE_make_wire_body_2 ( --- received arguments --- int n_curves, --- number of curves (ie, length of curves and bounds arrays) const PK_CURVE_t curves[], --- curves to create a wire body out of const PK_INTERVAL_t bounds[], --- bounds of each curve const PK_CURVE_make_wire_body_o_t *options, --- options structure --- returned arguments --- PK_BODY_t *const body, --- the created wire body int *const n_new_edges, --- number of new edges PK_EDGE_t **const new_edges, --- new edges int **const edge_index --- pos in original array ) This function creates a wire body from an array of curves and intervals. The curves do not need to be ordered or directed. Specific Errors: PK_ERROR_unsuitable_entity unsuitable curve(s) supplied PK_ERROR_invalid_geom invalid geometry supplied PK_ERROR_bad_shared_dep dependant of entity would be illegally shared PK_ERROR_non_manifold body would become general PK_ERROR_not_connected body is disjoint, and allow_disjoint set to PK_LOGICAL_false PK_ERROR_crossing_edge two or more edges cross PK_ERROR_bad_vertex tolerance bubbles of two vertices clash PK_ERROR_bad_param bad parameters supplied PK_ERROR_cant_extract_geom failed to extract geometry The part of each curve required must be defined by the corresponding parametric interval in the array bounds. The wire may be closed. If allow_disjoint of the options structure is set to PK_LOGICAL_true, then disjoint bodies can be created. If the wire body crosses the seam of a closed curve, then the parameterisation of the curve must be periodic (see Knot Vectors). Orphan curves are used as the geometry of the body, otherwise a copy of each curve that is not an orphan is used as the geometry of the body. A copy will also be used for any curve that is located in a partition other than the current partition, and the resultant body will be created in the current partition. If a curve that needs to be duplicated is supplied more than once, then it is only duplicated once. The number of edges in the wire body is returned. If want_edges of the options structure is set to PK_LOGICAL_true, then an array of the edges of the new wire body will be returned in new_edges. If want_indices of the options structure is set to PK_LOGICAL_true, then an array of integers indicating the position in the array of curves and bounds that refers to the curve and bound used to create the corresponding edge in new_edges will be returned in edge_index.