Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/mesh/editmesh_knife_project.c
| Show All 28 Lines | |||||
| #include "BLI_listbase.h" | #include "BLI_listbase.h" | ||||
| #include "BKE_mesh.h" | #include "BKE_mesh.h" | ||||
| #include "BKE_context.h" | #include "BKE_context.h" | ||||
| #include "BKE_curve.h" | #include "BKE_curve.h" | ||||
| #include "BKE_cdderivedmesh.h" | #include "BKE_cdderivedmesh.h" | ||||
| #include "BKE_editmesh.h" | #include "BKE_editmesh.h" | ||||
| #include "BKE_mesh_runtime.h" | #include "BKE_mesh_runtime.h" | ||||
| #include "BKE_object.h" | |||||
| #include "BKE_report.h" | #include "BKE_report.h" | ||||
| #include "DEG_depsgraph.h" | #include "DEG_depsgraph.h" | ||||
| #include "DEG_depsgraph_query.h" | #include "DEG_depsgraph_query.h" | ||||
| #include "RNA_define.h" | #include "RNA_define.h" | ||||
| #include "RNA_access.h" | #include "RNA_access.h" | ||||
| Show All 12 Lines | static LinkNode *knifeproject_poly_from_object(const bContext *C, | ||||
| Object *ob, | Object *ob, | ||||
| LinkNode *polys) | LinkNode *polys) | ||||
| { | { | ||||
| Depsgraph *depsgraph = CTX_data_ensure_evaluated_depsgraph(C); | Depsgraph *depsgraph = CTX_data_ensure_evaluated_depsgraph(C); | ||||
| ARegion *ar = CTX_wm_region(C); | ARegion *ar = CTX_wm_region(C); | ||||
| struct Mesh *me_eval; | struct Mesh *me_eval; | ||||
| bool me_eval_needs_free; | bool me_eval_needs_free; | ||||
| if (ob->type == OB_MESH || ob->runtime.mesh_eval) { | if (ob->type == OB_MESH || ob->runtime.data_eval) { | ||||
| Object *ob_eval = DEG_get_evaluated_object(depsgraph, ob); | Object *ob_eval = DEG_get_evaluated_object(depsgraph, ob); | ||||
| me_eval = ob_eval->runtime.mesh_eval; | me_eval = BKE_object_get_evaluated_mesh(ob_eval); | ||||
| if (me_eval == NULL) { | if (me_eval == NULL) { | ||||
| Scene *scene_eval = (Scene *)DEG_get_evaluated_id(depsgraph, &scene->id); | Scene *scene_eval = (Scene *)DEG_get_evaluated_id(depsgraph, &scene->id); | ||||
| me_eval = mesh_get_eval_final(depsgraph, scene_eval, ob_eval, &CD_MASK_BAREMESH); | me_eval = mesh_get_eval_final(depsgraph, scene_eval, ob_eval, &CD_MASK_BAREMESH); | ||||
| } | } | ||||
| me_eval_needs_free = false; | me_eval_needs_free = false; | ||||
| } | } | ||||
| else if (ELEM(ob->type, OB_FONT, OB_CURVE, OB_SURF)) { | else if (ELEM(ob->type, OB_FONT, OB_CURVE, OB_SURF)) { | ||||
| Object *ob_eval = DEG_get_evaluated_object(depsgraph, ob); | Object *ob_eval = DEG_get_evaluated_object(depsgraph, ob); | ||||
| ▲ Show 20 Lines • Show All 106 Lines • Show Last 20 Lines | |||||