|
Blender
V2.93
|
#include "BLI_utildefines.h"#include "BLI_math.h"#include "BLT_translation.h"#include "DNA_defaults.h"#include "DNA_mesh_types.h"#include "DNA_meshdata_types.h"#include "DNA_object_types.h"#include "DNA_screen_types.h"#include "MEM_guardedalloc.h"#include "BKE_context.h"#include "BKE_deform.h"#include "BKE_editmesh.h"#include "BKE_lib_id.h"#include "BKE_mesh.h"#include "BKE_mesh_wrapper.h"#include "BKE_modifier.h"#include "BKE_screen.h"#include "UI_interface.h"#include "UI_resources.h"#include "RNA_access.h"#include "MOD_ui_common.h"#include "MOD_util.h"#include "eigen_capi.h"Go to the source code of this file.
Classes | |
| struct | BLaplacianSystem |
Typedefs | |
| typedef struct BLaplacianSystem | LaplacianSystem |
Functions | |
| static void | required_data_mask (Object *ob, ModifierData *md, CustomData_MeshMasks *r_cddata_masks) |
| static bool | is_disabled (const struct Scene *scene, ModifierData *md, bool useRenderParams) |
| static float | compute_volume (const float center[3], float(*vertexCos)[3], const MPoly *mpoly, int numPolys, const MLoop *mloop) |
| static LaplacianSystem * | init_laplacian_system (int a_numEdges, int a_numPolys, int a_numLoops, int a_numVerts) |
| static void | delete_laplacian_system (LaplacianSystem *sys) |
| static void | fill_laplacian_matrix (LaplacianSystem *sys) |
| static void | init_data (ModifierData *md) |
| static void | init_laplacian_matrix (LaplacianSystem *sys) |
| static void | memset_laplacian_system (LaplacianSystem *sys, int val) |
| static void | volume_preservation (LaplacianSystem *sys, float vini, float vend, short flag) |
| static void | validate_solution (LaplacianSystem *sys, short flag, float lambda, float lambda_border) |
| static void | laplaciansmoothModifier_do (LaplacianSmoothModifierData *smd, Object *ob, Mesh *mesh, float(*vertexCos)[3], int numVerts) |
| static bool | is_disabled (const struct Scene *UNUSED(scene), ModifierData *md, bool UNUSED(useRenderParams)) |
| static void | required_data_mask (Object *UNUSED(ob), ModifierData *md, CustomData_MeshMasks *r_cddata_masks) |
| static void | deformVerts (ModifierData *md, const ModifierEvalContext *ctx, Mesh *mesh, float(*vertexCos)[3], int numVerts) |
| static void | deformVertsEM (ModifierData *md, const ModifierEvalContext *ctx, struct BMEditMesh *editData, Mesh *mesh, float(*vertexCos)[3], int numVerts) |
| static void | panel_draw (const bContext *UNUSED(C), Panel *panel) |
| static void | panelRegister (ARegionType *region_type) |
Variables | |
| ModifierTypeInfo | modifierType_LaplacianSmooth |
| typedef struct BLaplacianSystem LaplacianSystem |
Definition at line 1 of file MOD_laplaciansmooth.c.
|
static |
Definition at line 160 of file MOD_laplaciansmooth.c.
References center, fabsf, MPoly::loopstart, BLaplacianSystem::mloop, BLaplacianSystem::mpoly, BLaplacianSystem::numPolys, MPoly::totloop, MLoop::v, BLaplacianSystem::vertexCos, and volume_tetrahedron_signed_v3().
Referenced by validate_solution().
|
static |
Definition at line 536 of file MOD_laplaciansmooth.c.
References BKE_id_free(), ELEM, laplaciansmoothModifier_do(), mesh, MOD_deform_mesh_eval_get(), NULL, BLaplacianSystem::numVerts, ModifierEvalContext::object, and BLaplacianSystem::vertexCos.
|
static |
Definition at line 558 of file MOD_laplaciansmooth.c.
References BKE_id_free(), BKE_mesh_wrapper_ensure_mdata(), ELEM, laplaciansmoothModifier_do(), mesh, MOD_deform_mesh_eval_get(), NULL, BLaplacianSystem::numVerts, ModifierEvalContext::object, and BLaplacianSystem::vertexCos.
|
static |
Definition at line 103 of file MOD_laplaciansmooth.c.
References LaplacianSystem::context, EIG_linear_solver_delete(), LaplacianSystem::fweights, MEM_freeN, MEM_SAFE_FREE, and NULL.
Referenced by laplaciansmoothModifier_do().
|
static |
Definition at line 287 of file MOD_laplaciansmooth.c.
References LaplacianSystem::context, EIG_linear_solver_matrix_add(), LaplacianSystem::fweights, MPoly::loopstart, MPoly::totloop, and MLoop::v.
Referenced by laplaciansmoothModifier_do().
|
static |
Definition at line 498 of file MOD_laplaciansmooth.c.
References BLI_assert, DNA_struct_default_get, MEMCMP_STRUCT_AFTER_IS_ZERO, and MEMCPY_STRUCT_AFTER.
Referenced by color_balance_init_handle(), display_buffer_apply_threaded(), display_buffer_init_handle(), do_gaussian_blur_effect(), IMB_scaleImBuf_threaded(), input_preprocess(), modifier_apply_threaded(), modifier_color_balance_apply(), modifier_init_handle(), processor_transform_apply_threaded(), processor_transform_init_handle(), render_effect_execute_init_handle(), scale_thread_init(), seq_render_effect_execute_threaded(), sequencer_image_crop_transform_init(), and wm_block_search_menu().
|
static |
Definition at line 209 of file MOD_laplaciansmooth.c.
References area_tri_v3(), cotangent_tri_weight_v3(), LaplacianSystem::fweights, len_v3v3(), MPoly::loopstart, BLaplacianSystem::min_area, MPoly::totloop, MLoop::v, v1, and v2.
Referenced by laplaciansmoothModifier_do().
|
static |
Definition at line 136 of file MOD_laplaciansmooth.c.
References LaplacianSystem::fweights, MEM_calloc_arrayN, and MEM_callocN.
Referenced by laplaciansmoothModifier_do().
|
static |
|
static |
Definition at line 507 of file MOD_laplaciansmooth.c.
References LaplacianSmoothModifierData::flag, MOD_LAPLACIANSMOOTH_X, MOD_LAPLACIANSMOOTH_Y, and MOD_LAPLACIANSMOOTH_Z.
|
static |
Definition at line 385 of file MOD_laplaciansmooth.c.
References add_v3_v3(), BKE_defvert_find_weight(), LaplacianSystem::context, LaplacianSmoothModifierData::defgrp_name, delete_laplacian_system(), EIG_linear_least_squares_solver_new(), EIG_linear_solver_delete(), EIG_linear_solver_matrix_add(), EIG_linear_solver_right_hand_side_add(), EIG_linear_solver_solve(), EIG_linear_solver_variable_set(), fabsf, fill_laplacian_matrix(), LaplacianSmoothModifierData::flag, init_laplacian_matrix(), init_laplacian_system(), LaplacianSmoothModifierData::lambda, LaplacianSmoothModifierData::lambda_border, Mesh::medge, memset_laplacian_system(), mesh, Mesh::mloop, MOD_get_vgroup(), MOD_LAPLACIANSMOOTH_INVERT_VGROUP, MOD_LAPLACIANSMOOTH_NORMALIZED, Mesh::mpoly, mul_v3_fl(), NULL, BLaplacianSystem::numVerts, LaplacianSmoothModifierData::repeat, Mesh::totedge, Mesh::totloop, Mesh::totpoly, validate_solution(), BLaplacianSystem::vertexCos, and w().
Referenced by deformVerts(), and deformVertsEM().
|
static |
Definition at line 124 of file MOD_laplaciansmooth.c.
References LaplacianSystem::fweights.
Referenced by laplaciansmoothModifier_do().
Definition at line 586 of file MOD_laplaciansmooth.c.
References IFACE_, Panel::layout, modifier_panel_end(), modifier_panel_get_property_pointers(), modifier_vgroup_ui(), NULL, ptr, UI_ITEM_R_FORCE_BLANK_DECORATE, UI_ITEM_R_TOGGLE, uiItemR(), uiLayoutRowWithHeading(), and uiLayoutSetPropSep().
Referenced by panelRegister().
|
static |
Definition at line 615 of file MOD_laplaciansmooth.c.
References eModifierType_LaplacianSmooth, modifier_panel_register(), and panel_draw().
|
static |
|
static |
Definition at line 524 of file MOD_laplaciansmooth.c.
References CD_MASK_MDEFORMVERT, LaplacianSmoothModifierData::defgrp_name, and CustomData_MeshMasks::vmask.
|
static |
Definition at line 350 of file MOD_laplaciansmooth.c.
References compute_volume(), LaplacianSystem::context, EIG_linear_solver_variable_get(), float(), MOD_LAPLACIANSMOOTH_PRESERVE_VOLUME, MOD_LAPLACIANSMOOTH_X, MOD_LAPLACIANSMOOTH_Y, MOD_LAPLACIANSMOOTH_Z, and volume_preservation().
Referenced by laplaciansmoothModifier_do().
|
static |
Definition at line 185 of file MOD_laplaciansmooth.c.
References beta(), MOD_LAPLACIANSMOOTH_X, MOD_LAPLACIANSMOOTH_Y, MOD_LAPLACIANSMOOTH_Z, and KDL::pow().
Referenced by validate_solution().
| ModifierTypeInfo modifierType_LaplacianSmooth |
Definition at line 620 of file MOD_laplaciansmooth.c.