27 const int *corner_verts,
28 float (*r_looptangent)[4],
29 const float (*corner_normals)[3],
30 const float (*loopuv)[2],
43 float (*r_looptangents)[4],
51 const int *corner_verts,
53 const int *corner_tri_faces,
58 bool calc_active_tangent,
60 int tangent_names_len,
67 uint loopdata_out_len,
68 short *tangent_mask_curr_p);
71 bool calc_active_tangent,
73 int tangent_names_len);
79 const char *layer_name);
81#define DM_TANGENT_MASK_ORCO (1 << 9)
89 bool calc_active_tangent,
91 int tangent_names_count,
98 short *rtangent_mask);
void BKE_mesh_calc_loop_tangents(Mesh *mesh_eval, bool calc_active_tangent, const char(*tangent_names)[MAX_CUSTOMDATA_LAYER_NAME], int tangent_names_len)
void BKE_mesh_add_loop_tangent_named_layer_for_uv(const CustomData *uv_data, CustomData *tan_data, int numLoopData, const char *layer_name)
void BKE_mesh_calc_loop_tangent_single_ex(const float(*vert_positions)[3], int numVerts, const int *corner_verts, float(*r_looptangent)[4], const float(*corner_normals)[3], const float(*loopuv)[2], int numLoops, blender::OffsetIndices< int > faces, ReportList *reports)
void BKE_mesh_calc_loop_tangent_ex(blender::Span< blender::float3 > vert_positions, blender::OffsetIndices< int > faces, const int *corner_verts, const blender::int3 *corner_tris, const int *corner_tri_faces, uint corner_tris_len, const blender::Span< bool > sharp_faces, const CustomData *loopdata, bool calc_active_tangent, const char(*tangent_names)[MAX_CUSTOMDATA_LAYER_NAME], int tangent_names_len, blender::Span< blender::float3 > vert_normals, blender::Span< blender::float3 > face_normals, blender::Span< blender::float3 > corner_normals, blender::Span< blender::float3 > vert_orco, CustomData *loopdata_out, uint loopdata_out_len, short *tangent_mask_curr_p)
void BKE_mesh_calc_loop_tangent_step_0(const CustomData *loopData, bool calc_active_tangent, const char(*tangent_names)[MAX_CUSTOMDATA_LAYER_NAME], int tangent_names_count, bool *rcalc_act, bool *rcalc_ren, int *ract_uv_n, int *rren_uv_n, char *ract_uv_name, char *rren_uv_name, short *rtangent_mask)
void BKE_mesh_calc_loop_tangent_single(Mesh *mesh, const char *uvmap, float(*r_looptangents)[4], ReportList *reports)
#define MAX_CUSTOMDATA_LAYER_NAME