Blender V4.5
meshlaplacian.h File Reference

Go to the source code of this file.

Typedefs

typedef struct LaplacianSystem LaplacianSystem

Functions

void laplacian_add_vertex (LaplacianSystem *sys, float *co, int pinned)
void laplacian_add_triangle (LaplacianSystem *sys, int v1, int v2, int v3)
void laplacian_begin_solve (LaplacianSystem *sys, int index)
void laplacian_add_right_hand_side (LaplacianSystem *sys, int v, float value)
int laplacian_system_solve (LaplacianSystem *sys)
float laplacian_system_get_solution (LaplacianSystem *sys, int v)
void heat_bone_weighting (struct Object *ob, struct Mesh *mesh, float(*verts)[3], int numbones, struct bDeformGroup **dgrouplist, struct bDeformGroup **dgroupflip, float(*root)[3], float(*tip)[3], const bool *selected, const char **r_error_str)

Detailed Description

BIF_meshlaplacian.h: Algorithms using the mesh laplacian.

Definition in file meshlaplacian.h.

Typedef Documentation

◆ LaplacianSystem

typedef struct LaplacianSystem LaplacianSystem

Definition at line 25 of file meshlaplacian.h.

Function Documentation

◆ heat_bone_weighting()

void heat_bone_weighting ( struct Object * ob,
struct Mesh * mesh,
float(*) verts[3],
int numbones,
struct bDeformGroup ** dgrouplist,
struct bDeformGroup ** dgroupflip,
float(*) root[3],
float(*) tip[3],
const bool * selected,
const char ** r_error_str )

Definition at line 627 of file meshlaplacian.cc.

References Geometry::attributes, LaplacianSystem::HeatWeighting::corner_tris, blender::bke::mesh::corner_tris_calc(), LaplacianSystem::HeatWeighting::corner_verts, Mesh::corners_num, Mesh::editflag, blender::bke::Face, Mesh::faces_num, LaplacianSystem::HeatWeighting::H, LaplacianSystem::heat, heat_bone_weighting(), heat_laplacian_create(), heat_limit_weight(), heat_ray_tree_create(), heat_source_closest(), heat_system_free(), i, blender::offset_indices::OffsetIndices< T >::index_range(), 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(), blender::bke::AttributeAccessor::lookup_or_default(), mask(), ME_EDIT_MIRROR_TOPO, ME_EDIT_PAINT_FACE_SEL, ME_EDIT_PAINT_VERT_SEL, MEM_calloc_arrayN(), MEM_freeN(), MEM_mallocN(), mesh_get_x_mirror_vert(), Object::mode, N_, LaplacianSystem::HeatWeighting::numsource, OB_MODE_WEIGHT_PAINT, LaplacianSystem::HeatWeighting::p, blender::bke::Point, poly_to_tri_count(), LaplacianSystem::HeatWeighting::root, blender::Span< T >::slice(), LaplacianSystem::HeatWeighting::tip, LaplacianSystem::HeatWeighting::tris_num, LaplacianSystem::HeatWeighting::verts, LaplacianSystem::HeatWeighting::verts_num, Mesh::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(), and heat_bone_weighting().

◆ laplacian_add_right_hand_side()

void laplacian_add_right_hand_side ( LaplacianSystem * sys,
int v,
float value )

◆ laplacian_add_triangle()

void laplacian_add_triangle ( LaplacianSystem * sys,
int v1,
int v2,
int v3 )

◆ laplacian_add_vertex()

void laplacian_add_vertex ( LaplacianSystem * sys,
float * co,
int pinned )

◆ laplacian_begin_solve()

◆ laplacian_system_get_solution()

float laplacian_system_get_solution ( LaplacianSystem * sys,
int v )

◆ laplacian_system_solve()