232 const struct Mesh *coarse_mesh);
243 struct CCGFace **effected_faces,
244 int num_effected_faces);
251 struct CCGFace **effected_faces,
252 int num_effected_faces);
294 bool include_duplicates,
313 const struct MLoop *mloop,
314 const struct MPoly *mpoly,
typedef float(TangentPoint)[2]
struct DMFlagMat DMFlagMat
void BKE_subdiv_ccg_recalc_normals(SubdivCCG *subdiv_ccg)
struct SubdivCCGMaskEvaluator SubdivCCGMaskEvaluator
bool BKE_subdiv_ccg_mask_init_from_paint(SubdivCCGMaskEvaluator *mask_evaluator, const struct Mesh *mesh)
const int * BKE_subdiv_ccg_start_face_grid_index_get(const SubdivCCG *subdiv_ccg)
void BKE_subdiv_ccg_neighbor_coords_get(const SubdivCCG *subdiv_ccg, const SubdivCCGCoord *coord, bool include_duplicates, SubdivCCGNeighbors *r_neighbors)
struct SubdivCCGCoord SubdivCCGCoord
void BKE_subdiv_ccg_eval_limit_point(const SubdivCCG *subdiv_ccg, const SubdivCCGCoord *coord, float r_point[3])
void BKE_subdiv_ccg_average_grids(SubdivCCG *subdiv_ccg)
SubdivCCGAdjacencyType BKE_subdiv_ccg_coarse_mesh_adjacency_info_get(const SubdivCCG *subdiv_ccg, const SubdivCCGCoord *coord, const struct MLoop *mloop, const struct MPoly *mpoly, int *r_v1, int *r_v2)
@ SUBDIV_CCG_ADJACENT_EDGE
@ SUBDIV_CCG_ADJACENT_VERTEX
@ SUBDIV_CCG_ADJACENT_NONE
void BKE_subdiv_ccg_destroy(SubdivCCG *subdiv_ccg)
void BKE_subdiv_ccg_key(struct CCGKey *key, const SubdivCCG *subdiv_ccg, int level)
const int * BKE_subdiv_ccg_start_face_grid_index_ensure(SubdivCCG *subdiv_ccg)
void BKE_subdiv_ccg_update_normals(SubdivCCG *subdiv_ccg, struct CCGFace **effected_faces, int num_effected_faces)
void BKE_subdiv_ccg_key_top_level(struct CCGKey *key, const SubdivCCG *subdiv_ccg)
struct SubdivCCGFace SubdivCCGFace
struct SubdivCCGAdjacentEdge SubdivCCGAdjacentEdge
struct SubdivToCCGSettings SubdivToCCGSettings
void BKE_subdiv_ccg_average_stitch_faces(SubdivCCG *subdiv_ccg, struct CCGFace **effected_faces, int num_effected_faces)
struct SubdivCCG SubdivCCG
void BKE_subdiv_ccg_grid_hidden_ensure(SubdivCCG *subdiv_ccg, int grid_index)
void BKE_subdiv_ccg_topology_counters(const SubdivCCG *subdiv_ccg, int *r_num_vertices, int *r_num_edges, int *r_num_faces, int *r_num_loops)
void BKE_subdiv_ccg_print_coord(const char *message, const SubdivCCGCoord *coord)
void BKE_subdiv_ccg_material_flags_init_from_mesh(SubdivCCGMaterialFlagsEvaluator *material_flags_evaluator, const struct Mesh *mesh)
struct SubdivCCG * BKE_subdiv_to_ccg(struct Subdiv *subdiv, const SubdivToCCGSettings *settings, SubdivCCGMaskEvaluator *mask_evaluator, SubdivCCGMaterialFlagsEvaluator *material_flags_evaluator)
struct SubdivCCGNeighbors SubdivCCGNeighbors
struct SubdivCCGMaterialFlagsEvaluator SubdivCCGMaterialFlagsEvaluator
bool BKE_subdiv_ccg_check_coord_valid(const SubdivCCG *subdiv_ccg, const SubdivCCGCoord *coord)
struct Mesh * BKE_subdiv_to_ccg_mesh(struct Subdiv *subdiv, const SubdivToCCGSettings *settings, const struct Mesh *coarse_mesh)
int BKE_subdiv_ccg_grid_to_face_index(const SubdivCCG *subdiv_ccg, int grid_index)
struct SubdivCCGAdjacentVertex SubdivCCGAdjacentVertex
ATTR_WARN_UNUSED_RESULT const BMVert * v
SyclQueue void void size_t num_bytes void
struct SubdivCCGCoord ** boundary_coords
struct SubdivCCGCoord * corner_coords
float(* eval_mask)(struct SubdivCCGMaskEvaluator *mask_evaluator, int ptex_face_index, float u, float v)
void(* free)(struct SubdivCCGMaskEvaluator *mask_evaluator)
DMFlagMat(* eval_material_flags)(struct SubdivCCGMaterialFlagsEvaluator *material_flags_evaluator, int coarse_face_index)
void(* free)(struct SubdivCCGMaterialFlagsEvaluator *material_flags_evaluator)
SubdivCCGCoord coords_fixed[256]
unsigned char * grids_storage
SubdivCCGAdjacentVertex * adjacent_vertices
struct SubdivCCG::@69 dirty
struct SubdivCCG::@70 cache_
int * start_face_grid_index
int num_adjacent_vertices
SubdivCCGFace ** grid_faces
BLI_bitmap ** grid_hidden
SubdivCCGAdjacentEdge * adjacent_edges
struct DMFlagMat * grid_flag_mats
struct CCGElem * vertices