Blender  V3.3
bmesh_mesh_normals.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #pragma once
4 
9 #include "bmesh_class.h"
10 
17 };
18 
31  const struct BMPartialUpdate *bmpinfo,
32  const struct BMeshNormalsUpdate_Params *param);
34 
42  const float (*fnos)[3],
43  const float (*vcos)[3],
44  float (*vnos)[3]);
53  const float (*vcos)[3],
54  const float (*vnos)[3],
55  const float (*fnos)[3],
56  bool use_split_normals,
57  float split_angle,
58  float (*r_lnos)[3],
59  struct MLoopNorSpaceArray *r_lnors_spacearr,
60  short (*clnors_data)[2],
61  int cd_loop_clnors_offset,
62  bool do_rebuild);
63 
70 void BM_lnorspacearr_store(BMesh *bm, float (*r_lnors)[3]);
71 void BM_lnorspace_invalidate(BMesh *bm, bool do_invalidate_all);
72 void BM_lnorspace_rebuild(BMesh *bm, bool preserve_clnor);
78 void BM_normals_loops_edges_tag(BMesh *bm, bool do_edges);
79 #ifndef NDEBUG
81 #endif
82 
83 /* Loop Generics */
85  bool do_all_loops_of_vert);
87 
93 void BM_custom_loop_normals_from_vector_layer(struct BMesh *bm, bool add_sharp_edges);
94 
101 void BM_edges_sharp_from_angle_set(BMesh *bm, float split_angle);
ATTR_WARN_UNUSED_RESULT BMesh * bm
void BM_lnorspacearr_store(BMesh *bm, float(*r_lnors)[3])
void BM_lnorspace_update(BMesh *bm)
void BM_custom_loop_normals_from_vector_layer(struct BMesh *bm, bool add_sharp_edges)
void BM_edges_sharp_from_angle_set(BMesh *bm, float split_angle)
void BM_lnorspace_rebuild(BMesh *bm, bool preserve_clnor)
struct BMLoopNorEditDataArray * BM_loop_normal_editdata_array_init(BMesh *bm, bool do_all_loops_of_vert)
void BM_mesh_normals_update(BMesh *bm)
void BM_mesh_normals_update_with_partial(BMesh *bm, const struct BMPartialUpdate *bmpinfo)
void BM_lnorspace_err(BMesh *bm)
bool BM_custom_loop_normals_to_vector_layer(struct BMesh *bm)
void BM_loop_normal_editdata_array_free(struct BMLoopNorEditDataArray *lnors_ed_arr)
void BM_normals_loops_edges_tag(BMesh *bm, bool do_edges)
void BM_loops_calc_normal_vcos(BMesh *bm, const float(*vcos)[3], const float(*vnos)[3], const float(*fnos)[3], bool use_split_normals, float split_angle, float(*r_lnos)[3], struct MLoopNorSpaceArray *r_lnors_spacearr, short(*clnors_data)[2], int cd_loop_clnors_offset, bool do_rebuild)
BMesh Compute Loop Normals from/to external data.
bool BM_loop_check_cyclic_smooth_fan(BMLoop *l_curr)
void BM_lnorspace_invalidate(BMesh *bm, bool do_invalidate_all)
void BM_verts_calc_normal_vcos(BMesh *bm, const float(*fnos)[3], const float(*vcos)[3], float(*vnos)[3])
BMesh Compute Normals from/to external data.
void BM_mesh_normals_update_with_partial_ex(BMesh *bm, const struct BMPartialUpdate *bmpinfo, const struct BMeshNormalsUpdate_Params *param)
void BM_mesh_normals_update_ex(BMesh *bm, const struct BMeshNormalsUpdate_Params *param)
BMesh Compute Normals.