50 # define BKE_MESH_OMP_LIMIT 0
52 # define BKE_MESH_OMP_LIMIT 10000
79 const struct Mesh *me_settings);
82 const struct Mesh *me_settings);
112 unsigned int r_adj[2]);
152 int verts_len,
int edges_len,
int tessface_len,
int loops_len,
int polys_len);
199 int edge_users_test);
265 bool preserve_all_data_layers,
266 bool preserve_origindex);
276 bool preserve_all_data_layers);
287 bool use_virtual_modifiers,
288 bool build_shapekey_layers);
294 struct Mesh *mesh_dst,
297 bool take_ownership);
329 const float (*vert_coords)[3],
330 const float mat[4][4]);
358 const float (*poly_normals)[3]);
462 float (*r_poly_normals)[3]);
476 float (*r_poly_normals)[3],
477 float (*r_vert_normals)[3]);
497 float (*r_tri_nors)[3]);
499 const struct MPoly *mpolys,
500 const int *loop_to_poly,
501 const int *e2lfan_curr,
503 const struct MLoop **r_mlfan_curr,
504 int *r_mlfan_curr_index,
505 int *r_mlfan_vert_index,
506 int *r_mpfan_curr_index);
516 struct MEdge *medges,
518 struct MLoop *mloops,
520 struct MPoly *mpolys,
521 const float (*polynors)[3],
622 const short clnor_data[2],
623 float r_custom_lnor[3]);
625 const float custom_lnor[3],
626 short r_clnor_data[2]);
636 const float (*vert_normals)[3],
638 struct MEdge *medges,
640 struct MLoop *mloops,
641 float (*r_loopnors)[3],
643 struct MPoly *mpolys,
644 const float (*polynors)[3],
646 bool use_split_normals,
649 short (*clnors_data)[2],
650 int *r_loop_to_poly);
653 const float (*vert_normals)[3],
655 struct MEdge *medges,
657 struct MLoop *mloops,
658 float (*r_custom_loopnors)[3],
660 struct MPoly *mpolys,
661 const float (*polynors)[3],
663 short (*r_clnors_data)[2]);
665 const float (*vert_normals)[3],
666 float (*r_custom_vertnors)[3],
668 struct MEdge *medges,
670 struct MLoop *mloops,
672 struct MPoly *mpolys,
673 const float (*polynors)[3],
675 short (*r_clnors_data)[2]);
684 const struct MLoop *mloops,
686 const float (*clnors)[3],
687 float (*r_vert_clnors)[3]);
704 float (*r_corner_normals)[3]);
726 const struct MLoop *loopstart,
727 const struct MVert *mvarray,
730 const struct MLoop *loopstart,
731 const float (*vertex_coords)[3],
734 const struct MLoop *loopstart,
735 const struct MVert *mvarray,
739 const struct MLoop *loopstart,
740 const struct MVert *mvarray);
744 const struct MLoop *loopstart,
745 const struct MVert *mvarray,
749 const struct MPoly *mp,
750 const struct MLoop *mloop);
752 const struct MPoly *mp,
753 const struct MLoop *mloop);
779 const struct MLoop *mloop,
802 bool use_loop_mdisp_flip);
851 const int *vtargetmap,
912 const float (*vert_cos_src)[3],
913 const float (*vert_cos_dst)[3],
915 const float (*vert_cos_org)[3],
916 float (*vert_cos_new)[3]);
953 struct MVert *mverts,
955 struct MEdge *medges,
957 struct MFace *mfaces,
959 struct MLoop *mloops,
961 struct MPoly *mpolys,
typedef float(TangentPoint)[2]
float(* BKE_mesh_vertex_normals_for_write(struct Mesh *mesh))[3]
void BKE_mesh_calc_edges_tessface(struct Mesh *mesh)
struct Mesh * BKE_mesh_copy_for_eval(const struct Mesh *source, bool reference)
void(* BKE_mesh_batch_cache_dirty_tag_cb)(struct Mesh *me, eMeshBatchDirtyMode mode)
void BKE_mesh_strip_loose_faces(struct Mesh *me)
const char * BKE_mesh_cmp(struct Mesh *me1, struct Mesh *me2, float thresh)
int BKE_mesh_edge_other_vert(const struct MEdge *e, int v)
void BKE_mesh_assign_object(struct Main *bmain, struct Object *ob, struct Mesh *me)
int poly_get_adj_loops_from_vert(const struct MPoly *poly, const struct MLoop *mloop, unsigned int vert, unsigned int r_adj[2])
bool BKE_mesh_material_index_used(struct Mesh *me, short index)
float(* BKE_mesh_orco_verts_get(struct Object *ob))[3]
struct Mesh * BKE_mesh_new_from_object_to_bmain(struct Main *bmain, struct Depsgraph *depsgraph, struct Object *object, bool preserve_all_data_layers)
void BKE_mesh_edges_set_draw_render(struct Mesh *me)
const float(* BKE_mesh_poly_normals_ensure(const struct Mesh *mesh))[3]
MLoopNorSpace * BKE_lnor_space_create(MLoopNorSpaceArray *lnors_spacearr)
void BKE_mesh_calc_poly_angles(const struct MPoly *mpoly, const struct MLoop *loopstart, const struct MVert *mvarray, float angles[])
void BKE_mesh_flush_select_from_verts(struct Mesh *me)
@ MLNOR_SPACEARR_LOOP_INDEX
@ MLNOR_SPACEARR_BMLOOP_PTR
struct Mesh * BKE_mesh_new_nomain_from_curve_displist(const struct Object *ob, const struct ListBase *dispbase)
void BKE_mesh_copy_parameters(struct Mesh *me_dst, const struct Mesh *me_src)
bool BKE_mesh_clear_facemap_customdata(struct Mesh *me)
void BKE_mesh_translate(struct Mesh *me, const float offset[3], bool do_keys)
void BKE_mesh_tessface_clear(struct Mesh *mesh)
void BKE_mesh_poly_edgebitmap_insert(unsigned int *edge_bitmap, const struct MPoly *mp, const struct MLoop *mloop)
void BKE_mesh_copy_parameters_for_eval(struct Mesh *me_dst, const struct Mesh *me_src)
@ MESH_MERGE_VERTS_DUMP_IF_EQUAL
@ MESH_MERGE_VERTS_DUMP_IF_MAPPED
bool BKE_mesh_has_custom_loop_normals(struct Mesh *me)
struct Mesh * BKE_mesh_new_nomain_from_template(const struct Mesh *me_src, int verts_len, int edges_len, int tessface_len, int loops_len, int polys_len)
struct BoundBox * BKE_mesh_boundbox_get(struct Object *ob)
void BKE_mesh_flush_select_from_polys_ex(struct MVert *mvert, int totvert, const struct MLoop *mloop, struct MEdge *medge, int totedge, const struct MPoly *mpoly, int totpoly)
void BKE_mesh_orco_ensure(struct Object *ob, struct Mesh *mesh)
struct Mesh * BKE_mesh_from_object(struct Object *ob)
void BKE_mesh_texspace_get_reference(struct Mesh *me, char **r_texflag, float **r_loc, float **r_size)
void BKE_mesh_free_editmesh(struct Mesh *mesh)
void BKE_mesh_poly_edgehash_insert(struct EdgeHash *ehash, const struct MPoly *mp, const struct MLoop *mloop)
void BKE_mesh_calc_poly_center(const struct MPoly *mpoly, const struct MLoop *loopstart, const struct MVert *mvarray, float r_cent[3])
void BKE_mesh_strip_loose_edges(struct Mesh *me)
void BKE_mesh_polygon_flip_ex(struct MPoly *mpoly, struct MLoop *mloop, struct CustomData *ldata, float(*lnors)[3], struct MDisps *mdisp, bool use_loop_mdisp_flip)
void BKE_mesh_ensure_skin_customdata(struct Mesh *me)
void BKE_mesh_calc_normals_poly_and_vertex(const struct MVert *mvert, int mvert_len, const struct MLoop *mloop, int mloop_len, const struct MPoly *mpoly, int mpoly_len, float(*r_poly_normals)[3], float(*r_vert_normals)[3])
void BKE_mesh_normals_loop_custom_set(const struct MVert *mverts, const float(*vert_normals)[3], int numVerts, struct MEdge *medges, int numEdges, struct MLoop *mloops, float(*r_custom_loopnors)[3], int numLoops, struct MPoly *mpolys, const float(*polynors)[3], int numPolys, short(*r_clnors_data)[2])
void BKE_mesh_nomain_to_mesh(struct Mesh *mesh_src, struct Mesh *mesh_dst, struct Object *ob, const struct CustomData_MeshMasks *mask, bool take_ownership)
void BKE_pointcloud_to_mesh(struct Main *bmain, struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob)
bool BKE_mesh_center_of_volume(const struct Mesh *me, float r_cent[3])
void BKE_mesh_mselect_active_set(struct Mesh *me, int index, int type)
void BKE_lnor_space_define(MLoopNorSpace *lnor_space, const float lnor[3], float vec_ref[3], float vec_other[3], struct BLI_Stack *edge_vectors)
void BKE_mesh_calc_edges_loose(struct Mesh *mesh)
void BKE_mesh_calc_normals_poly(const struct MVert *mvert, int mvert_len, const struct MLoop *mloop, int mloop_len, const struct MPoly *mpoly, int mpoly_len, float(*r_poly_normals)[3])
void BKE_mesh_mselect_validate(struct Mesh *me)
void BKE_mesh_from_metaball(struct ListBase *lb, struct Mesh *me)
struct BMesh * BKE_mesh_to_bmesh_ex(const struct Mesh *me, const struct BMeshCreateParams *create_params, const struct BMeshFromMeshParams *convert_params)
struct Mesh * BKE_mesh_add(struct Main *bmain, const char *name)
void BKE_mesh_smooth_flag_set(struct Mesh *me, bool use_smooth)
bool BKE_mesh_is_valid(struct Mesh *me)
void BKE_mesh_normals_loop_custom_from_vertices_set(const struct MVert *mverts, const float(*vert_normals)[3], float(*r_custom_vertnors)[3], int numVerts, struct MEdge *medges, int numEdges, struct MLoop *mloops, int numLoops, struct MPoly *mpolys, const float(*polynors)[3], int numPolys, short(*r_clnors_data)[2])
void BKE_mesh_vert_coords_apply(struct Mesh *mesh, const float(*vert_coords)[3])
void BKE_mesh_nomain_to_meshkey(struct Mesh *mesh_src, struct Mesh *mesh_dst, struct KeyBlock *kb)
const float(* BKE_mesh_vertex_normals_ensure(const struct Mesh *mesh))[3]
bool BKE_mesh_poly_normals_are_dirty(const struct Mesh *mesh)
void BKE_mesh_assert_normals_dirty_or_calculated(const struct Mesh *mesh)
void BKE_mesh_calc_normals_looptri(struct MVert *mverts, int numVerts, const struct MLoop *mloop, const struct MLoopTri *looptri, int looptri_num, float(*r_tri_nors)[3])
void BKE_mesh_to_pointcloud(struct Main *bmain, struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob)
bool BKE_mesh_center_median(const struct Mesh *me, float r_cent[3])
void BKE_mesh_merge_customdata_for_apply_modifier(struct Mesh *me)
void BKE_mesh_looptri_get_real_edges(const struct Mesh *mesh, const struct MLoopTri *looptri, int r_edges[3])
bool BKE_mesh_center_median_from_polys(const struct Mesh *me, float r_cent[3])
bool BKE_mesh_ensure_facemap_customdata(struct Mesh *me)
void BKE_mesh_poly_normals_clear_dirty(struct Mesh *mesh)
int poly_find_loop_from_vert(const struct MPoly *poly, const struct MLoop *loopstart, uint vert)
struct Mesh * BKE_mesh_from_bmesh_nomain(struct BMesh *bm, const struct BMeshToMeshParams *params, const struct Mesh *me_settings)
void BKE_mesh_from_pointcloud(const struct PointCloud *pointcloud, struct Mesh *me)
void BKE_mesh_eval_delete(struct Mesh *mesh_eval)
bool BKE_mesh_validate(struct Mesh *me, bool do_verbose, bool cddata_check_mask)
bool BKE_mesh_validate_arrays(struct Mesh *me, struct MVert *mverts, unsigned int totvert, struct MEdge *medges, unsigned int totedge, struct MFace *mfaces, unsigned int totface, struct MLoop *mloops, unsigned int totloop, struct MPoly *mpolys, unsigned int totpoly, struct MDeformVert *dverts, bool do_verbose, bool do_fixes, bool *r_change)
void BKE_mesh_recalc_looptri_with_normals(const struct MLoop *mloop, const struct MPoly *mpoly, const struct MVert *mvert, int totloop, int totpoly, struct MLoopTri *mlooptri, const float(*poly_normals)[3])
void BKE_mesh_flush_hidden_from_polys_ex(struct MVert *mvert, const struct MLoop *mloop, struct MEdge *medge, int totedge, const struct MPoly *mpoly, int totpoly)
void BKE_mesh_flush_hidden_from_verts_ex(const struct MVert *mvert, const struct MLoop *mloop, struct MEdge *medge, int totedge, struct MPoly *mpoly, int totpoly)
void BKE_mesh_recalc_looptri(const struct MLoop *mloop, const struct MPoly *mpoly, const struct MVert *mvert, int totloop, int totpoly, struct MLoopTri *mlooptri)
void BKE_lnor_spacearr_clear(MLoopNorSpaceArray *lnors_spacearr)
void BKE_mesh_batch_cache_free(struct Mesh *me)
int BKE_mesh_mselect_active_get(struct Mesh *me, int type)
void BKE_mesh_vert_coords_apply_with_mat4(struct Mesh *mesh, const float(*vert_coords)[3], const float mat[4][4])
struct Mesh * BKE_mesh_new_nomain(int verts_len, int edges_len, int tessface_len, int loops_len, int polys_len)
void BKE_mesh_update_customdata_pointers(struct Mesh *me, bool do_ensure_tess_cd)
void BKE_mesh_texspace_copy_from_object(struct Mesh *me, struct Object *ob)
void BKE_lnor_spacearr_init(MLoopNorSpaceArray *lnors_spacearr, int numLoops, char data_type)
struct Mesh * BKE_mesh_from_bmesh_for_eval_nomain(struct BMesh *bm, const struct CustomData_MeshMasks *cd_mask_extra, const struct Mesh *me_settings)
bool BKE_mesh_validate_material_indices(struct Mesh *me)
struct MLoopNorSpace MLoopNorSpace
void BKE_mesh_calc_normals(struct Mesh *me)
void BKE_mesh_calc_edges_legacy(struct Mesh *me, bool use_old)
void BKE_mesh_normals_loop_to_vertex(int numVerts, const struct MLoop *mloops, int numLoops, const float(*clnors)[3], float(*r_vert_clnors)[3])
void BKE_mesh_clear_derived_normals(struct Mesh *mesh)
void BKE_mesh_calc_poly_normal(const struct MPoly *mpoly, const struct MLoop *loopstart, const struct MVert *mvarray, float r_no[3])
void BKE_lnor_space_add_loop(MLoopNorSpaceArray *lnors_spacearr, MLoopNorSpace *lnor_space, int ml_index, void *bm_loop, bool is_single)
void BKE_mesh_calc_normals_split_ex(struct Mesh *mesh, struct MLoopNorSpaceArray *r_lnors_spacearr, float(*r_corner_normals)[3])
int BKE_mesh_mselect_find(struct Mesh *me, int index, int type)
void BKE_mesh_batch_cache_dirty_tag(struct Mesh *me, eMeshBatchDirtyMode mode)
struct Mesh * BKE_mesh_new_nomain_from_curve(const struct Object *ob)
void BKE_mesh_do_versions_cd_flag_init(struct Mesh *mesh)
void BKE_mesh_clear_geometry(struct Mesh *me)
void BKE_mesh_calc_normals_split(struct Mesh *mesh)
void BKE_mesh_ensure_default_orig_index_customdata_no_check(struct Mesh *mesh)
void BKE_mesh_orco_verts_transform(struct Mesh *me, float(*orco)[3], int totvert, int invert)
bool BKE_mesh_center_of_surface(const struct Mesh *me, float r_cent[3])
struct Mesh * BKE_mesh_create_derived_for_modifier(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob_eval, struct ModifierData *md_eval, bool use_virtual_modifiers, bool build_shapekey_layers)
void BKE_mesh_count_selected_items(const struct Mesh *mesh, int r_count[3])
void BKE_mesh_strip_loose_polysloops(struct Mesh *me)
bool BKE_mesh_validate_all_customdata(struct CustomData *vdata, uint totvert, struct CustomData *edata, uint totedge, struct CustomData *ldata, uint totloop, struct CustomData *pdata, uint totpoly, bool check_meshmask, bool do_verbose, bool do_fixes, bool *r_change)
void BKE_mesh_vert_coords_get(const struct Mesh *mesh, float(*vert_coords)[3])
void BKE_mesh_calc_relative_deform(const struct MPoly *mpoly, int totpoly, const struct MLoop *mloop, int totvert, const float(*vert_cos_src)[3], const float(*vert_cos_dst)[3], const float(*vert_cos_org)[3], float(*vert_cos_new)[3])
bool BKE_mesh_vertex_normals_are_dirty(const struct Mesh *mesh)
void BKE_mesh_texspace_calc(struct Mesh *me)
struct BMesh * BKE_mesh_to_bmesh(struct Mesh *me, struct Object *ob, bool add_key_index, const struct BMeshCreateParams *params)
struct Mesh * BKE_mesh_new_from_object(struct Depsgraph *depsgraph, struct Object *object, bool preserve_all_data_layers, bool preserve_origindex)
void BKE_mesh_loop_manifold_fan_around_vert_next(const struct MLoop *mloops, const struct MPoly *mpolys, const int *loop_to_poly, const int *e2lfan_curr, uint mv_pivot_index, const struct MLoop **r_mlfan_curr, int *r_mlfan_curr_index, int *r_mlfan_vert_index, int *r_mpfan_curr_index)
struct Mesh * BKE_mesh_merge_verts(struct Mesh *mesh, const int *vtargetmap, int tot_vtargetmap, int merge_mode)
void BKE_mesh_texspace_ensure(struct Mesh *me)
void BKE_mesh_debug_print(const struct Mesh *me) ATTR_NONNULL(1)
void BKE_mesh_normals_loop_split(const struct MVert *mverts, const float(*vert_normals)[3], int numVerts, struct MEdge *medges, int numEdges, struct MLoop *mloops, float(*r_loopnors)[3], int numLoops, struct MPoly *mpolys, const float(*polynors)[3], int numPolys, bool use_split_normals, float split_angle, MLoopNorSpaceArray *r_lnors_spacearr, short(*clnors_data)[2], int *r_loop_to_poly)
void BKE_mesh_material_remap(struct Mesh *me, const unsigned int *remap, unsigned int remap_len)
void BKE_mesh_flush_select_from_polys(struct Mesh *me)
void BKE_pointcloud_from_mesh(struct Mesh *me, struct PointCloud *pointcloud)
float BKE_mesh_calc_poly_uv_area(const struct MPoly *mpoly, const struct MLoopUV *uv_array)
void BKE_mesh_vertex_normals_clear_dirty(struct Mesh *mesh)
void BKE_mesh_set_custom_normals_from_vertices(struct Mesh *mesh, float(*r_custom_vertnors)[3])
void BKE_mesh_mselect_clear(struct Mesh *me)
char * BKE_mesh_debug_info(const struct Mesh *me) ATTR_NONNULL(1) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
float BKE_mesh_calc_area(const struct Mesh *me)
float(* BKE_mesh_poly_normals_for_write(struct Mesh *mesh))[3]
void BKE_mesh_split_faces(struct Mesh *mesh, bool free_loop_normals)
void BKE_mesh_calc_volume(const struct MVert *mverts, int mverts_num, const struct MLoopTri *mlooptri, int looptri_num, const struct MLoop *mloop, float *r_volume, float r_center[3])
void BKE_lnor_spacearr_free(MLoopNorSpaceArray *lnors_spacearr)
void BKE_mesh_normals_tag_dirty(struct Mesh *mesh)
void BKE_mesh_tag_coords_changed_uniformly(struct Mesh *mesh)
void BKE_lnor_space_custom_data_to_normal(MLoopNorSpace *lnor_space, const short clnor_data[2], float r_custom_lnor[3])
bool BKE_mesh_minmax(const struct Mesh *me, float r_min[3], float r_max[3])
void BKE_mesh_polygons_flip(struct MPoly *mpoly, struct MLoop *mloop, struct CustomData *ldata, int totpoly)
void BKE_mesh_set_custom_normals(struct Mesh *mesh, float(*r_custom_loopnors)[3])
struct Mesh * BKE_mesh_new_nomain_from_template_ex(const struct Mesh *me_src, int verts_len, int edges_len, int tessface_len, int loops_len, int polys_len, struct CustomData_MeshMasks mask)
void BKE_mesh_texspace_get(struct Mesh *me, float r_loc[3], float r_size[3])
void BKE_mesh_flush_hidden_from_verts(struct Mesh *me)
void BKE_mesh_to_curve(struct Main *bmain, struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob)
struct MLoopNorSpaceArray MLoopNorSpaceArray
void BKE_mesh_mdisp_flip(struct MDisps *md, bool use_loop_mdisp_flip)
void BKE_lnor_spacearr_tls_join(MLoopNorSpaceArray *lnors_spacearr, MLoopNorSpaceArray *lnors_spacearr_tls)
float(* BKE_mesh_vert_coords_alloc(const struct Mesh *mesh, int *r_vert_len))[3]
void BKE_mesh_auto_smooth_flag_set(struct Mesh *me, bool use_auto_smooth, float auto_smooth_angle)
void BKE_mesh_flush_hidden_from_polys(struct Mesh *me)
void BKE_mesh_free_data_for_undo(struct Mesh *me)
void BKE_mesh_tag_coords_changed(struct Mesh *mesh)
void BKE_mesh_ensure_default_orig_index_customdata(struct Mesh *mesh)
float BKE_mesh_calc_poly_area(const struct MPoly *mpoly, const struct MLoop *loopstart, const struct MVert *mvarray)
void BKE_mesh_ensure_normals_for_display(struct Mesh *mesh)
void BKE_mesh_material_index_remove(struct Mesh *me, short index)
void BKE_mesh_calc_poly_normal_coords(const struct MPoly *mpoly, const struct MLoop *loopstart, const float(*vertex_coords)[3], float r_no[3])
bool BKE_mesh_center_bounds(const struct Mesh *me, float r_cent[3])
void BKE_mesh_transform(struct Mesh *me, const float mat[4][4], bool do_keys)
void BKE_mesh_material_index_clear(struct Mesh *me)
void BKE_mesh_polygon_flip(struct MPoly *mpoly, struct MLoop *mloop, struct CustomData *ldata)
void BKE_mesh_eval_geometry(struct Depsgraph *depsgraph, struct Mesh *mesh)
void BKE_lnor_spacearr_tls_init(MLoopNorSpaceArray *lnors_spacearr, MLoopNorSpaceArray *lnors_spacearr_tls)
void BKE_mesh_wrapper_deferred_finalize_mdata(struct Mesh *me_eval, const struct CustomData_MeshMasks *cd_mask_finalize)
void BKE_mesh_calc_edges(struct Mesh *mesh, bool keep_existing_edges, bool select_new_edges)
void BKE_mesh_to_curve_nurblist(const struct Mesh *me, struct ListBase *nurblist, int edge_users_test)
void(* BKE_mesh_batch_cache_free_cb)(struct Mesh *me)
void BKE_edges_sharp_from_angle_set(const struct MVert *mverts, int numVerts, struct MEdge *medges, int numEdges, struct MLoop *mloops, int numLoops, struct MPoly *mpolys, const float(*polynors)[3], int numPolys, float split_angle)
void BKE_lnor_space_custom_normal_to_data(MLoopNorSpace *lnor_space, const float custom_lnor[3], short r_clnor_data[2])
#define ATTR_WARN_UNUSED_RESULT
#define ATTR_NONNULL(...)
struct Depsgraph Depsgraph
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
ATTR_WARN_UNUSED_RESULT BMesh * bm
ATTR_WARN_UNUSED_RESULT const BMVert const BMEdge * e
ATTR_WARN_UNUSED_RESULT const BMVert * v
const Depsgraph * depsgraph
SyclQueue void void size_t num_bytes void
CCL_NAMESPACE_BEGIN ccl_device float invert(float color, float factor)
ccl_gpu_kernel_postfix ccl_global float int int int int float bool int offset
ccl_device_inline float4 mask(const int4 &mask, const float4 &a)
struct LinkNode * loops_pool
MLoopNorSpace ** lspacearr