Blender
V3.3
|
#include "BLI_utildefines.h"
#include "BLI_math.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 | NewFaceRef |
struct | OldEdgeFaceRef |
struct | OldVertEdgeRef |
struct | NewEdgeRef |
struct | EdgeGroup |
struct | FaceKeyPair |
Macros | |
#define | MOD_SOLIDIFY_EMPTY_TAG ((uint)-1) |
Functions | |
Local Utilities | |
static float | project_v3_v3 (float r[3], const float a[3]) |
static float | angle_signed_on_axis_normalized_v3v3_v3 (const float n[3], const float ref_n[3], const float axis[3]) |
static float | clamp_nonzero (const float value, const float epsilon) |
Main Solidify Function | |
typedef struct NewFaceRef | NewFaceRef |
typedef struct OldEdgeFaceRef | OldEdgeFaceRef |
typedef struct OldVertEdgeRef | OldVertEdgeRef |
typedef struct NewEdgeRef | NewEdgeRef |
typedef struct EdgeGroup | EdgeGroup |
typedef struct FaceKeyPair | FaceKeyPair |
static int | comp_float_int_pair (const void *a, const void *b) |
Mesh * | MOD_solidify_nonmanifold_modifyMesh (ModifierData *md, const ModifierEvalContext *ctx, Mesh *mesh) |
typedef struct FaceKeyPair FaceKeyPair |
typedef struct NewEdgeRef NewEdgeRef |
typedef struct NewFaceRef NewFaceRef |
typedef struct OldEdgeFaceRef OldEdgeFaceRef |
typedef struct OldVertEdgeRef OldVertEdgeRef |
|
static |
Definition at line 45 of file MOD_solidify_nonmanifold.c.
References acosf, angle(), CLAMP, blender::math::cross(), cross_v3_v3v3(), dot_v3v3(), and M_PI.
Referenced by MOD_solidify_nonmanifold_modifyMesh().
Definition at line 60 of file MOD_solidify_nonmanifold.c.
References BLI_assert, blender::robust_pred::epsilon, max_ff(), and min_ff().
Referenced by MOD_solidify_nonmanifold_modifyMesh().
Definition at line 125 of file MOD_solidify_nonmanifold.c.
References Freestyle::a, usdtokens::b(), x, and y.
Referenced by MOD_solidify_nonmanifold_modifyMesh().
Mesh* MOD_solidify_nonmanifold_modifyMesh | ( | ModifierData * | md, |
const ModifierEvalContext * | ctx, | ||
Mesh * | mesh | ||
) |
Definition at line 133 of file MOD_solidify_nonmanifold.c.
References add_v3_v3(), angle(), FaceKeyPair::angle, angle_signed_on_axis_normalized_v3v3_v3(), SolidifyModifierData::bevel_convex, BKE_id_defgroup_name_index(), BKE_mesh_poly_normals_ensure(), BLI_assert, clamp_nonzero(), MVert::co, comp_float_int_pair(), copy_v3_v3(), SolidifyModifierData::defgrp_name, e, MLoop::e, OldVertEdgeRef::edges, EdgeGroup::edges, OldVertEdgeRef::edges_len, EdgeGroup::edges_len, ELEM, fabsf, NewFaceRef::face, FaceKeyPair::face, faces, OldEdgeFaceRef::faces, OldEdgeFaceRef::faces_len, OldEdgeFaceRef::faces_reversed, SolidifyModifierData::flag, float(), usdtokens::g(), Mesh::id, if(), EdgeGroup::is_orig_closed, EdgeGroup::is_singularity, l, len, len_squared_v3(), LIKELY, MPoly::loopstart, M_PI, SolidifyModifierData::mat_ofs, SolidifyModifierData::mat_ofs_rim, Mesh::medge, MEM_calloc_arrayN, MEM_freeN, MEM_malloc_arrayN, MEM_mallocN, SolidifyModifierData::merge_tolerance, mesh, Mesh::mloop, MOD_get_vgroup(), MOD_SOLIDIFY_EMPTY_TAG, MOD_SOLIDIFY_FLIP, MOD_SOLIDIFY_NONMANIFOLD_FLAT_FACES, MOD_SOLIDIFY_NONMANIFOLD_OFFSET_MODE_CONSTRAINTS, MOD_SOLIDIFY_NOSHELL, MOD_SOLIDIFY_OFFSET_ANGLE_CLAMP, MOD_SOLIDIFY_RIM, MOD_SOLIDIFY_VGROUP_INV, Mesh::mpoly, mul_v3_fl(), Mesh::mvert, negate_v3_v3(), next, SolidifyModifierData::nonmanifold_offset_mode, nor, normalize_v3(), NULL, ModifierEvalContext::object, offset, SolidifyModifierData::offset, SolidifyModifierData::offset_clamp, SolidifyModifierData::offset_fac, SolidifyModifierData::offset_fac_vg, NewEdgeRef::old_edge, pos, project_v3_v3(), result, NewFaceRef::reversed, SolidifyModifierData::rim_defgrp_name, SolidifyModifierData::shell_defgrp_name, blender::io::alembic::split(), sqrtf, sub_v3_v3v3(), SWAP, EdgeGroup::topo_group, Object::totcol, Mesh::totedge, MPoly::totloop, Mesh::totpoly, Mesh::totvert, UNLIKELY, OldEdgeFaceRef::used, v, MLoop::v, v1, MEdge::v1, v2, MEdge::v2, EdgeGroup::valid, and zero_v3().
Referenced by modifyMesh().
Similar to project_v3_v3v3_normalized that returns the dot-product.
Definition at line 36 of file MOD_solidify_nonmanifold.c.
References Freestyle::a, dot_v3v3(), and r.
Referenced by MOD_solidify_nonmanifold_modifyMesh().