Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/object/object_modifier.c
| Show First 20 Lines • Show All 407 Lines • ▼ Show 20 Lines | if (md->next) { | ||||
| BLI_remlink(&ob->modifiers, md); | BLI_remlink(&ob->modifiers, md); | ||||
| BLI_insertlinkafter(&ob->modifiers, md->next, md); | BLI_insertlinkafter(&ob->modifiers, md->next, md); | ||||
| } | } | ||||
| return 1; | return 1; | ||||
| } | } | ||||
| int ED_object_modifier_convert(ReportList *UNUSED(reports), Main *bmain, Scene *scene, SceneLayer *sl, Object *ob, ModifierData *md) | int ED_object_modifier_convert(ReportList *UNUSED(reports), Main *bmain, Scene *scene, ViewLayer *sl, Object *ob, ModifierData *md) | ||||
| { | { | ||||
| Object *obn; | Object *obn; | ||||
| ParticleSystem *psys; | ParticleSystem *psys; | ||||
| ParticleCacheKey *key, **cache; | ParticleCacheKey *key, **cache; | ||||
| ParticleSettings *part; | ParticleSettings *part; | ||||
| Mesh *me; | Mesh *me; | ||||
| MVert *mvert; | MVert *mvert; | ||||
| MEdge *medge; | MEdge *medge; | ||||
| ▲ Show 20 Lines • Show All 452 Lines • ▼ Show 20 Lines | ModifierData *edit_modifier_property_get(wmOperator *op, Object *ob, int type) | ||||
| return md; | return md; | ||||
| } | } | ||||
| /************************ remove modifier operator *********************/ | /************************ remove modifier operator *********************/ | ||||
| static int modifier_remove_exec(bContext *C, wmOperator *op) | static int modifier_remove_exec(bContext *C, wmOperator *op) | ||||
| { | { | ||||
| Main *bmain = CTX_data_main(C); | Main *bmain = CTX_data_main(C); | ||||
| SceneLayer *sl = CTX_data_scene_layer(C); | ViewLayer *sl = CTX_data_view_layer(C); | ||||
| Object *ob = ED_object_active_context(C); | Object *ob = ED_object_active_context(C); | ||||
| ModifierData *md = edit_modifier_property_get(op, ob, 0); | ModifierData *md = edit_modifier_property_get(op, ob, 0); | ||||
| int mode_orig = ob->mode; | int mode_orig = ob->mode; | ||||
| if (!md || !ED_object_modifier_remove(op->reports, bmain, ob, md)) | if (!md || !ED_object_modifier_remove(op->reports, bmain, ob, md)) | ||||
| return OPERATOR_CANCELLED; | return OPERATOR_CANCELLED; | ||||
| WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob); | WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob); | ||||
| ▲ Show 20 Lines • Show All 159 Lines • ▼ Show 20 Lines | |||||
| } | } | ||||
| /************************ convert modifier operator *********************/ | /************************ convert modifier operator *********************/ | ||||
| static int modifier_convert_exec(bContext *C, wmOperator *op) | static int modifier_convert_exec(bContext *C, wmOperator *op) | ||||
| { | { | ||||
| Main *bmain = CTX_data_main(C); | Main *bmain = CTX_data_main(C); | ||||
| Scene *scene = CTX_data_scene(C); | Scene *scene = CTX_data_scene(C); | ||||
| SceneLayer *sl = CTX_data_scene_layer(C); | ViewLayer *sl = CTX_data_view_layer(C); | ||||
| Object *ob = ED_object_active_context(C); | Object *ob = ED_object_active_context(C); | ||||
| ModifierData *md = edit_modifier_property_get(op, ob, 0); | ModifierData *md = edit_modifier_property_get(op, ob, 0); | ||||
| if (!md || !ED_object_modifier_convert(op->reports, bmain, scene, sl, ob, md)) | if (!md || !ED_object_modifier_convert(op->reports, bmain, scene, sl, ob, md)) | ||||
| return OPERATOR_CANCELLED; | return OPERATOR_CANCELLED; | ||||
| DEG_id_tag_update(&ob->id, OB_RECALC_DATA); | DEG_id_tag_update(&ob->id, OB_RECALC_DATA); | ||||
| WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob); | WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob); | ||||
| ▲ Show 20 Lines • Show All 623 Lines • ▼ Show 20 Lines | skin_armature_bone_create(skin_ob, | ||||
| arm, | arm, | ||||
| edges_visited, | edges_visited, | ||||
| emap, | emap, | ||||
| bone, | bone, | ||||
| v); | v); | ||||
| } | } | ||||
| } | } | ||||
| static Object *modifier_skin_armature_create(const bContext *C, Scene *scene, SceneLayer *sl, Object *skin_ob) | static Object *modifier_skin_armature_create(const bContext *C, Scene *scene, ViewLayer *sl, Object *skin_ob) | ||||
| { | { | ||||
| Main *bmain = CTX_data_main(C); | Main *bmain = CTX_data_main(C); | ||||
| EvaluationContext eval_ctx; | EvaluationContext eval_ctx; | ||||
| BLI_bitmap *edges_visited; | BLI_bitmap *edges_visited; | ||||
| DerivedMesh *deform_dm; | DerivedMesh *deform_dm; | ||||
| MVert *mvert; | MVert *mvert; | ||||
| Mesh *me = skin_ob->data; | Mesh *me = skin_ob->data; | ||||
| Object *arm_ob; | Object *arm_ob; | ||||
| ▲ Show 20 Lines • Show All 69 Lines • ▼ Show 20 Lines | static Object *modifier_skin_armature_create(const bContext *C, Scene *scene, ViewLayer *sl, Object *skin_ob) | ||||
| return arm_ob; | return arm_ob; | ||||
| } | } | ||||
| static int skin_armature_create_exec(bContext *C, wmOperator *op) | static int skin_armature_create_exec(bContext *C, wmOperator *op) | ||||
| { | { | ||||
| Main *bmain = CTX_data_main(C); | Main *bmain = CTX_data_main(C); | ||||
| Scene *scene = CTX_data_scene(C); | Scene *scene = CTX_data_scene(C); | ||||
| SceneLayer *sl = CTX_data_scene_layer(C); | ViewLayer *sl = CTX_data_view_layer(C); | ||||
| Object *ob = CTX_data_active_object(C), *arm_ob; | Object *ob = CTX_data_active_object(C), *arm_ob; | ||||
| Mesh *me = ob->data; | Mesh *me = ob->data; | ||||
| ModifierData *skin_md; | ModifierData *skin_md; | ||||
| ArmatureModifierData *arm_md; | ArmatureModifierData *arm_md; | ||||
| if (!CustomData_has_layer(&me->vdata, CD_MVERT_SKIN)) { | if (!CustomData_has_layer(&me->vdata, CD_MVERT_SKIN)) { | ||||
| BKE_reportf(op->reports, RPT_WARNING, "Mesh '%s' has no skin vertex data", me->id.name + 2); | BKE_reportf(op->reports, RPT_WARNING, "Mesh '%s' has no skin vertex data", me->id.name + 2); | ||||
| return OPERATOR_CANCELLED; | return OPERATOR_CANCELLED; | ||||
| ▲ Show 20 Lines • Show All 577 Lines • Show Last 20 Lines | |||||