Changeset View
Changeset View
Standalone View
Standalone View
source/blender/python/bmesh/bmesh_py_types.c
| Show First 20 Lines • Show All 1,128 Lines • ▼ Show 20 Lines | if (use_deform) { | ||||
| if (use_render) { | if (use_render) { | ||||
| if (use_cage) { | if (use_cage) { | ||||
| PyErr_SetString(PyExc_ValueError, | PyErr_SetString(PyExc_ValueError, | ||||
| "from_object(...): cage arg is unsupported when dependency graph " | "from_object(...): cage arg is unsupported when dependency graph " | ||||
| "evaluation mode is RENDER"); | "evaluation mode is RENDER"); | ||||
| return NULL; | return NULL; | ||||
| } | } | ||||
| me_eval = mesh_create_eval_final(depsgraph, scene_eval, ob_eval, &data_masks); | me_eval = mesh_create_eval_final(depsgraph, scene_eval, ob, &data_masks); | ||||
brecht: An unevaluated object should not be used for modifier evaluation, it will not generally give… | |||||
| } | } | ||||
| else { | else { | ||||
| if (use_cage) { | if (use_cage) { | ||||
| me_eval = mesh_get_eval_deform(depsgraph, scene_eval, ob_eval, &data_masks); | me_eval = mesh_get_eval_deform(depsgraph, scene_eval, ob_eval, &data_masks); | ||||
| } | } | ||||
| else { | else { | ||||
| me_eval = mesh_get_eval_final(depsgraph, scene_eval, ob_eval, &data_masks); | me_eval = mesh_get_eval_final(depsgraph, scene_eval, ob_eval, &data_masks); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 3,154 Lines • Show Last 20 Lines | |||||
An unevaluated object should not be used for modifier evaluation, it will not generally give the correct result when there are e.g. constraints, animation or drivers.
I think you can use BKE_mesh_new_from_object instead and pass it the evaluated object. That's what is used for object.to_mesh() in the Python API. Note that the returned mesh needs to be freed.