|
Blender
V2.93
|
#include "BLI_utildefines.h"#include "BLI_bitmap.h"#include "BLI_math.h"#include "BLI_utildefines_stack.h"#include "DNA_mesh_types.h"#include "DNA_meshdata_types.h"#include "DNA_object_types.h"#include "MEM_guardedalloc.h"#include "BKE_deform.h"#include "BKE_mesh.h"#include "BKE_particle.h"#include "MOD_modifiertypes.h"#include "MOD_solidify_util.h"#include "MOD_util.h"Go to the source code of this file.
Classes | |
| struct | EdgeFaceRef |
Macros | |
| #define | INVALID_UNUSED ((uint)-1) |
| #define | INVALID_PAIR ((uint)-2) |
| #define | INIT_VERT_ARRAY_OFFSETS(test) |
| #define | SOLIDIFY_SIDE_NORMALS |
Functions | |
Local Utilities | |
| BLI_INLINE void | madd_v3v3short_fl (float r[3], const short a[3], const float f) |
Main Solidify Function | |
| Mesh * | MOD_solidify_extrude_modifyMesh (ModifierData *md, const ModifierEvalContext *ctx, Mesh *mesh) |
High Quality Normal Calculation Function | |
| #define | USE_NONMANIFOLD_WORKAROUND |
| typedef struct EdgeFaceRef | EdgeFaceRef |
| BLI_INLINE bool | edgeref_is_init (const EdgeFaceRef *edge_ref) |
| static void | mesh_calc_hq_normal (Mesh *mesh, float(*poly_nors)[3], float(*r_vert_nors)[3]) |
| #define INIT_VERT_ARRAY_OFFSETS | ( | test | ) |
| #define INVALID_PAIR ((uint)-2) |
| #define INVALID_UNUSED ((uint)-1) |
| #define SOLIDIFY_SIDE_NORMALS |
| #define USE_NONMANIFOLD_WORKAROUND |
Definition at line 64 of file MOD_solidify_extrude.c.
| typedef struct EdgeFaceRef EdgeFaceRef |
| BLI_INLINE bool edgeref_is_init | ( | const EdgeFaceRef * | edge_ref | ) |
Definition at line 74 of file MOD_solidify_extrude.c.
References EdgeFaceRef::p1, and EdgeFaceRef::p2.
Referenced by mesh_calc_hq_normal().
| BLI_INLINE void madd_v3v3short_fl | ( | float | r[3], |
| const short | a[3], | ||
| const float | f | ||
| ) |
Definition at line 50 of file MOD_solidify_extrude.c.
References Freestyle::a, float(), and r.
Referenced by MOD_solidify_extrude_modifyMesh().
|
static |
| mesh | Mesh to calculate normals for. |
| poly_nors | Precalculated face normals. |
| r_vert_nors | Return vert normals. |
Definition at line 84 of file MOD_solidify_extrude.c.
References add_v3_v3(), add_v3_v3v3(), angle_normalized_v3v3(), CD_MVERT, copy_v3_v3(), CustomData_duplicate_referenced_layer(), MLoop::e, edgeref_is_init(), MEdge::flag, MPoly::loopstart, ME_EDGE_TMP_TAG, Mesh::medge, MEM_calloc_arrayN, MEM_freeN, mesh, mid_v3_v3v3_angle_weighted(), Mesh::mloop, Mesh::mpoly, Mesh::mvert, normal_short_to_float_v3(), normalize_v3(), normalize_v3_length(), EdgeFaceRef::p1, EdgeFaceRef::p2, Mesh::totedge, MPoly::totloop, Mesh::totpoly, and Mesh::totvert.
Referenced by MOD_solidify_extrude_modifyMesh().
| Mesh* MOD_solidify_extrude_modifyMesh | ( | ModifierData * | md, |
| const ModifierEvalContext * | ctx, | ||
| Mesh * | mesh | ||
| ) |
Definition at line 187 of file MOD_solidify_extrude.c.
References add_v3_v3(), angle(), angle_normalized_v3v3(), angle_signed_on_axis_v3v3_v3(), SolidifyModifierData::bevel_convex, BKE_defvert_ensure_index(), BKE_defvert_find_weight(), BKE_mesh_calc_normals_poly(), BKE_mesh_new_nomain_from_template(), BKE_object_defgroup_name_index(), BLI_assert, BLI_BITMAP_ENABLE, BLI_BITMAP_NEW, BLI_BITMAP_TEST, MEdge::bweight, CD_CALLOC, Mesh_Runtime::cd_dirty_vert, CD_MASK_NORMAL, CD_MDEFORMVERT, CD_ORIGINDEX, CLAMP, clamp_f(), clamp_i(), MVert::co, copy_v3_v3(), copy_vn_fl(), copy_vn_i(), cosf, MEdge::crease, SolidifyModifierData::crease_inner, SolidifyModifierData::crease_outer, SolidifyModifierData::crease_rim, CustomData_add_layer(), CustomData_copy_data(), CustomData_duplicate_referenced_layer(), CustomData_get_layer(), SolidifyModifierData::defgrp_name, e, MLoop::e, ELEM, fabsf, MEdge::flag, MPoly::flag, SolidifyModifierData::flag, float(), INIT_VERT_ARRAY_OFFSETS, INVALID_PAIR, INVALID_UNUSED, Mesh::ldata, len_squared_v3v3(), LIKELY, MPoly::loopstart, M_PI, madd_v3_v3fl(), madd_v3v3short_fl(), MPoly::mat_nr, SolidifyModifierData::mat_ofs, SolidifyModifierData::mat_ofs_rim, max_ff(), ME_CDFLAG_EDGE_BWEIGHT, ME_CDFLAG_EDGE_CREASE, ME_EDGE_TMP_TAG, ME_EDGEDRAW, ME_EDGERENDER, Mesh::medge, MEM_calloc_arrayN, MEM_freeN, MEM_malloc_arrayN, mesh, mesh_calc_hq_normal(), min_ff(), Mesh::mloop, MOD_get_vgroup(), MOD_SOLIDIFY_EVEN, MOD_SOLIDIFY_FLIP, MOD_SOLIDIFY_NORMAL_CALC, MOD_SOLIDIFY_NOSHELL, MOD_SOLIDIFY_OFFSET_ANGLE_CLAMP, MOD_SOLIDIFY_RIM, MOD_SOLIDIFY_VGROUP_INV, Mesh::mpoly, Mesh::mvert, negate_v3_short(), nor, normal_float_to_short_v3(), normal_quad_v3(), normal_short_to_float_v3(), normalize_v3(), normalize_v3_v3(), NULL, ModifierEvalContext::object, SolidifyModifierData::offset, SolidifyModifierData::offset_clamp, SolidifyModifierData::offset_fac, SolidifyModifierData::offset_fac_vg, ORIGINDEX_NONE, result, SolidifyModifierData::rim_defgrp_name, Mesh::runtime, SolidifyModifierData::shell_defgrp_name, shell_v3v3_normalized_to_dist(), sqrtf, STACK_DECLARE, STACK_INIT, STACK_PUSH, STACK_SIZE, stride, sub_v3_v3v3(), Object::totcol, Mesh::totedge, Mesh::totloop, MPoly::totloop, Mesh::totpoly, Mesh::totvert, v, MLoop::v, v1, MEdge::v1, v2, MEdge::v2, and MDeformWeight::weight.
Referenced by modifyMesh().