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>2018-11-01 13:06:00 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2018-11-01 17:20:50 +0300
commit34ec716352a96fa967a8fa656fec3cad8b2e4a99 (patch)
tree74701a31a4c5e6fac3e19f96862a245a3f6a3cb1 /source/blender/blenkernel/intern/subdiv_ccg_mask.c
parent9d5edf2d39c73b50dfbdcd10f32e89435c95dcc9 (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.c17
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];