Commit: 9db73be975ccc3fbbad17361166060cacd84692e
Author: Sergey Sharybin
Date: Thu Jan 17 10:47:14 2019 +0100
Branches: master
https://developer.blender.org/rB9db73be975ccc3fbbad17361166060cacd84692e
Multires: Cleanup, move utility function to a more public place
===================================================================
M source/blender/blenkernel/BKE_subdiv.h
M source/blender/blenkernel/intern/subdiv_ccg.c
M source/blender/blenkernel/intern/subdiv_inline.h
===================================================================
diff --git a/source/blender/blenkernel/BKE_subdiv.h
b/source/blender/blenkernel/BKE_subdiv.h
index 08f3921228b..0d262b53743 100644
--- a/source/blender/blenkernel/BKE_subdiv.h
+++ b/source/blender/blenkernel/BKE_subdiv.h
@@ -259,6 +259,12 @@ BLI_INLINE int BKE_subdiv_rotate_quad_to_corner(
const float quad_u, const float quad_v,
float *r_corner_u, float *r_corner_v);
+/* Inverse of above. */
+BLI_INLINE void BKE_subdiv_rotate_corner_to_quad(
+ const int corner,
+ const float corner_u, const float corner_v,
+ float *r_quad_u, float *r_quad_v);
+
#include "intern/subdiv_inline.h"
#endif /* __BKE_SUBDIV_H__ */
diff --git a/source/blender/blenkernel/intern/subdiv_ccg.c
b/source/blender/blenkernel/intern/subdiv_ccg.c
index add8a855228..a94df94a2c6 100644
--- a/source/blender/blenkernel/intern/subdiv_ccg.c
+++ b/source/blender/blenkernel/intern/subdiv_ccg.c
@@ -208,30 +208,6 @@ static void subdiv_ccg_eval_grid_element(
}
}
-BLI_INLINE void rotate_corner_to_quad(
- const int corner,
- const float u, const float v,
- float *r_u, float *r_v)
-{
- if (corner == 0) {
- *r_u = 0.5f - v * 0.5f;
- *r_v = 0.5f - u * 0.5f;
- }
- else if (corner == 1) {
- *r_u = 0.5f + u * 0.5f;
- *r_v = 0.5f - v * 0.5f;
- }
- else if (corner == 2) {
- *r_u = 0.5f + v * 0.5f;
- *r_v = 0.5f + u * 0.5f;
- }
- else {
- BLI_assert(corner == 3);
- *r_u = 0.5f - u * 0.5f;
- *r_v = 0.5f + v * 0.5f;
- }
-}
-
static void subdiv_ccg_eval_regular_grid(CCGEvalGridsData *data,
const int face_index)
{
@@ -251,7 +227,8 @@ static void subdiv_ccg_eval_regular_grid(CCGEvalGridsData
*data,
for (int x = 0; x < grid_size; x++) {
const float grid_u = (float)x * grid_size_1_inv;
float u, v;
- rotate_corner_to_quad(corner, grid_u, grid_v,
&u, &v);
+ BKE_subdiv_rotate_corner_to_quad(
+ corner, grid_u, grid_v, &u, &v);
const size_t grid_element_index = (size_t)y *
grid_size + x;
const size_t grid_element_offset =
grid_element_index * element_size;
diff --git a/source/blender/blenkernel/intern/subdiv_inline.h
b/source/blender/blenkernel/intern/subdiv_inline.h
index 6e3d906f08c..1863c8602e6 100644
--- a/source/blender/blenkernel/intern/subdiv_inline.h
+++ b/source/blender/blenkernel/intern/subdiv_inline.h
@@ -77,4 +77,28 @@ BLI_INLINE int BKE_subdiv_rotate_quad_to_corner(
return corner;
}
+BLI_INLINE void BKE_subdiv_rotate_corner_to_quad(
+ const int corner,
+ const float corner_u, const float corner_v,
+ float *r_quad_u, float *r_quad_v)
+{
+ if (corner == 0) {
+ *r_quad_u = 0.5f - corner_v * 0.5f;
+ *r_quad_v = 0.5f - corner_u * 0.5f;
+ }
+ else if (corner == 1) {
+ *r_quad_u = 0.5f + corner_u * 0.5f;
+ *r_quad_v = 0.5f - corner_v * 0.5f;
+ }
+ else if (corner == 2) {
+ *r_quad_u = 0.5f + corner_v * 0.5f;
+ *r_quad_v = 0.5f + corner_u * 0.5f;
+ }
+ else {
+ BLI_assert(corner == 3);
+ *r_quad_u = 0.5f - corner_u * 0.5f;
+ *r_quad_v = 0.5f + corner_v * 0.5f;
+ }
+}
+
#endif /* __SUBDIV_INLINE_H__ */
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs