Go to the source code of this file.
|
| #define | USE_LOOPTRI_DETECT_QUADS |
| static void | emDM_calc_loop_tangents_thread (TaskPool *__restrict, void *taskdata) |
| void | BKE_editmesh_loop_tangent_calc (BMEditMesh *em, bool calc_active_tangent, const char(*tangent_names)[MAX_CUSTOMDATA_LAYER_NAME], int tangent_names_len, const Span< float3 > face_normals, const Span< float3 > corner_normals, const Span< float3 > vert_orco, CustomData *loopdata_out, const uint loopdata_out_len, short *tangent_mask_curr_p) |
◆ USE_LOOPTRI_DETECT_QUADS
| #define USE_LOOPTRI_DETECT_QUADS |
◆ float3
◆ BKE_editmesh_loop_tangent_calc()
| void BKE_editmesh_loop_tangent_calc |
( |
BMEditMesh * | em, |
|
|
bool | calc_active_tangent, |
|
|
const char(*) | tangent_names[MAX_CUSTOMDATA_LAYER_NAME], |
|
|
int | tangent_names_len, |
|
|
const Span< float3 > | face_normals, |
|
|
const Span< float3 > | corner_normals, |
|
|
const Span< float3 > | vert_orco, |
|
|
CustomData * | loopdata_out, |
|
|
const uint | loopdata_out_len, |
|
|
short * | tangent_mask_curr_p ) |
Definition at line 157 of file editmesh_tangent.cc.
References BKE_mesh_add_loop_tangent_named_layer_for_uv(), BKE_mesh_calc_loop_tangent_step_0(), BLI_assert, BLI_task_pool_create(), BLI_task_pool_free(), BLI_task_pool_push(), BLI_task_pool_work_and_wait(), bm, BMEditMesh::bm, BM_FACE, BM_LOOP, BM_mesh_elem_index_ensure(), BM_VERT, SGLSLEditMeshToTangent::cd_loop_uv_offset, CD_PROP_FLOAT2, CD_SET_DEFAULT, CD_TANGENT, SGLSLEditMeshToTangent::corner_normals, CustomData_add_layer_named(), CustomData_get_layer_index(), CustomData_get_layer_index_n(), CustomData_get_n_offset(), CustomData_get_named_layer_index(), CustomData_number_of_layers(), CustomData_set_layer_active_index(), CustomData_set_layer_render_index(), CustomData_update_typemap(), CustomDataLayer::data, DM_TANGENT_MASK_ORCO, emDM_calc_loop_tangents_thread(), SGLSLEditMeshToTangent::face_as_quad_map, SGLSLEditMeshToTangent::face_normals, i, CustomData::layers, BMEditMesh::looptris, SGLSLEditMeshToTangent::looptris, MAX_CUSTOMDATA_LAYER_NAME, MAX_MTFACE, MAX_NAME, MEM_freeN(), MEM_malloc_arrayN(), CustomDataLayer::name, SGLSLEditMeshToTangent::num_face_as_quad_map, SGLSLEditMeshToTangent::numTessFaces, SGLSLEditMeshToTangent::orco, Array< T, InlineBufferCapacity, Allocator >::size(), SGLSLEditMeshToTangent::tangent, task_pool, and TASK_PRIORITY_HIGH.
◆ emDM_calc_loop_tangents_thread()
| void emDM_calc_loop_tangents_thread |
( |
TaskPool * | __restrict, |
|
|
void * | taskdata ) |
|
static |