Blender V5.0
bmesh_mesh_normals.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
10
12#include "BLI_span.hh"
13
14#include "bmesh_class.hh"
15
16struct BMPartialUpdate;
17
25
38 const BMPartialUpdate *bmpinfo,
39 const BMeshNormalsUpdate_Params *param);
41
63 bool use_split_normals,
65 MLoopNorSpaceArray *r_lnors_spacearr,
66 short (*clnors_data)[2],
67 int cd_loop_clnors_offset,
68 bool do_rebuild);
69
77void BM_lnorspace_invalidate(BMesh *bm, bool do_invalidate_all);
78void BM_lnorspace_rebuild(BMesh *bm, bool preserve_clnor);
84void BM_normals_loops_edges_tag(BMesh *bm, bool do_edges);
85#ifndef NDEBUG
87#endif
88
89/* Loop Generics */
90
97 bool do_all_loops_of_vert,
98 char htype_override);
101
107void BM_custom_loop_normals_from_vector_layer(BMesh *bm, bool add_sharp_edges);
108
115void BM_edges_sharp_from_angle_set(BMesh *bm, float split_angle);
BMesh * bm
void BM_mesh_normals_update_with_partial(BMesh *bm, const BMPartialUpdate *bmpinfo)
void BM_mesh_normals_update_ex(BMesh *bm, const BMeshNormalsUpdate_Params *param)
BMesh Compute Normals.
void BM_lnorspace_update(BMesh *bm)
void BM_edges_sharp_from_angle_set(BMesh *bm, float split_angle)
void BM_lnorspace_rebuild(BMesh *bm, bool preserve_clnor)
BMLoopNorEditDataArray * BM_loop_normal_editdata_array_init_with_htype(BMesh *bm, bool do_all_loops_of_vert, char htype_override)
bool BM_custom_loop_normals_to_vector_layer(BMesh *bm)
BMLoopNorEditDataArray * BM_loop_normal_editdata_array_init(BMesh *bm, bool do_all_loops_of_vert)
void BM_verts_calc_normal_vcos(BMesh *bm, blender::Span< blender::float3 > fnos, blender::Span< blender::float3 > vcos, blender::MutableSpan< blender::float3 > vnos)
BMesh Compute Normals from/to external data.
void BM_mesh_normals_update(BMesh *bm)
void BM_lnorspace_err(BMesh *bm)
void BM_loop_normal_editdata_array_free(BMLoopNorEditDataArray *lnors_ed_arr)
void BM_normals_loops_edges_tag(BMesh *bm, bool do_edges)
void BM_lnorspacearr_store(BMesh *bm, blender::MutableSpan< blender::float3 > r_lnors)
bool BM_loop_check_cyclic_smooth_fan(BMLoop *l_curr)
void BM_mesh_normals_update_with_partial_ex(BMesh *bm, const BMPartialUpdate *bmpinfo, const BMeshNormalsUpdate_Params *param)
void BM_lnorspace_invalidate(BMesh *bm, bool do_invalidate_all)
void BM_loops_calc_normal_vcos(BMesh *bm, blender::Span< blender::float3 > vcos, blender::Span< blender::float3 > vnos, blender::Span< blender::float3 > fnos, bool use_split_normals, blender::MutableSpan< blender::float3 > r_lnos, MLoopNorSpaceArray *r_lnors_spacearr, short(*clnors_data)[2], int cd_loop_clnors_offset, bool do_rebuild)
BMesh Compute Loop Normals from/to external data.
void BM_custom_loop_normals_from_vector_layer(BMesh *bm, bool add_sharp_edges)