Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/blenkernel/intern/mesh_tangent.cc')
-rw-r--r--source/blender/blenkernel/intern/mesh_tangent.cc52
1 files changed, 26 insertions, 26 deletions
diff --git a/source/blender/blenkernel/intern/mesh_tangent.cc b/source/blender/blenkernel/intern/mesh_tangent.cc
index 49ea23a1552..56e731c3adf 100644
--- a/source/blender/blenkernel/intern/mesh_tangent.cc
+++ b/source/blender/blenkernel/intern/mesh_tangent.cc
@@ -47,7 +47,7 @@ struct BKEMeshToTangent {
mikk::float3 GetPosition(const uint face_num, const uint vert_num)
{
const uint loop_idx = uint(mpolys[face_num].loopstart) + vert_num;
- return mikk::float3(mverts[mloops[loop_idx].v].co);
+ return mikk::float3(positions[mloops[loop_idx].v]);
}
mikk::float3 GetTexCoord(const uint face_num, const uint vert_num)
@@ -67,16 +67,16 @@ struct BKEMeshToTangent {
copy_v4_fl4(p_res, T.x, T.y, T.z, orientation ? 1.0f : -1.0f);
}
- const MPoly *mpolys; /* faces */
- const MLoop *mloops; /* faces vertices */
- const MVert *mverts; /* vertices */
- const MLoopUV *luvs; /* texture coordinates */
- const float (*lnors)[3]; /* loops' normals */
- float (*tangents)[4]; /* output tangents */
- int num_polys; /* number of polygons */
+ const MPoly *mpolys; /* faces */
+ const MLoop *mloops; /* faces vertices */
+ const float (*positions)[3]; /* vertices */
+ const MLoopUV *luvs; /* texture coordinates */
+ const float (*lnors)[3]; /* loops' normals */
+ float (*tangents)[4]; /* output tangents */
+ int num_polys; /* number of polygons */
};
-void BKE_mesh_calc_loop_tangent_single_ex(const MVert *mverts,
+void BKE_mesh_calc_loop_tangent_single_ex(const float (*positions)[3],
const int /*numVerts*/,
const MLoop *mloops,
float (*r_looptangent)[4],
@@ -91,7 +91,7 @@ void BKE_mesh_calc_loop_tangent_single_ex(const MVert *mverts,
BKEMeshToTangent mesh_to_tangent;
mesh_to_tangent.mpolys = mpolys;
mesh_to_tangent.mloops = mloops;
- mesh_to_tangent.mverts = mverts;
+ mesh_to_tangent.positions = positions;
mesh_to_tangent.luvs = loopuvs;
mesh_to_tangent.lnors = loopnors;
mesh_to_tangent.tangents = r_looptangent;
@@ -141,7 +141,7 @@ void BKE_mesh_calc_loop_tangent_single(Mesh *mesh,
return;
}
- BKE_mesh_calc_loop_tangent_single_ex(BKE_mesh_verts(mesh),
+ BKE_mesh_calc_loop_tangent_single_ex(BKE_mesh_positions(mesh),
mesh->totvert,
BKE_mesh_loops(mesh),
r_looptangents,
@@ -213,7 +213,7 @@ struct SGLSLMeshToTangent {
{
const MLoopTri *lt;
uint loop_index = GetLoop(face_num, vert_num, lt);
- return mikk::float3(mvert[mloop[loop_index].v].co);
+ return mikk::float3(positions[mloop[loop_index].v]);
}
mikk::float3 GetTexCoord(const uint face_num, const uint vert_num)
@@ -246,18 +246,18 @@ struct SGLSLMeshToTangent {
float normal[3];
if (mp->totloop == 4) {
normal_quad_v3(normal,
- mvert[mloop[mp->loopstart + 0].v].co,
- mvert[mloop[mp->loopstart + 1].v].co,
- mvert[mloop[mp->loopstart + 2].v].co,
- mvert[mloop[mp->loopstart + 3].v].co);
+ positions[mloop[mp->loopstart + 0].v],
+ positions[mloop[mp->loopstart + 1].v],
+ positions[mloop[mp->loopstart + 2].v],
+ positions[mloop[mp->loopstart + 3].v]);
}
else
#endif
{
normal_tri_v3(normal,
- mvert[mloop[lt->tri[0]].v].co,
- mvert[mloop[lt->tri[1]].v].co,
- mvert[mloop[lt->tri[2]].v].co);
+ positions[mloop[lt->tri[0]].v],
+ positions[mloop[lt->tri[1]].v],
+ positions[mloop[lt->tri[2]].v]);
}
return mikk::float3(normal);
}
@@ -275,10 +275,10 @@ struct SGLSLMeshToTangent {
const float (*precomputedFaceNormals)[3];
const float (*precomputedLoopNormals)[3];
const MLoopTri *looptri;
- const MLoopUV *mloopuv; /* texture coordinates */
- const MPoly *mpoly; /* indices */
- const MLoop *mloop; /* indices */
- const MVert *mvert; /* vertex coordinates */
+ const MLoopUV *mloopuv; /* texture coordinates */
+ const MPoly *mpoly; /* indices */
+ const MLoop *mloop; /* indices */
+ const float (*positions)[3]; /* vertex coordinates */
const float (*vert_normals)[3];
const float (*orco)[3];
float (*tangent)[4]; /* destination */
@@ -385,7 +385,7 @@ void BKE_mesh_calc_loop_tangent_step_0(const CustomData *loopData,
}
}
-void BKE_mesh_calc_loop_tangent_ex(const MVert *mvert,
+void BKE_mesh_calc_loop_tangent_ex(const float (*positions)[3],
const MPoly *mpoly,
const uint mpoly_len,
const MLoop *mloop,
@@ -490,7 +490,7 @@ void BKE_mesh_calc_loop_tangent_ex(const MVert *mvert,
mesh2tangent->face_as_quad_map = face_as_quad_map;
mesh2tangent->num_face_as_quad_map = num_face_as_quad_map;
#endif
- mesh2tangent->mvert = mvert;
+ mesh2tangent->positions = positions;
mesh2tangent->vert_normals = vert_normals;
mesh2tangent->mpoly = mpoly;
mesh2tangent->mloop = mloop;
@@ -573,7 +573,7 @@ void BKE_mesh_calc_loop_tangents(Mesh *me_eval,
/* TODO(@campbellbarton): store in Mesh.runtime to avoid recalculation. */
short tangent_mask = 0;
BKE_mesh_calc_loop_tangent_ex(
- BKE_mesh_verts(me_eval),
+ BKE_mesh_positions(me_eval),
BKE_mesh_polys(me_eval),
uint(me_eval->totpoly),
BKE_mesh_loops(me_eval),