diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-11-01 13:06:00 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-11-01 17:20:50 +0300 |
commit | 34ec716352a96fa967a8fa656fec3cad8b2e4a99 (patch) | |
tree | 74701a31a4c5e6fac3e19f96862a245a3f6a3cb1 /source/blender/blenkernel/intern/subdiv_ccg_mask.c | |
parent | 9d5edf2d39c73b50dfbdcd10f32e89435c95dcc9 (diff) |
Subdiv: Cleanup, deduplicate some code
Diffstat (limited to 'source/blender/blenkernel/intern/subdiv_ccg_mask.c')
-rw-r--r-- | source/blender/blenkernel/intern/subdiv_ccg_mask.c | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/source/blender/blenkernel/intern/subdiv_ccg_mask.c b/source/blender/blenkernel/intern/subdiv_ccg_mask.c index 27f996a68bb..9cd7ed0a962 100644 --- a/source/blender/blenkernel/intern/subdiv_ccg_mask.c +++ b/source/blender/blenkernel/intern/subdiv_ccg_mask.c @@ -38,6 +38,7 @@ #include "BLI_math_vector.h" #include "BKE_customdata.h" +#include "BKE_subdiv.h" #include "MEM_guardedalloc.h" @@ -59,16 +60,6 @@ typedef struct GridPaintMaskData { PolyCornerIndex *ptex_poly_corner; } GridPaintMaskData; -/* Coordinates within grid has different convention from PTex coordinates. - * This function converts the latter ones to former. - */ -BLI_INLINE void ptex_uv_to_grid_uv(const float ptex_u, const float ptex_v, - float *r_grid_u, float *r_grid_v) -{ - *r_grid_u = 1.0f - ptex_v; - *r_grid_v = 1.0f - ptex_u; -} - /* Simplified version of mdisp_rot_face_to_crn, only handles quad and * works in normalized coordinates. * @@ -119,12 +110,12 @@ static int mask_get_grid_and_coord( corner = rotate_quad_to_corner(u, v, &corner_u, &corner_v); *r_mask_grid = &data->grid_paint_mask[start_grid_index + corner]; - ptex_uv_to_grid_uv(corner_u, corner_v, grid_u, grid_v); + BKE_subdiv_ptex_face_uv_to_grid_uv(corner_u, corner_v, grid_u, grid_v); } else { *r_mask_grid = &data->grid_paint_mask[start_grid_index]; - ptex_uv_to_grid_uv(u, v, grid_u, grid_v); + BKE_subdiv_ptex_face_uv_to_grid_uv(u, v, grid_u, grid_v); } return corner; } @@ -135,7 +126,7 @@ BLI_INLINE float read_mask_grid(const GridPaintMask *mask_grid, if (mask_grid->data == NULL) { return 0; } - const int grid_size = (1 << (mask_grid->level - 1)) + 1; + const int grid_size = BKE_subdiv_grid_size_from_level(mask_grid->level); const int x = (grid_u * (grid_size - 1) + 0.5f); const int y = (grid_v * (grid_size - 1) + 0.5f); return mask_grid->data[y * grid_size + x]; |