87 const int ptex_face_index,
93 float dummy_P[3], dPdu[3], dPdv[3],
D[3];
117 const int UNUSED(num_vertices),
118 const int UNUSED(num_edges),
119 const int UNUSED(num_loops),
120 const int UNUSED(num_polygons))
129 const int ptex_face_index,
132 const int coarse_vertex_index,
133 const int UNUSED(coarse_poly_index),
134 const int UNUSED(coarse_corner),
135 const int UNUSED(subdiv_vertex_index))
143 const int ptex_face_index,
146 const int coarse_vertex_index,
147 const int UNUSED(coarse_poly_index),
148 const int UNUSED(coarse_corner),
149 const int UNUSED(subdiv_vertex_index))
153 BLI_assert(coarse_vertex_index < ctx->num_verts);
154 float inv_num_accumulated = 1.0f;
160 float D[3] = {0.0f, 0.0f, 0.0f};
161 float *vertex_co = ctx->
vertex_cos[coarse_vertex_index];
181 memset(foreach_context, 0,
sizeof(*foreach_context));
198 const struct Mesh *coarse_mesh,
199 float (*vertex_cos)[3],
220 subdiv_context.
subdiv = subdiv;
227 foreach_context.
user_data = &subdiv_context;
typedef float(TangentPoint)[2]
CustomData interface, see also DNA_customdata_types.h.
@ SUBDIV_STATS_SUBDIV_TO_MESH_GEOMETRY
@ SUBDIV_STATS_SUBDIV_TO_MESH
void BKE_subdiv_stats_end(SubdivStats *stats, eSubdivStatsValue value)
void BKE_subdiv_stats_begin(SubdivStats *stats, eSubdivStatsValue value)
void BKE_subdiv_eval_limit_point(struct Subdiv *subdiv, const int ptex_face_index, const float u, const float v, float r_P[3])
void BKE_subdiv_eval_displacement(struct Subdiv *subdiv, const int ptex_face_index, const float u, const float v, const float dPdu[3], const float dPdv[3], float r_D[3])
bool BKE_subdiv_eval_begin_from_mesh(struct Subdiv *subdiv, const struct Mesh *mesh, const float(*coarse_vertex_cos)[3])
void BKE_subdiv_eval_limit_point_and_derivatives(struct Subdiv *subdiv, const int ptex_face_index, const float u, const float v, float r_P[3], float r_dPdu[3], float r_dPdv[3])
bool BKE_subdiv_foreach_subdiv_geometry(struct Subdiv *subdiv, const struct SubdivForeachContext *context, const struct SubdivToMeshSettings *mesh_settings, const struct Mesh *coarse_mesh)
MINLINE void mul_v3_fl(float r[3], float f)
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE void add_v3_v3(float r[3], const float a[3])
Read Guarded memory(de)allocation.
ATTR_WARN_UNUSED_RESULT const BMVert * v
void *(* MEM_calloc_arrayN)(size_t len, size_t size, const char *str)
int * accumulated_counters
SubdivForeachTopologyInformationCb topology_info
SubdivForeachVertexFromCornerCb vertex_corner
SubdivForeachVertexFromCornerCb vertex_every_corner
struct SubdivDisplacement * displacement_evaluator
BLI_INLINE float D(const float *data, const int res[3], int x, int y, int z)