Blender V4.3
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
11#include "bmesh_class.hh"
12
13struct BMPartialUpdate;
14
22
35 const BMPartialUpdate *bmpinfo,
36 const BMeshNormalsUpdate_Params *param);
38
60 bool use_split_normals,
62 MLoopNorSpaceArray *r_lnors_spacearr,
63 short (*clnors_data)[2],
64 int cd_loop_clnors_offset,
65 bool do_rebuild);
66
74void BM_lnorspace_invalidate(BMesh *bm, bool do_invalidate_all);
75void BM_lnorspace_rebuild(BMesh *bm, bool preserve_clnor);
81void BM_normals_loops_edges_tag(BMesh *bm, bool do_edges);
82#ifndef NDEBUG
84#endif
85
86/* Loop Generics */
89
95void BM_custom_loop_normals_from_vector_layer(BMesh *bm, bool add_sharp_edges);
96
103void BM_edges_sharp_from_angle_set(BMesh *bm, float split_angle);
ATTR_WARN_UNUSED_RESULT 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)
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)