Changeset View
Changeset View
Standalone View
Standalone View
source/blender/modifiers/intern/MOD_normal_edit.c
| Show First 20 Lines • Show All 186 Lines • ▼ Show 20 Lines | if (dot_v3v3(polynors[i], norsum) < 0.0f) { | ||||
| flipped = true; | flipped = true; | ||||
| } | } | ||||
| } | } | ||||
| return flipped; | return flipped; | ||||
| } | } | ||||
| static void normalEditModifier_do_radial( | static void normalEditModifier_do_radial( | ||||
| NormalEditModifierData *enmd, const ModifierEvalContext *ctx, | NormalEditModifierData *enmd, const ModifierEvalContext *UNUSED(ctx), | ||||
| Object *ob, Mesh *mesh, | Object *ob, Mesh *mesh, | ||||
| short (*clnors)[2], float (*loopnors)[3], float (*polynors)[3], | short (*clnors)[2], float (*loopnors)[3], float (*polynors)[3], | ||||
| const short mix_mode, const float mix_factor, const float mix_limit, | const short mix_mode, const float mix_factor, const float mix_limit, | ||||
| MDeformVert *dvert, const int defgrp_index, const bool use_invert_vgroup, | MDeformVert *dvert, const int defgrp_index, const bool use_invert_vgroup, | ||||
| MVert *mvert, const int num_verts, MEdge *medge, const int num_edges, | MVert *mvert, const int num_verts, MEdge *medge, const int num_edges, | ||||
| MLoop *mloop, const int num_loops, MPoly *mpoly, const int num_polys) | MLoop *mloop, const int num_loops, MPoly *mpoly, const int num_polys) | ||||
| { | { | ||||
| Object *ob_target = DEG_get_evaluated_object(ctx->depsgraph, enmd->target); | Object *ob_target = enmd->target; | ||||
| const bool do_polynors_fix = (enmd->flag & MOD_NORMALEDIT_NO_POLYNORS_FIX) == 0; | const bool do_polynors_fix = (enmd->flag & MOD_NORMALEDIT_NO_POLYNORS_FIX) == 0; | ||||
| int i; | int i; | ||||
| float (*cos)[3] = MEM_malloc_arrayN((size_t)num_verts, sizeof(*cos), __func__); | float (*cos)[3] = MEM_malloc_arrayN((size_t)num_verts, sizeof(*cos), __func__); | ||||
| float (*nos)[3] = MEM_malloc_arrayN((size_t)num_loops, sizeof(*nos), __func__); | float (*nos)[3] = MEM_malloc_arrayN((size_t)num_loops, sizeof(*nos), __func__); | ||||
| float size[3]; | float size[3]; | ||||
| ▲ Show 20 Lines • Show All 79 Lines • ▼ Show 20 Lines | BKE_mesh_normals_loop_custom_set(mvert, num_verts, medge, num_edges, mloop, nos, num_loops, | ||||
| mpoly, (const float(*)[3])polynors, num_polys, clnors); | mpoly, (const float(*)[3])polynors, num_polys, clnors); | ||||
| MEM_freeN(cos); | MEM_freeN(cos); | ||||
| MEM_freeN(nos); | MEM_freeN(nos); | ||||
| MEM_freeN(done_verts); | MEM_freeN(done_verts); | ||||
| } | } | ||||
| static void normalEditModifier_do_directional( | static void normalEditModifier_do_directional( | ||||
| NormalEditModifierData *enmd, const ModifierEvalContext *ctx, | NormalEditModifierData *enmd, const ModifierEvalContext *UNUSED(ctx), | ||||
| Object *ob, Mesh *mesh, | Object *ob, Mesh *mesh, | ||||
| short (*clnors)[2], float (*loopnors)[3], float (*polynors)[3], | short (*clnors)[2], float (*loopnors)[3], float (*polynors)[3], | ||||
| const short mix_mode, const float mix_factor, const float mix_limit, | const short mix_mode, const float mix_factor, const float mix_limit, | ||||
| MDeformVert *dvert, const int defgrp_index, const bool use_invert_vgroup, | MDeformVert *dvert, const int defgrp_index, const bool use_invert_vgroup, | ||||
| MVert *mvert, const int num_verts, MEdge *medge, const int num_edges, | MVert *mvert, const int num_verts, MEdge *medge, const int num_edges, | ||||
| MLoop *mloop, const int num_loops, MPoly *mpoly, const int num_polys) | MLoop *mloop, const int num_loops, MPoly *mpoly, const int num_polys) | ||||
| { | { | ||||
| Object *ob_target = DEG_get_evaluated_object(ctx->depsgraph, enmd->target); | Object *ob_target = enmd->target; | ||||
| const bool do_polynors_fix = (enmd->flag & MOD_NORMALEDIT_NO_POLYNORS_FIX) == 0; | const bool do_polynors_fix = (enmd->flag & MOD_NORMALEDIT_NO_POLYNORS_FIX) == 0; | ||||
| const bool use_parallel_normals = (enmd->flag & MOD_NORMALEDIT_USE_DIRECTION_PARALLEL) != 0; | const bool use_parallel_normals = (enmd->flag & MOD_NORMALEDIT_USE_DIRECTION_PARALLEL) != 0; | ||||
| float (*nos)[3] = MEM_malloc_arrayN((size_t)num_loops, sizeof(*nos), __func__); | float (*nos)[3] = MEM_malloc_arrayN((size_t)num_loops, sizeof(*nos), __func__); | ||||
| float target_co[3]; | float target_co[3]; | ||||
| int i; | int i; | ||||
| ▲ Show 20 Lines • Show All 267 Lines • Show Last 20 Lines | |||||