30 const int subdiv_vertex_index)
34 const float *coordinate = reshape_vertcos_context->
vert_coords[subdiv_vertex_index];
46 const int subdiv_vertex_index)
56 const int num_corners = reshape_context->
base_faces[face_index].size();
58 const int corner = grid_coord.
grid_index - start_grid_index;
60 if (grid_coord.
u == 0.0f && grid_coord.
v == 0.0f) {
61 for (
int current_corner = 0; current_corner < num_corners; ++current_corner) {
63 corner_grid_coord.
grid_index = start_grid_index + current_corner;
65 foreach_context, &corner_grid_coord, subdiv_vertex_index);
71 foreach_context, &grid_coord, subdiv_vertex_index);
73 if (grid_coord.
u == 0.0f) {
75 prev_grid_coord.
grid_index = start_grid_index + ((corner + num_corners - 1) % num_corners);
76 prev_grid_coord.
u = grid_coord.
v;
77 prev_grid_coord.
v = 0.0f;
80 foreach_context, &prev_grid_coord, subdiv_vertex_index);
83 if (grid_coord.
v == 0.0f) {
85 next_grid_coord.
grid_index = start_grid_index + ((corner + 1) % num_corners);
86 next_grid_coord.
u = 0.0f;
87 next_grid_coord.
v = grid_coord.
u;
90 foreach_context, &next_grid_coord, subdiv_vertex_index);
97 const int num_vertices,
115 const int ptex_face_index,
116 const float ptex_face_u,
117 const float ptex_face_v,
120 const int subdiv_vertex_index)
124 ptex_coord.u = ptex_face_u;
125 ptex_coord.v = ptex_face_v;
133 const int ptex_face_index,
134 const float ptex_face_u,
135 const float ptex_face_v,
139 const int subdiv_vertex_index)
143 ptex_coord.u = ptex_face_u;
144 ptex_coord.v = ptex_face_v;
152 const int ptex_face_index,
153 const float ptex_face_u,
154 const float ptex_face_v,
158 const int subdiv_vertex_index)
162 ptex_coord.u = ptex_face_u;
163 ptex_coord.v = ptex_face_v;
169 const float (*vert_coords)[3],
170 const int num_vert_coords)
174 reshape_vertcos_context.vert_coords = vert_coords;
175 reshape_vertcos_context.num_vert_coords = num_vert_coords;
182 foreach_context.user_data = &reshape_vertcos_context;
189 reshape_context->
subdiv, &foreach_context, &mesh_settings, reshape_context->
base_mesh);
MINLINE void copy_v3_v3(float r[3], const float a[3])
draw_view in_light_buf[] float
int multires_reshape_grid_to_face_index(const MultiresReshapeContext *reshape_context, int grid_index)
ReshapeGridElement multires_reshape_grid_element_for_grid_coord(const MultiresReshapeContext *reshape_context, const GridCoord *grid_coord)
GridCoord multires_reshape_ptex_coord_to_grid(const MultiresReshapeContext *reshape_context, const PTexCoord *ptex_coord)
static void multires_reshape_vertcos_foreach_vertex_every_edge(const blender::bke::subdiv::ForeachContext *foreach_context, void *, const int ptex_face_index, const float ptex_face_u, const float ptex_face_v, const int, const int, const int, const int subdiv_vertex_index)
static void multires_reshape_vertcos_foreach_vertex_inner(const blender::bke::subdiv::ForeachContext *foreach_context, void *, const int ptex_face_index, const float ptex_face_u, const float ptex_face_v, const int, const int, const int subdiv_vertex_index)
static void multires_reshape_vertcos_foreach_vertex(const blender::bke::subdiv::ForeachContext *foreach_context, const PTexCoord *ptex_coord, const int subdiv_vertex_index)
static void multires_reshape_vertcos_foreach_single_vertex(const blender::bke::subdiv::ForeachContext *foreach_context, const GridCoord *grid_coord, const int subdiv_vertex_index)
static void multires_reshape_vertcos_foreach_vertex_every_corner(const blender::bke::subdiv::ForeachContext *foreach_context, void *, const int ptex_face_index, const float ptex_face_u, const float ptex_face_v, const int, const int, const int, const int subdiv_vertex_index)
bool multires_reshape_assign_final_coords_from_vertcos(const MultiresReshapeContext *reshape_context, const float(*vert_coords)[3], const int num_vert_coords)
static bool multires_reshape_vertcos_foreach_topology_info(const blender::bke::subdiv::ForeachContext *foreach_context, const int num_vertices, const int, const int, const int, const int *)
bool foreach_subdiv_geometry(Subdiv *subdiv, const ForeachContext *context, const ToMeshSettings *mesh_settings, const Mesh *coarse_mesh)
const float(* vert_coords)[3]
const MultiresReshapeContext * reshape_context
blender::bke::subdiv::Subdiv * subdiv
int * face_start_grid_index
blender::OffsetIndices< int > base_faces
struct MultiresReshapeContext::@91 reshape
ForeachTopologyInformationCb topology_info