PK_MESH_eval_with_mtopol   

PK_ERROR_code_t                     PK_MESH_eval_with_mtopol
(
--- received arguments ---
PK_MESH_t                           mesh,       --- the mesh
PK_UV_t                             uv,         --- mesh parameters
const PK_MESH_eval_with_mtopol_o_t *options,    --- option structure

--- returned arguments ---
PK_VECTOR_t                  *const position,   --- position returned
PK_MFACET_t                  *const mfacet,     --- mfacet returned
PK_MTOPOL_t                  *const mtopol      --- mtopol returned
)


This function evaluates the 'mesh' at the given 'uv' position and returns the
'position', 'mfacet' and 'mtopol' at that position.


Specific Errors:
    PK_ERROR_bad_parameter      the uv coordinates supplied do not lie on the
                                given mesh. (MILD)
    PK_ERROR_invalid_geometry   the mesh has invalid geometry. (MILD)

    PK_ERROR_eval_failure       internal evaluator failure (MILD)


If the 'position' is inside an mfacet both the 'mfacet' and the 'mtopol'
returned will be this mfacet.

If the 'position' is on an mfin or an mvertex, it is considered to lie on more
than one mfacet.
    * If the 'position' is on an mfin the 'mfacet' returned will be an mfacet
      which has an mfin on which this 'position' lies.  The 'mtopol' returned
      will be the mfin corresponding to the 'mfacet'.
    * If the 'position' is on an mvertex the 'mfacet' returned will be an
      mfacet at the mvertex and the 'mtopol' returned will be the mvertex.

In cases where the 'position' lies on more than one mfacet, if the
'want_lowest_mfacet' option is set to PK_LOGICAL_true (the default) the
'mfacet' returned will be the mfacet with the lowest identifier.