diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-01-17 12:47:14 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-01-18 14:29:53 +0300 |
commit | 9db73be975ccc3fbbad17361166060cacd84692e (patch) | |
tree | b96066b90b99ade62618fdf40f3ff588fdb54d9e /source/blender/blenkernel | |
parent | a676b2b4b4dcd0b6ea1ee352ea8f895809c99153 (diff) |
Multires: Cleanup, move utility function to a more public place
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_subdiv.h | 6 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/subdiv_ccg.c | 27 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/subdiv_inline.h | 24 |
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__ */ |