49 const int ptex_face_index,
71 const int coarse_face_index);
248 const struct Mesh *coarse_mesh);
259 struct CCGFace **effected_faces,
260 int num_effected_faces);
267 struct CCGFace **effected_faces,
268 int num_effected_faces);
310 const bool include_duplicates,
typedef float(TangentPoint)[2]
struct DMFlagMat DMFlagMat
CustomData interface, see also DNA_customdata_types.h.
void BKE_subdiv_ccg_recalc_normals(SubdivCCG *subdiv_ccg)
struct SubdivCCGMaskEvaluator SubdivCCGMaskEvaluator
SubdivCCGAdjacencyType BKE_subdiv_ccg_coarse_mesh_adjacency_info_get(const SubdivCCG *subdiv_ccg, const SubdivCCGCoord *coord, const MLoop *mloop, const MPoly *mpoly, int *r_v1, int *r_v2)
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)
struct SubdivCCGCoord SubdivCCGCoord
void BKE_subdiv_ccg_neighbor_coords_get(const SubdivCCG *subdiv_ccg, const SubdivCCGCoord *coord, const bool include_duplicates, SubdivCCGNeighbors *r_neighbors)
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)
@ 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)
int BKE_subdiv_ccg_grid_to_face_index(const SubdivCCG *subdiv_ccg, const int grid_index)
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)
struct SubdivCCGAdjacentVertex SubdivCCGAdjacentVertex
ATTR_WARN_UNUSED_RESULT const BMVert * v
struct SubdivCCGCoord ** boundary_coords
struct SubdivCCGCoord * corner_coords
void(* free)(struct SubdivCCGMaskEvaluator *mask_evaluator)
float(* eval_mask)(struct SubdivCCGMaskEvaluator *mask_evaluator, const int ptex_face_index, const float u, const float v)
DMFlagMat(* eval_material_flags)(struct SubdivCCGMaterialFlagsEvaluator *material_flags_evaluator, const int coarse_face_index)
void(* free)(struct SubdivCCGMaterialFlagsEvaluator *material_flags_evaluator)
SubdivCCGCoord coords_fixed[256]
unsigned char * grids_storage
struct SubdivCCG::@69 cache_
SubdivCCGAdjacentVertex * adjacent_vertices
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
struct SubdivCCG::@68 dirty