20 *r_grid_u = 1.0f - ptex_v;
21 *r_grid_v = 1.0f - ptex_u;
29 *r_ptex_u = 1.0f - grid_v;
30 *r_ptex_v = 1.0f - grid_u;
35 return (1 << (level - 1)) + 1;
44 if (quad_u <= 0.5f && quad_v <= 0.5f) {
46 *r_corner_u = 2.0f * quad_u;
47 *r_corner_v = 2.0f * quad_v;
49 else if (quad_u > 0.5f && quad_v <= 0.5f) {
51 *r_corner_u = 2.0f * quad_v;
52 *r_corner_v = 2.0f * (1.0f - quad_u);
54 else if (quad_u > 0.5f && quad_v > 0.5f) {
56 *r_corner_u = 2.0f * (1.0f - quad_u);
57 *r_corner_v = 2.0f * (1.0f - quad_v);
62 *r_corner_u = 2.0f * (1.0f - quad_v);
63 *r_corner_v = 2.0f * quad_u;
69 const int corner,
const float grid_u,
const float grid_v,
float *r_quad_u,
float *r_quad_v)
72 *r_quad_u = 0.5f - grid_v * 0.5f;
73 *r_quad_v = 0.5f - grid_u * 0.5f;
76 *r_quad_u = 0.5f + grid_u * 0.5f;
77 *r_quad_v = 0.5f - grid_v * 0.5f;
80 *r_quad_u = 0.5f + grid_v * 0.5f;
81 *r_quad_v = 0.5f + grid_u * 0.5f;
85 *r_quad_u = 0.5f - grid_u * 0.5f;
86 *r_quad_v = 0.5f + grid_v * 0.5f;
92 return edge_crease * edge_crease * 10.0f;
97 const float edge_crease_f = edge_crease / 255.0f;
BLI_INLINE void BKE_subdiv_rotate_grid_to_quad(const int corner, const float grid_u, const float grid_v, float *r_quad_u, float *r_quad_v)
BLI_INLINE float BKE_subdiv_crease_to_sharpness_f(float edge_crease)
BLI_INLINE int BKE_subdiv_grid_size_from_level(const int level)
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)
BLI_INLINE void BKE_subdiv_grid_uv_to_ptex_face_uv(const float grid_u, const float grid_v, float *r_ptex_u, float *r_ptex_v)
BLI_INLINE void BKE_subdiv_ptex_face_uv_to_grid_uv(const float ptex_u, const float ptex_v, float *r_grid_u, float *r_grid_v)
BLI_INLINE float BKE_subdiv_crease_to_sharpness_char(char edge_crease)