![]() |
PK_MESH_imprint_vectors |
PK_ERROR_code_t PK_MESH_imprint_vectors ( --- received arguments --- PK_MESH_t mesh, --- mesh int n_vectors, --- number of vectors const PK_VECTOR_t *vectors, --- vectors const PK_MESH_imprint_vectors_o_t *options, --- options --- returned arguments --- PK_MESH_t *const resultant_mesh, --- mesh with imprinted --- vectors PK_MVERTEX_t *const mvertices, --- mvertices PK_MESH_imprint_vectors_r_t *const results --- status information ) This function imprints an array of vectors onto a mesh. This function creates a copy of the given 'mesh' with the given 'vectors' imprinted. The 'destination' of the new mesh may be specified by the 'options'. The function may optionally return an mvertex array of the same length as the vector array, where the ith mvertex comes from the ith vector. Note that one mvertex may come from multiple input vectors if they are within session precision of each other, and an input vector may be snapped to an existing mvertex if they are within session precision. If any vector is not within session precision of the mesh or not within session precision of its corresponding parameter or mtopol (given in the options structure), then the function will not imprint any vectors and 'resultant_mesh' will be PK_ENTITY_null. Additionally, all vectors which were not within session precision of the mesh or their given parameter/mtopol will have their indices in the input array included in the 'error_indices' array in the 'results'. A "cluster" is a set of input vectors which satisfy the following conditions: 1. It has at least two members. 2. Each member is within session precision of at least one other in the set. 3. No input vectors outside the set are within session precision of any member. 4. It does not have any smaller subsets satisfying the first three conditions. The algorithm will attempt to resolve each cluster into a single vector which lies within session precision of all the vectors in the cluster. If it is not possible to resolve all the clusters, the function will not imprint the vectors and 'resultant_mesh' will be PK_ENTITY_null. All vectors in the clusters which cannot be resolved will have their index in the input array included in the 'results'. The function does not attempt to repair any defects in the 'resultant_mesh', but will return any defects in the 'resultant_mesh' caused by imprinting the vectors in the 'results'.Generated on: Fri, 04 Oct 2024 12:20:40 GMT