|
Blender V4.3
|
#include "MEM_guardedalloc.h"#include "DNA_mesh_types.h"#include "DNA_object_types.h"#include "BLI_map.hh"#include "BLI_math_geom.h"#include "BLI_math_matrix.h"#include "BLI_math_rotation.h"#include "BLI_math_vector.h"#include "BLI_memarena.h"#include "BLI_ordered_edge.hh"#include "BLI_string.h"#include "BLT_translation.hh"#include "BKE_attribute.hh"#include "BKE_bvhutils.hh"#include "BKE_mesh.hh"#include "BKE_mesh_wrapper.hh"#include "BKE_modifier.hh"#include "ED_armature.hh"#include "ED_mesh.hh"#include "ED_object_vgroup.hh"#include "eigen_capi.h"#include "meshlaplacian.h"Go to the source code of this file.
Classes | |
| struct | LaplacianSystem |
| struct | LaplacianSystem::HeatWeighting |
| struct | BVHCallbackUserData |
| struct | MDefBoundIsect |
| struct | MDefBindInfluence |
| struct | MeshDeformBind |
| struct | MeshDeformIsect |
| struct | MeshRayCallbackData |
Macros | |
| #define | C_WEIGHT 1.0f |
| #define | WEIGHT_LIMIT_START 0.05f |
| #define | WEIGHT_LIMIT_END 0.025f |
| #define | DISTANCE_EPSILON 1e-4f |
| #define | EPSILON 0.0001f |
| #define | MESHDEFORM_TAG_UNTYPED 0 |
| #define | MESHDEFORM_TAG_BOUNDARY 1 |
| #define | MESHDEFORM_TAG_INTERIOR 2 |
| #define | MESHDEFORM_TAG_EXTERIOR 3 |
| #define | MESHDEFORM_LEN_THRESHOLD 1e-6f |
| #define | MESHDEFORM_MIN_INFLUENCE 0.0005f |
Variables | |
| static const int | MESHDEFORM_OFFSET [7][3] |
Algorithms using the mesh laplacian.
Definition in file meshlaplacian.cc.
| #define C_WEIGHT 1.0f |
Definition at line 359 of file meshlaplacian.cc.
Referenced by heat_set_H().
Definition at line 362 of file meshlaplacian.cc.
Referenced by heat_source_closest().
| #define EPSILON 0.0001f |
Definition at line 849 of file meshlaplacian.cc.
minimum length for MDefBoundIsect.len
Definition at line 857 of file meshlaplacian.cc.
Referenced by meshdeform_ray_tree_intersect().
| #define MESHDEFORM_MIN_INFLUENCE 0.0005f |
Definition at line 859 of file meshlaplacian.cc.
Referenced by meshdeform_matrix_solve().
| #define MESHDEFORM_TAG_BOUNDARY 1 |
Definition at line 852 of file meshlaplacian.cc.
Referenced by meshdeform_add_intersections(), and meshdeform_bind_floodfill().
| #define MESHDEFORM_TAG_EXTERIOR 3 |
Definition at line 854 of file meshlaplacian.cc.
Referenced by meshdeform_bind_floodfill(), meshdeform_check_semibound(), meshdeform_matrix_add_cell(), meshdeform_matrix_add_exterior_phi(), meshdeform_matrix_add_rhs(), and meshdeform_matrix_solve().
| #define MESHDEFORM_TAG_INTERIOR 2 |
Definition at line 853 of file meshlaplacian.cc.
Referenced by meshdeform_bind_floodfill(), and meshdeform_matrix_solve().
| #define MESHDEFORM_TAG_UNTYPED 0 |
Definition at line 851 of file meshlaplacian.cc.
Referenced by harmonic_coordinates_bind(), and meshdeform_bind_floodfill().
| #define WEIGHT_LIMIT_END 0.025f |
Definition at line 361 of file meshlaplacian.cc.
Referenced by heat_limit_weight().
| #define WEIGHT_LIMIT_START 0.05f |
Definition at line 360 of file meshlaplacian.cc.
Referenced by heat_limit_weight().
|
static |
Definition at line 370 of file meshlaplacian.cc.
References dot_v3v3(), float, isect_ray_tri_v3(), isect_ray_tri_watertight_v3(), normal_tri_v3(), UNPACK3, UNUSED_VARS, and verts.
Referenced by heat_ray_source_visible().
| void ED_mesh_deform_bind_callback | ( | Object * | object, |
| MeshDeformModifierData * | mmd, | ||
| Mesh * | cagemesh, | ||
| float * | vertexcos, | ||
| int | verts_num, | ||
| float | cagemat[4][4] ) |
Definition at line 1757 of file meshlaplacian.cc.
References MeshDeformModifierData::bindcagecos, MeshDeformModifierData::bindmat, BKE_mesh_wrapper_ensure_mdata(), BKE_modifier_get_original(), BKE_modifier_mdef_compact_influences(), MeshDeformModifierData::cage_verts_num, copy_m4_m4(), copy_v3_v3(), end_progress_bar(), harmonic_coordinates_bind(), MEM_callocN, MEM_freeN(), MeshDeformModifierData::modifier, mul_m4_v3(), mul_v3_m4v3(), MeshDeformModifierData::object, start_progress_bar(), Mesh::verts_num, MeshDeformModifierData::verts_num, and waitcursor().
Referenced by blender::ed::object::meshdeform_bind_exec().
|
static |
Definition at line 44 of file meshlaplacian.cc.
Referenced by ED_mesh_deform_bind_callback().
|
static |
Definition at line 45 of file meshlaplacian.cc.
Referenced by __attribute__(), add_verts_to_dgroups(), ANIM_apply_keyingset(), blender::gpu::MTLShader::bake_compute_pipeline_state(), blender::gpu::MTLShader::bake_pipeline_state(), Freestyle::BezierCurve::BezierCurve(), Freestyle::StrokeShaders::BezierCurveShader::BezierCurveShader(), Freestyle::Operators::bidirectionalChain(), Freestyle::Operators::bidirectionalChain(), BKE_ptcache_write(), BKE_tracking_reconstruction_solve(), BLI_bitmap_draw_2d_line_v2v2i(), BLI_delete_soft(), BLI_file_alias_target(), BLI_file_attributes(), blo_do_versions_280(), bm_edges_sort_winding(), BM_faces_join(), bmo_join_triangles_exec(), BMO_op_vinitf(), bpy_batch_remove(), bpy_user_map(), Freestyle::Operators::chain(), Freestyle::Operators::chain(), BlenderSession::check_and_report_session_error(), blender::gpu::shader::ShaderCreateInfo::check_error(), blender::gpu::debug::check_gl_error(), clean_tracks_exec(), blender::gpu::ShaderCompiler::compile(), copypose_error(), correctivesmooth_modifier_do(), Freestyle::Operators::create(), blender::gpu::MTLContext::debug_capture_begin(), GHOST_XrContext::dispatchErrorMessage(), dynamicPaint_createUVSurface(), ED_scene_fps_average_calc(), egl_chk(), egl_print_error(), libmv::euclidean_resection::EuclideanResectionPPnP(), expr_pylike_error_test(), film_adaptive_sampling_convergence_check(), filtcolum(), blender::gpu::MTLShader::finalize(), blender::gpu::shader::ShaderCreateInfo::finalize(), Freestyle::FitCurveWrapper::FitCubic(), Freestyle::FitCurveWrapper::FitCurve(), Freestyle::FitCurveWrapper::FitCurve(), blender::animrig::CombinedKeyingResult::generate_reports(), blender::gpu::MTLContextComputeUtils::get_buffer_clear_pso(), IESTextParser::get_double(), get_egl_error_enum_string(), get_egl_error_message_string(), get_limit_motor_info2(), IESTextParser::get_long(), GHOST_NDOFManagerCocoa::GHOST_NDOFManagerCocoa(), GPU_offscreen_create(), GPU_shader_create_info_check_error(), ErrorHandler::handleError(), handleNumInput(), IESTextParser::has_error(), blender::io::ply::import_ply_data(), GHOST_ContextEGL::initializeDrawingContext(), GHOST_ContextWGL::initializeDrawingContext(), DenoiseImage::load(), blender::io::ply::load_edge_element(), DenoiseImage::load_previous(), blender::io::ply::load_vertex_element(), make_renderinfo_string(), MemorY_ErroR(), merge_pixels(), meshdeform_matrix_solve(), libmv::Dogleg< Function, Jacobian, Solver >::minimize(), libmv::LevenbergMarquardt< Function, Jacobian, Solver >::minimize(), modify_mesh(), open_images(), DenoiseImage::parse_channels(), parse_channels(), blender::ed::greasepencil::polyline_detect_corners(), blender::ed::greasepencil::polyline_fit_curve(), blender::gpu::present(), blender::gpu::Shader::print_log(), ptcache_basic_header_read(), ptcache_disk_frame_to_mem(), ptcache_file_header_begin_read(), ptcache_mem_frame_to_disk(), ptcache_read_stream(), ptcache_write(), ptcache_write_stream(), pygpu_shader_create_from_info(), pyop_poll_message_get_fn(), pyrna_enum_bitmap_from_set(), pyrna_func_error_prefix(), quad_calc_error(), reconstruct_retrieve_libmv_tracks(), rna_def_function(), RNA_def_property(), RNA_def_property_srna(), RNA_def_struct_ptr(), DenoiseImage::save_output(), save_output(), Freestyle::Operators::sequentialSplit(), Freestyle::Operators::sequentialSplit(), Denoiser::set_error(), Device::set_error(), blender::gpu::MTLCommandBufferManager::submit(), surfaceGenerateGrid(), mv::TEST(), mv::TEST(), mv::TEST(), mv::TEST(), mv::TEST(), mv::TEST(), btDeformableLagrangianForce::testDerivative(), btDeformableLagrangianForce::testHessian(), ui_number_from_string_units(), UI_ThemeGetColorPtr(), libmv::Dogleg< Function, Jacobian, Solver >::Update(), libmv::LevenbergMarquardt< Function, Jacobian, Solver >::Update(), iTaSC::Distance::updateControlOutput(), and wm_xr_error_handler().
|
static |
Definition at line 1582 of file meshlaplacian.cc.
References b, MeshDeformModifierData::bindweights, BKE_bvhtree_from_mesh_get(), BLI_memarena_free(), BLI_memarena_new(), BLI_MEMARENA_STD_BUFSIZE, BLI_memarena_use_calloc(), MeshDeformBind::boundisect, MeshDeformBind::bvhdata, MeshDeformBind::bvhtree, BVHTREE_FROM_CORNER_TRIS, MeshDeformBind::cage_verts_num, MeshDeformBind::cagecos, MeshDeformBind::cagemesh, MeshDeformBind::cagemesh_cache, copy_v3_v3(), MeshDeformBind::corner_tris, MeshDeformBind::corner_verts, MeshDeformModifierData::dyncellmin, MeshDeformModifierData::dyncellwidth, MeshDeformBind::dyngrid, MeshDeformModifierData::dyngrid, MeshDeformModifierData::dyngridsize, MeshDeformModifierData::dyninfluences, MeshDeformModifierData::dynverts, MeshDeformBind::face_normals, MeshDeformBind::faces, MeshDeformModifierData::flag, free_bvhtree_from_mesh(), MeshDeformModifierData::gridsize, MeshDeformBind::halfwidth, MDefCell::influences_num, MeshDeformModifierData::influences_num, INIT_MINMAX, MeshDeformBind::inside, MeshDeformBind::max, MEM_callocN, MEM_freeN(), MeshDeformBind::memarena, meshdeform_add_intersections(), meshdeform_bind_floodfill(), meshdeform_check_semibound(), meshdeform_inside_cage(), meshdeform_matrix_solve(), MESHDEFORM_TAG_UNTYPED, MeshDeformBind::min, minmax_v3v3_v3(), MOD_MDEF_DYNAMIC_BIND, MDefBindInfluence::next, MDefCell::offset, MeshDeformBind::phi, progress_bar(), MeshDeformBind::semibound, MeshDeformBind::size, MeshDeformBind::size3, MeshDeformBind::tag, MeshDeformBind::totalphi, MeshDeformBind::tri_faces, MDefBindInfluence::vertex, MDefInfluence::vertex, MeshDeformBind::vertexcos, MeshDeformBind::verts_num, MDefBindInfluence::weight, MDefInfluence::weight, MeshDeformBind::weights, MeshDeformBind::width, x, y, and z().
Referenced by ED_mesh_deform_bind_callback().
|
static |
Definition at line 948 of file meshlaplacian.cc.
References MeshDeformBind::cagecos, MeshDeformBind::cagemesh_cache, copy_v3_v3(), MeshDeformBind::corner_tris, MeshDeformBind::corner_verts, dot_v3v3(), MeshDeformBind::face_normals, blender::Span< T >::is_empty(), MeshDeformIsect::isect, isect_ray_tri_watertight_v3(), MeshDeformIsect::lambda, madd_v3_v3v3fl(), normal_tri_v3(), MeshDeformBind::tri_faces, UNPACK3, and MeshDeformIsect::vec_length.
Referenced by meshdeform_ray_tree_intersect().
| void heat_bone_weighting | ( | Object * | ob, |
| Mesh * | mesh, | ||
| float(*) | verts[3], | ||
| int | numbones, | ||
| bDeformGroup ** | dgrouplist, | ||
| bDeformGroup ** | dgroupflip, | ||
| float(*) | root[3], | ||
| float(*) | tip[3], | ||
| const bool * | selected, | ||
| const char ** | r_error_str ) |
Definition at line 630 of file meshlaplacian.cc.
References LaplacianSystem::HeatWeighting::corner_tris, blender::bke::mesh::corner_tris_calc(), LaplacianSystem::HeatWeighting::corner_verts, LaplacianSystem::HeatWeighting::H, LaplacianSystem::heat, heat_laplacian_create(), heat_limit_weight(), heat_ray_tree_create(), heat_source_closest(), heat_system_free(), laplacian_add_right_hand_side(), laplacian_begin_solve(), laplacian_system_construct_begin(), laplacian_system_construct_end(), laplacian_system_delete(), laplacian_system_get_solution(), laplacian_system_solve(), ME_EDIT_MIRROR_TOPO, ME_EDIT_PAINT_FACE_SEL, ME_EDIT_PAINT_VERT_SEL, MEM_callocN, MEM_freeN(), MEM_mallocN, mesh_get_x_mirror_vert(), Object::mode, N_, LaplacianSystem::HeatWeighting::numsource, OB_MODE_WEIGHT_PAINT, LaplacianSystem::HeatWeighting::p, poly_to_tri_count(), LaplacianSystem::HeatWeighting::root, blender::Span< T >::slice(), LaplacianSystem::HeatWeighting::tip, LaplacianSystem::HeatWeighting::tris_num, LaplacianSystem::HeatWeighting::verts, verts, LaplacianSystem::HeatWeighting::verts_num, blender::ed::object::vgroup_vert_add(), blender::ed::object::vgroup_vert_remove(), blender::ed::object::vgroup_vert_weight(), WEIGHT_ADD, and WEIGHT_REPLACE.
Referenced by add_verts_to_dgroups().
|
static |
Definition at line 545 of file meshlaplacian.cc.
References add_v3_v3(), LaplacianSystem::faces, LaplacianSystem::faces_num, LaplacianSystem::heat, MEM_callocN, normal_tri_v3(), normalize_v3(), v2, LaplacianSystem::HeatWeighting::vert_normals, LaplacianSystem::verts, and LaplacianSystem::verts_num.
Referenced by heat_laplacian_create().
|
static |
Definition at line 570 of file meshlaplacian.cc.
References LaplacianSystem::HeatWeighting::corner_tris, LaplacianSystem::HeatWeighting::corner_verts, LaplacianSystem::HeatWeighting::H, LaplacianSystem::heat, heat_calc_vnormals(), heat_set_H(), laplacian_add_triangle(), laplacian_add_vertex(), MEM_callocN, LaplacianSystem::HeatWeighting::mindist, LaplacianSystem::HeatWeighting::p, LaplacianSystem::HeatWeighting::tris_num, UNPACK3, LaplacianSystem::HeatWeighting::verts, and LaplacianSystem::HeatWeighting::verts_num.
Referenced by heat_bone_weighting().
Definition at line 616 of file meshlaplacian.cc.
References WEIGHT_LIMIT_END, and WEIGHT_LIMIT_START.
Referenced by heat_bone_weighting().
|
static |
Definition at line 441 of file meshlaplacian.cc.
References BLI_bvhtree_ray_cast(), bvh_callback(), LaplacianSystem::HeatWeighting::bvhtree, closest_to_line_segment_v3(), copy_v3_v3(), data, e, LaplacianSystem::heat, madd_v3_v3v3fl(), mul_v3_fl(), normalize_v3(), LaplacianSystem::HeatWeighting::root, sub_v3_v3v3(), LaplacianSystem::HeatWeighting::tip, LaplacianSystem::HeatWeighting::verts, and LaplacianSystem::HeatWeighting::vltree.
Referenced by heat_source_closest().
|
static |
Definition at line 403 of file meshlaplacian.cc.
References BLI_bvhtree_balance(), BLI_bvhtree_insert(), BLI_bvhtree_new(), LaplacianSystem::HeatWeighting::bvhtree, LaplacianSystem::HeatWeighting::corner_tris, LaplacianSystem::HeatWeighting::corner_verts, float, LaplacianSystem::heat, INIT_MINMAX, MEM_callocN, minmax_v3v3_v3(), LaplacianSystem::HeatWeighting::tris_num, LaplacianSystem::HeatWeighting::verts, verts, LaplacianSystem::HeatWeighting::verts_num, and LaplacianSystem::HeatWeighting::vltree.
Referenced by heat_bone_weighting().
|
static |
Definition at line 506 of file meshlaplacian.cc.
References C_WEIGHT, LaplacianSystem::HeatWeighting::H, LaplacianSystem::heat, heat_source_closest(), heat_source_distance(), max_ff(), LaplacianSystem::HeatWeighting::mindist, LaplacianSystem::HeatWeighting::numsource, and LaplacianSystem::HeatWeighting::p.
Referenced by heat_laplacian_create().
|
static |
Definition at line 491 of file meshlaplacian.cc.
References DISTANCE_EPSILON, heat_ray_source_visible(), and heat_source_distance().
Referenced by heat_bone_weighting(), and heat_set_H().
|
static |
Definition at line 474 of file meshlaplacian.cc.
References closest_to_line_segment_v3(), dot_v3v3(), LaplacianSystem::heat, normalize_v3(), LaplacianSystem::HeatWeighting::root, sub_v3_v3v3(), LaplacianSystem::HeatWeighting::tip, LaplacianSystem::HeatWeighting::vert_normals, and LaplacianSystem::HeatWeighting::verts.
Referenced by heat_set_H(), and heat_source_closest().
|
static |
Definition at line 604 of file meshlaplacian.cc.
References BLI_bvhtree_free(), LaplacianSystem::HeatWeighting::bvhtree, LaplacianSystem::HeatWeighting::corner_tris, LaplacianSystem::HeatWeighting::H, LaplacianSystem::heat, MEM_freeN(), LaplacianSystem::HeatWeighting::mindist, LaplacianSystem::HeatWeighting::p, LaplacianSystem::HeatWeighting::vert_normals, and LaplacianSystem::HeatWeighting::vltree.
Referenced by heat_bone_weighting().
| void laplacian_add_right_hand_side | ( | LaplacianSystem * | sys, |
| int | v, | ||
| float | value ) |
Definition at line 336 of file meshlaplacian.cc.
References LaplacianSystem::context, EIG_linear_solver_right_hand_side_add(), and v.
Referenced by heat_bone_weighting().
| void laplacian_add_triangle | ( | LaplacianSystem * | sys, |
| int | v1, | ||
| int | v2, | ||
| int | v3 ) |
Definition at line 234 of file meshlaplacian.cc.
References LaplacianSystem::faces, LaplacianSystem::faces_num, and v2.
Referenced by heat_laplacian_create().
| void laplacian_add_vertex | ( | LaplacianSystem * | sys, |
| float * | co, | ||
| int | pinned ) |
Definition at line 227 of file meshlaplacian.cc.
References LaplacianSystem::verts, LaplacianSystem::verts_num, and LaplacianSystem::vpinned.
Referenced by heat_laplacian_create().
| void laplacian_begin_solve | ( | LaplacianSystem * | sys, |
| int | index ) |
Definition at line 318 of file meshlaplacian.cc.
References LaplacianSystem::context, EIG_linear_solver_variable_lock(), EIG_linear_solver_variable_set(), LaplacianSystem::variablesdone, LaplacianSystem::verts, LaplacianSystem::verts_num, and LaplacianSystem::vpinned.
Referenced by heat_bone_weighting(), and laplacian_system_construct_end().
|
static |
Definition at line 109 of file meshlaplacian.cc.
References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup(), and v2.
Referenced by laplacian_triangle_weights().
|
static |
Definition at line 101 of file meshlaplacian.cc.
References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_or_modify(), and v2.
Referenced by laplacian_system_construct_end().
|
static |
Definition at line 197 of file meshlaplacian.cc.
References LaplacianSystem::areaweights, LaplacianSystem::context, EIG_linear_least_squares_solver_new(), EIG_linear_solver_new(), LaplacianSystem::faces, LaplacianSystem::faces_num, MEM_callocN, LaplacianSystem::storeweights, LaplacianSystem::verts, LaplacianSystem::verts_num, and LaplacianSystem::vpinned.
Referenced by heat_bone_weighting().
|
static |
Definition at line 242 of file meshlaplacian.cc.
References LaplacianSystem::areaweights, LaplacianSystem::context, LaplacianSystem::edgehash, EIG_linear_solver_matrix_add(), LaplacianSystem::faces, LaplacianSystem::faces_num, LaplacianSystem::fweights, LaplacianSystem::HeatWeighting::H, LaplacianSystem::heat, int, laplacian_begin_solve(), laplacian_increase_edge_count(), laplacian_triangle_area(), laplacian_triangle_weights(), MEM_callocN, MEM_freeN(), MEM_SAFE_FREE, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::reserve(), LaplacianSystem::storeweights, LaplacianSystem::varea, and LaplacianSystem::verts_num.
Referenced by heat_bone_weighting().
|
static |
Definition at line 296 of file meshlaplacian.cc.
References LaplacianSystem::context, EIG_linear_solver_delete(), LaplacianSystem::faces, LaplacianSystem::fweights, MEM_freeN(), LaplacianSystem::varea, LaplacianSystem::verts, and LaplacianSystem::vpinned.
Referenced by heat_bone_weighting().
| float laplacian_system_get_solution | ( | LaplacianSystem * | sys, |
| int | v ) |
Definition at line 350 of file meshlaplacian.cc.
References LaplacianSystem::context, EIG_linear_solver_variable_get(), and v.
Referenced by heat_bone_weighting().
| int laplacian_system_solve | ( | LaplacianSystem * | sys | ) |
Definition at line 341 of file meshlaplacian.cc.
References LaplacianSystem::context, EIG_linear_solver_solve(), and LaplacianSystem::variablesdone.
Referenced by heat_bone_weighting().
|
static |
Definition at line 116 of file meshlaplacian.cc.
References angle_v3v3v3(), area_tri_v3(), cotangent_tri_weight_v3(), DEG2RADF, len_v3v3(), v2, LaplacianSystem::varea, and LaplacianSystem::verts.
Referenced by laplacian_system_construct_end().
|
static |
Definition at line 162 of file meshlaplacian.cc.
References LaplacianSystem::context, cotangent_tri_weight_v3(), LaplacianSystem::edgehash, EIG_linear_solver_matrix_add(), LaplacianSystem::fweights, laplacian_edge_count(), LaplacianSystem::storeweights, v2, LaplacianSystem::varea, and LaplacianSystem::verts.
Referenced by laplacian_system_construct_end().
|
static |
Definition at line 1128 of file meshlaplacian.cc.
References MeshDeformBind::boundisect, meshdeform_cell_center(), meshdeform_index(), meshdeform_ray_tree_intersect(), MESHDEFORM_TAG_BOUNDARY, MeshDeformBind::tag, and z().
Referenced by harmonic_coordinates_bind().
|
static |
Definition at line 1153 of file meshlaplacian.cc.
References b, MeshDeformBind::boundisect, MEM_callocN, MEM_freeN(), meshdeform_index(), MESHDEFORM_TAG_BOUNDARY, MESHDEFORM_TAG_EXTERIOR, MESHDEFORM_TAG_INTERIOR, MESHDEFORM_TAG_UNTYPED, printf, MeshDeformBind::semibound, MeshDeformBind::size, size(), MeshDeformBind::size3, and MeshDeformBind::tag.
Referenced by harmonic_coordinates_bind().
|
static |
Definition at line 1221 of file meshlaplacian.cc.
References MeshDeformBind::cagemesh_cache, MeshDeformBind::corner_verts, MDefBoundIsect::face_index, MeshDeformBind::faces, and MDefBoundIsect::poly_weights.
Referenced by meshdeform_matrix_add_rhs(), and meshdeform_matrix_add_semibound_phi().
|
static |
Definition at line 1314 of file meshlaplacian.cc.
References MeshDeformBind::boundisect, MDefBoundIsect::len, meshdeform_index(), MeshDeformBind::semibound, MeshDeformBind::width, and z().
Referenced by meshdeform_matrix_add_cell(), meshdeform_matrix_add_rhs(), and meshdeform_matrix_add_semibound_phi().
| BLI_INLINE void meshdeform_cell_center | ( | MeshDeformBind * | mdb, |
| int | x, | ||
| int | y, | ||
| int | z, | ||
| int | n, | ||
| float * | center ) |
Definition at line 1116 of file meshlaplacian.cc.
References MeshDeformBind::halfwidth, MESHDEFORM_OFFSET, MeshDeformBind::min, MeshDeformBind::width, and z().
Referenced by meshdeform_add_intersections().
|
static |
Definition at line 1298 of file meshlaplacian.cc.
References MeshDeformBind::boundisect, meshdeform_index(), MESHDEFORM_TAG_EXTERIOR, MeshDeformBind::semibound, MeshDeformBind::tag, and z().
Referenced by harmonic_coordinates_bind().
| BLI_INLINE int meshdeform_index | ( | MeshDeformBind * | mdb, |
| int | x, | ||
| int | y, | ||
| int | z, | ||
| int | n ) |
Definition at line 1095 of file meshlaplacian.cc.
References MESHDEFORM_OFFSET, MeshDeformBind::size, size(), x, y, and z().
Referenced by meshdeform_add_intersections(), meshdeform_bind_floodfill(), meshdeform_boundary_total_weight(), meshdeform_check_semibound(), meshdeform_interp_w(), meshdeform_matrix_add_cell(), meshdeform_matrix_add_exterior_phi(), meshdeform_matrix_add_rhs(), and meshdeform_matrix_add_semibound_phi().
|
static |
Definition at line 1069 of file meshlaplacian.cc.
References copy_v3_v3(), MDefBoundIsect::facing, MeshDeformBind::max, MESHDEFORM_OFFSET, meshdeform_ray_tree_intersect(), MeshDeformBind::min, normalize_v3(), and sub_v3_v3v3().
Referenced by harmonic_coordinates_bind().
|
static |
Definition at line 1237 of file meshlaplacian.cc.
References CLAMP, int, meshdeform_index(), MeshDeformBind::phi, result, MeshDeformBind::size, x, y, and z().
Referenced by meshdeform_matrix_solve().
|
static |
Definition at line 1343 of file meshlaplacian.cc.
References MeshDeformBind::boundisect, EIG_linear_solver_matrix_add(), meshdeform_boundary_total_weight(), meshdeform_index(), MESHDEFORM_TAG_EXTERIOR, MeshDeformBind::tag, MeshDeformBind::varidx, MeshDeformBind::width, and z().
Referenced by meshdeform_matrix_solve().
|
static |
Definition at line 1427 of file meshlaplacian.cc.
References meshdeform_index(), MESHDEFORM_TAG_EXTERIOR, MeshDeformBind::phi, MeshDeformBind::semibound, MeshDeformBind::tag, and z().
Referenced by meshdeform_matrix_solve().
|
static |
Definition at line 1372 of file meshlaplacian.cc.
References MeshDeformBind::boundisect, EIG_linear_solver_right_hand_side_add(), MDefBoundIsect::len, meshdeform_boundary_phi(), meshdeform_boundary_total_weight(), meshdeform_index(), MESHDEFORM_TAG_EXTERIOR, rhs, MeshDeformBind::tag, MeshDeformBind::varidx, and z().
Referenced by meshdeform_matrix_solve().
|
static |
Definition at line 1401 of file meshlaplacian.cc.
References MeshDeformBind::boundisect, MDefBoundIsect::len, meshdeform_boundary_phi(), meshdeform_boundary_total_weight(), meshdeform_index(), MeshDeformBind::phi, rhs, MeshDeformBind::semibound, and z().
Referenced by meshdeform_matrix_solve().
|
static |
Definition at line 1454 of file meshlaplacian.cc.
References b, BKE_modifier_set_error(), BLI_memarena_alloc(), MeshDeformBind::cage_verts_num, copy_v3_v3(), MeshDeformBind::dyngrid, EIG_linear_solver_delete(), EIG_linear_solver_new(), EIG_linear_solver_solve(), EIG_linear_solver_variable_get(), error(), fabsf, MeshDeformBind::halfwidth, MeshDeformBind::inside, MEM_callocN, MEM_freeN(), MeshDeformBind::memarena, meshdeform_interp_w(), meshdeform_matrix_add_cell(), meshdeform_matrix_add_exterior_phi(), meshdeform_matrix_add_rhs(), meshdeform_matrix_add_semibound_phi(), MESHDEFORM_MIN_INFLUENCE, MESHDEFORM_TAG_EXTERIOR, MESHDEFORM_TAG_INTERIOR, MeshDeformBind::min, MeshDeformModifierData::modifier, MDefBindInfluence::next, MeshDeformModifierData::object, MeshDeformBind::phi, printf, progress_bar(), MeshDeformBind::semibound, MeshDeformBind::size, MeshDeformBind::size3, SNPRINTF, MeshDeformBind::tag, MeshDeformBind::totalphi, MeshDeformBind::varidx, MDefBindInfluence::vertex, MeshDeformBind::vertexcos, MeshDeformBind::verts_num, MDefBindInfluence::weight, MeshDeformBind::weights, MeshDeformBind::width, x, y, and z().
Referenced by harmonic_coordinates_bind().
|
static |
Definition at line 994 of file meshlaplacian.cc.
References BLI_bvhtree_ray_cast_ex(), BLI_memarena_alloc(), BVH_RAYCAST_DIST_MAX, BVH_RAYCAST_WATERTIGHT, MeshDeformBind::bvhtree, MeshDeformBind::cagecos, MeshDeformBind::cagemesh_cache, MDefBoundIsect::co, copy_v3_v3(), MeshDeformBind::corner_verts, blender::Array< T, InlineBufferCapacity, Allocator >::data(), MDefBoundIsect::face_index, MeshDeformBind::faces, MDefBoundIsect::facing, float, harmonic_ray_callback(), interp_weights_poly_v3(), MeshDeformIsect::isect, MeshDeformIsect::lambda, len, MDefBoundIsect::len, len_v3v3(), madd_v3_v3v3fl(), max_ff(), MeshDeformBind::memarena, MESHDEFORM_LEN_THRESHOLD, normalize_v3_v3(), MDefBoundIsect::poly_weights, MeshDeformIsect::start, sub_v3_v3v3(), MeshDeformBind::tri_faces, UNLIKELY, MeshDeformIsect::vec, and MeshDeformIsect::vec_length.
Referenced by meshdeform_add_intersections(), and meshdeform_inside_cage().
|
static |
Definition at line 42 of file meshlaplacian.cc.
Referenced by harmonic_coordinates_bind(), meshdeform_matrix_solve(), and uiItemProgressIndicator().
|
static |
Definition at line 43 of file meshlaplacian.cc.
Referenced by ED_mesh_deform_bind_callback().
|
static |
Definition at line 41 of file meshlaplacian.cc.
Referenced by ED_mesh_deform_bind_callback().
|
static |
Definition at line 861 of file meshlaplacian.cc.
Referenced by meshdeform_cell_center(), meshdeform_index(), and meshdeform_inside_cage().