Changeset View
Changeset View
Standalone View
Standalone View
source/blender/modifiers/intern/MOD_mirror.c
| Show All 24 Lines | |||||
| #include "DNA_mesh_types.h" | #include "DNA_mesh_types.h" | ||||
| #include "DNA_meshdata_types.h" | #include "DNA_meshdata_types.h" | ||||
| #include "DNA_object_types.h" | #include "DNA_object_types.h" | ||||
| #include "BKE_library.h" | #include "BKE_library.h" | ||||
| #include "BKE_library_query.h" | #include "BKE_library_query.h" | ||||
| #include "BKE_mesh.h" | #include "BKE_mesh.h" | ||||
| #include "BKE_mirror.h" | #include "BKE_mesh_mirror.h" | ||||
| #include "BKE_modifier.h" | #include "BKE_modifier.h" | ||||
| #include "BKE_deform.h" | #include "BKE_deform.h" | ||||
| #include "bmesh.h" | #include "bmesh.h" | ||||
| #include "bmesh_tools.h" | #include "bmesh_tools.h" | ||||
| #include "MEM_guardedalloc.h" | #include "MEM_guardedalloc.h" | ||||
| Show All 31 Lines | static Mesh *mirrorModifier__doMirror(MirrorModifierData *mmd, | ||||
| const ModifierEvalContext *ctx, | const ModifierEvalContext *ctx, | ||||
| Object *ob, | Object *ob, | ||||
| Mesh *mesh) | Mesh *mesh) | ||||
| { | { | ||||
| Mesh *result = mesh; | Mesh *result = mesh; | ||||
| /* check which axes have been toggled and mirror accordingly */ | /* check which axes have been toggled and mirror accordingly */ | ||||
| if (mmd->flag & MOD_MIR_AXIS_X) { | if (mmd->flag & MOD_MIR_AXIS_X) { | ||||
| result = BKE_mirror_apply_mirror_on_axis(mmd, ctx, ob, result, 0); | result = BKE_mesh_mirror_apply_mirror_on_axis(mmd, ctx, ob, result, 0); | ||||
| } | } | ||||
| if (mmd->flag & MOD_MIR_AXIS_Y) { | if (mmd->flag & MOD_MIR_AXIS_Y) { | ||||
| Mesh *tmp = result; | Mesh *tmp = result; | ||||
| result = BKE_mirror_apply_mirror_on_axis(mmd, ctx, ob, result, 1); | result = BKE_mesh_mirror_apply_mirror_on_axis(mmd, ctx, ob, result, 1); | ||||
| if (tmp != mesh) { | if (tmp != mesh) { | ||||
| /* free intermediate results */ | /* free intermediate results */ | ||||
| BKE_id_free(NULL, tmp); | BKE_id_free(NULL, tmp); | ||||
| } | } | ||||
| } | } | ||||
| if (mmd->flag & MOD_MIR_AXIS_Z) { | if (mmd->flag & MOD_MIR_AXIS_Z) { | ||||
| Mesh *tmp = result; | Mesh *tmp = result; | ||||
| result = BKE_mirror_apply_mirror_on_axis(mmd, ctx, ob, result, 2); | result = BKE_mesh_mirror_apply_mirror_on_axis(mmd, ctx, ob, result, 2); | ||||
| if (tmp != mesh) { | if (tmp != mesh) { | ||||
| /* free intermediate results */ | /* free intermediate results */ | ||||
| BKE_id_free(NULL, tmp); | BKE_id_free(NULL, tmp); | ||||
| } | } | ||||
| } | } | ||||
| return result; | return result; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 45 Lines • Show Last 20 Lines | |||||