Blender  V3.3
bmesh_interp.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #pragma once
4 
9 struct LinkNode;
10 struct MemArena;
11 
13  BMLoop *l_dst,
14  const BMFace *f_src,
15  const float f_dst_center[3],
16  const float f_src_center[3],
17  int cd_loop_mdisp_offset);
21 void BM_loop_interp_multires(BMesh *bm, BMLoop *l_dst, const BMFace *f_src);
22 
24  BMFace *f_dst,
25  const BMFace *f_src,
26  const float f_dst_center[3],
27  const float f_src_center[3],
28  int cd_loop_mdisp_offset);
29 void BM_face_interp_multires(BMesh *bm, BMFace *f_dst, const BMFace *f_src);
30 
31 void BM_vert_interp_from_face(BMesh *bm, BMVert *v_dst, const BMFace *f_src);
32 
41  BMesh *bm, const BMVert *v_src_1, const BMVert *v_src_2, BMVert *v_dst, float fac);
50  BMesh *bm, const BMEdge *e_src_1, const BMEdge *e_src_2, BMEdge *e_dst, float fac);
58  BMesh *bm, const BMVert *v_src_1, const BMVert *v_src_2, BMVert *v, BMEdge *e, float fac);
60 void BM_data_layer_add_named(BMesh *bm, CustomData *data, int type, const char *name);
65 bool BM_data_layer_free_named(BMesh *bm, CustomData *data, const char *name);
66 void BM_data_layer_free_n(BMesh *bm, CustomData *data, int type, int n);
67 void BM_data_layer_copy(BMesh *bm, CustomData *data, int type, int src_n, int dst_n);
68 
69 float BM_elem_float_data_get(CustomData *cd, void *element, int type);
70 void BM_elem_float_data_set(CustomData *cd, void *element, int type, float val);
71 
80  BMFace *f_dst,
81  const BMFace *f_src,
82  bool do_vertex,
83  const void **blocks,
84  const void **blocks_v,
85  float (*cos_2d)[2],
86  float axis_mat[3][3]);
87 void BM_face_interp_from_face(BMesh *bm, BMFace *f_dst, const BMFace *f_src, bool do_vertex);
94  BMesh *bm, BMLoop *l_dst, const BMFace *f_src, bool do_vertex, bool do_multires);
95 
101 
103  BMesh *bm, BMVert *v, int layer_n, const float *loop_weights, struct MemArena *arena);
107 void BM_vert_loop_groups_data_layer_merge(BMesh *bm, struct LinkNode *groups, int layer_n);
113  struct LinkNode *groups,
114  int layer_n,
115  const float *loop_weights);
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
void BM_face_interp_multires(BMesh *bm, BMFace *f_dst, const BMFace *f_src)
Definition: bmesh_interp.c:559
void BM_data_layer_free_n(BMesh *bm, CustomData *data, int type, int n)
Definition: bmesh_interp.c:922
void BM_data_layer_free(BMesh *bm, CustomData *data, int type)
Definition: bmesh_interp.c:875
float BM_elem_float_data_get(CustomData *cd, void *element, int type)
Definition: bmesh_interp.c:990
void BM_face_interp_multires_ex(BMesh *bm, BMFace *f_dst, const BMFace *f_src, const float f_dst_center[3], const float f_src_center[3], int cd_loop_mdisp_offset)
Definition: bmesh_interp.c:544
void BM_vert_interp_from_face(BMesh *bm, BMVert *v_dst, const BMFace *f_src)
Definition: bmesh_interp.c:736
void BM_face_interp_from_face(BMesh *bm, BMFace *f_dst, const BMFace *f_src, bool do_vertex)
Definition: bmesh_interp.c:169
void BM_data_layer_copy(BMesh *bm, CustomData *data, int type, int src_n, int dst_n)
Definition: bmesh_interp.c:944
bool BM_data_layer_free_named(BMesh *bm, CustomData *data, const char *name)
Definition: bmesh_interp.c:897
void BM_loop_interp_multires_ex(BMesh *bm, BMLoop *l_dst, const BMFace *f_src, const float f_dst_center[3], const float f_src_center[3], int cd_loop_mdisp_offset)
struct LinkNode * BM_vert_loop_groups_data_layer_create(BMesh *bm, BMVert *v, int layer_n, const float *loop_weights, struct MemArena *arena)
void BM_loop_interp_multires(BMesh *bm, BMLoop *l_dst, const BMFace *f_src)
Definition: bmesh_interp.c:529
void BM_data_layer_add(BMesh *bm, CustomData *data, int type)
Definition: bmesh_interp.c:839
void BM_data_layer_add_named(BMesh *bm, CustomData *data, int type, const char *name)
Definition: bmesh_interp.c:857
void BM_data_interp_face_vert_edge(BMesh *bm, const BMVert *v_src_1, const BMVert *v_src_2, BMVert *v, BMEdge *e, float fac)
Data Face-Vert Edge Interpolate.
void BM_face_multires_bounds_smooth(BMesh *bm, BMFace *f)
Definition: bmesh_interp.c:574
void BM_loop_interp_from_face(BMesh *bm, BMLoop *l_dst, const BMFace *f_src, bool do_vertex, bool do_multires)
Definition: bmesh_interp.c:682
void BM_vert_loop_groups_data_layer_merge_weights(BMesh *bm, struct LinkNode *groups, int layer_n, const float *loop_weights)
void BM_data_interp_from_verts(BMesh *bm, const BMVert *v_src_1, const BMVert *v_src_2, BMVert *v_dst, float fac)
Data, Interpolate From Verts.
Definition: bmesh_interp.c:68
void BM_face_interp_from_face_ex(BMesh *bm, BMFace *f_dst, const BMFace *f_src, bool do_vertex, const void **blocks, const void **blocks_v, float(*cos_2d)[2], float axis_mat[3][3])
Data Interpolate From Face.
Definition: bmesh_interp.c:136
void BM_elem_float_data_set(CustomData *cd, void *element, int type, float val)
Definition: bmesh_interp.c:996
void BM_data_interp_from_edges(BMesh *bm, const BMEdge *e_src_1, const BMEdge *e_src_2, BMEdge *e_dst, float fac)
Data, Interpolate From Edges.
Definition: bmesh_interp.c:75
void BM_vert_loop_groups_data_layer_merge(BMesh *bm, struct LinkNode *groups, int layer_n)
ATTR_WARN_UNUSED_RESULT BMesh * bm
ATTR_WARN_UNUSED_RESULT const void * element
ATTR_WARN_UNUSED_RESULT const BMVert const BMEdge * e
ATTR_WARN_UNUSED_RESULT const BMVert * v
const char * name
Definition: BLI_memarena.c:42