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:
authorSergey Sharybin <sergey.vfx@gmail.com>2019-01-17 12:47:14 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2019-01-18 14:29:53 +0300
commit9db73be975ccc3fbbad17361166060cacd84692e (patch)
treeb96066b90b99ade62618fdf40f3ff588fdb54d9e
parenta676b2b4b4dcd0b6ea1ee352ea8f895809c99153 (diff)
Multires: Cleanup, move utility function to a more public place
-rw-r--r--source/blender/blenkernel/BKE_subdiv.h6
-rw-r--r--source/blender/blenkernel/intern/subdiv_ccg.c27
-rw-r--r--source/blender/blenkernel/intern/subdiv_inline.h24
3 files changed, 32 insertions, 25 deletions
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__ */