From e12c08e8d170b7ca40f204a5b0423c23a9fbc2c1 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 17 Apr 2019 06:17:24 +0200 Subject: ClangFormat: apply to source, most of intern Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat --- source/blender/blenkernel/BKE_mesh_mapping.h | 316 +++++++++++++++------------ 1 file changed, 173 insertions(+), 143 deletions(-) (limited to 'source/blender/blenkernel/BKE_mesh_mapping.h') diff --git a/source/blender/blenkernel/BKE_mesh_mapping.h b/source/blender/blenkernel/BKE_mesh_mapping.h index b81e165870c..47eb4ef1423 100644 --- a/source/blender/blenkernel/BKE_mesh_mapping.h +++ b/source/blender/blenkernel/BKE_mesh_mapping.h @@ -33,199 +33,229 @@ struct MVert; /* map from uv vertex to face (for select linked, stitch, uv suburf) */ /* UvVertMap */ -#define STD_UV_CONNECT_LIMIT 0.0001f +#define STD_UV_CONNECT_LIMIT 0.0001f typedef struct UvVertMap { - struct UvMapVert **vert; - struct UvMapVert *buf; + struct UvMapVert **vert; + struct UvMapVert *buf; } UvVertMap; typedef struct UvMapVert { - struct UvMapVert *next; - unsigned int poly_index; - unsigned short loop_of_poly_index; - bool separate; - /* Zero-ed by map creation, left for use by specific areas. Is not - * initialized to anything. */ - unsigned char flag; + struct UvMapVert *next; + unsigned int poly_index; + unsigned short loop_of_poly_index; + bool separate; + /* Zero-ed by map creation, left for use by specific areas. Is not + * initialized to anything. */ + unsigned char flag; } UvMapVert; /* UvElement stores per uv information so that we can quickly access information for a uv. * it is actually an improved UvMapVert, including an island and a direct pointer to the face * to avoid initializing face arrays */ typedef struct UvElement { - /* Next UvElement corresponding to same vertex */ - struct UvElement *next; - /* Face the element belongs to */ - struct BMLoop *l; - /* index in loop. */ - unsigned short loop_of_poly_index; - /* Whether this element is the first of coincident elements */ - bool separate; - /* general use flag */ - unsigned char flag; - /* If generating element map with island sorting, this stores the island index */ - unsigned int island; + /* Next UvElement corresponding to same vertex */ + struct UvElement *next; + /* Face the element belongs to */ + struct BMLoop *l; + /* index in loop. */ + unsigned short loop_of_poly_index; + /* Whether this element is the first of coincident elements */ + bool separate; + /* general use flag */ + unsigned char flag; + /* If generating element map with island sorting, this stores the island index */ + unsigned int island; } UvElement; - /* UvElementMap is a container for UvElements of a mesh. It stores some UvElements belonging to the * same uv island in sequence and the number of uvs per island so it is possible to access all uvs * belonging to an island directly by iterating through the buffer. */ typedef struct UvElementMap { - /* address UvElements by their vertex */ - struct UvElement **vert; - /* UvElement Store */ - struct UvElement *buf; - /* Total number of UVs in the layer. Useful to know */ - int totalUVs; - /* Number of Islands in the mesh */ - int totalIslands; - /* Stores the starting index in buf where each island begins */ - int *islandIndices; + /* address UvElements by their vertex */ + struct UvElement **vert; + /* UvElement Store */ + struct UvElement *buf; + /* Total number of UVs in the layer. Useful to know */ + int totalUVs; + /* Number of Islands in the mesh */ + int totalIslands; + /* Stores the starting index in buf where each island begins */ + int *islandIndices; } UvElementMap; #define INVALID_ISLAND ((unsigned int)-1) /* Connectivity data */ typedef struct MeshElemMap { - int *indices; - int count; + int *indices; + int count; } MeshElemMap; /* mapping */ -UvVertMap *BKE_mesh_uv_vert_map_create( - const struct MPoly *mpoly, const struct MLoop *mloop, const struct MLoopUV *mloopuv, - unsigned int totpoly, unsigned int totvert, const float limit[2], - const bool selected, const bool use_winding); +UvVertMap *BKE_mesh_uv_vert_map_create(const struct MPoly *mpoly, + const struct MLoop *mloop, + const struct MLoopUV *mloopuv, + unsigned int totpoly, + unsigned int totvert, + const float limit[2], + const bool selected, + const bool use_winding); UvMapVert *BKE_mesh_uv_vert_map_get_vert(UvVertMap *vmap, unsigned int v); -void BKE_mesh_uv_vert_map_free(UvVertMap *vmap); - -void BKE_mesh_vert_poly_map_create( - MeshElemMap **r_map, int **r_mem, - const struct MPoly *mface, const struct MLoop *mloop, - int totvert, int totface, int totloop); -void BKE_mesh_vert_loop_map_create( - MeshElemMap **r_map, int **r_mem, - const struct MPoly *mface, const struct MLoop *mloop, - int totvert, int totface, int totloop); -void BKE_mesh_vert_looptri_map_create( - MeshElemMap **r_map, int **r_mem, - const struct MVert *mvert, const int totvert, - const struct MLoopTri *mlooptri, const int totlooptri, - const struct MLoop *mloop, const int totloop); +void BKE_mesh_uv_vert_map_free(UvVertMap *vmap); + +void BKE_mesh_vert_poly_map_create(MeshElemMap **r_map, + int **r_mem, + const struct MPoly *mface, + const struct MLoop *mloop, + int totvert, + int totface, + int totloop); +void BKE_mesh_vert_loop_map_create(MeshElemMap **r_map, + int **r_mem, + const struct MPoly *mface, + const struct MLoop *mloop, + int totvert, + int totface, + int totloop); +void BKE_mesh_vert_looptri_map_create(MeshElemMap **r_map, + int **r_mem, + const struct MVert *mvert, + const int totvert, + const struct MLoopTri *mlooptri, + const int totlooptri, + const struct MLoop *mloop, + const int totloop); void BKE_mesh_vert_edge_map_create( - MeshElemMap **r_map, int **r_mem, - const struct MEdge *medge, int totvert, int totedge); + MeshElemMap **r_map, int **r_mem, const struct MEdge *medge, int totvert, int totedge); void BKE_mesh_vert_edge_vert_map_create( - MeshElemMap **r_map, int **r_mem, - const struct MEdge *medge, int totvert, int totedge); -void BKE_mesh_edge_loop_map_create( - MeshElemMap **r_map, int **r_mem, - const struct MEdge *medge, const int totedge, - const struct MPoly *mpoly, const int totpoly, - const struct MLoop *mloop, const int totloop); -void BKE_mesh_edge_poly_map_create( - MeshElemMap **r_map, int **r_mem, - const struct MEdge *medge, const int totedge, - const struct MPoly *mpoly, const int totpoly, - const struct MLoop *mloop, const int totloop); -void BKE_mesh_origindex_map_create( - MeshElemMap **r_map, int **r_mem, - const int totorig, - const int *final_origindex, const int totfinal); -void BKE_mesh_origindex_map_create_looptri( - MeshElemMap **r_map, int **r_mem, - const struct MPoly *mpoly, const int mpoly_num, - const struct MLoopTri *looptri, const int looptri_num); + MeshElemMap **r_map, int **r_mem, const struct MEdge *medge, int totvert, int totedge); +void BKE_mesh_edge_loop_map_create(MeshElemMap **r_map, + int **r_mem, + const struct MEdge *medge, + const int totedge, + const struct MPoly *mpoly, + const int totpoly, + const struct MLoop *mloop, + const int totloop); +void BKE_mesh_edge_poly_map_create(MeshElemMap **r_map, + int **r_mem, + const struct MEdge *medge, + const int totedge, + const struct MPoly *mpoly, + const int totpoly, + const struct MLoop *mloop, + const int totloop); +void BKE_mesh_origindex_map_create(MeshElemMap **r_map, + int **r_mem, + const int totorig, + const int *final_origindex, + const int totfinal); +void BKE_mesh_origindex_map_create_looptri(MeshElemMap **r_map, + int **r_mem, + const struct MPoly *mpoly, + const int mpoly_num, + const struct MLoopTri *looptri, + const int looptri_num); /* islands */ /* Loop islands data helpers. */ enum { - MISLAND_TYPE_NONE = 0, - MISLAND_TYPE_VERT = 1, - MISLAND_TYPE_EDGE = 2, - MISLAND_TYPE_POLY = 3, - MISLAND_TYPE_LOOP = 4, + MISLAND_TYPE_NONE = 0, + MISLAND_TYPE_VERT = 1, + MISLAND_TYPE_EDGE = 2, + MISLAND_TYPE_POLY = 3, + MISLAND_TYPE_LOOP = 4, }; typedef struct MeshIslandStore { - short item_type; /* MISLAND_TYPE_... */ - short island_type; /* MISLAND_TYPE_... */ - short innercut_type; /* MISLAND_TYPE_... */ + short item_type; /* MISLAND_TYPE_... */ + short island_type; /* MISLAND_TYPE_... */ + short innercut_type; /* MISLAND_TYPE_... */ - int items_to_islands_num; - int *items_to_islands; /* map the item to the island index */ + int items_to_islands_num; + int *items_to_islands; /* map the item to the island index */ - int islands_num; - size_t islands_num_alloc; - struct MeshElemMap **islands; /* Array of pointers, one item per island. */ - struct MeshElemMap **innercuts; /* Array of pointers, one item per island. */ + int islands_num; + size_t islands_num_alloc; + struct MeshElemMap **islands; /* Array of pointers, one item per island. */ + struct MeshElemMap **innercuts; /* Array of pointers, one item per island. */ - struct MemArena *mem; /* Memory arena, internal use only. */ + struct MemArena *mem; /* Memory arena, internal use only. */ } MeshIslandStore; -void BKE_mesh_loop_islands_init( - MeshIslandStore *island_store, - const short item_type, const int item_num, const short island_type, const short innercut_type); +void BKE_mesh_loop_islands_init(MeshIslandStore *island_store, + const short item_type, + const int item_num, + const short island_type, + const short innercut_type); void BKE_mesh_loop_islands_clear(MeshIslandStore *island_store); void BKE_mesh_loop_islands_free(MeshIslandStore *island_store); -void BKE_mesh_loop_islands_add( - MeshIslandStore *islands, const int item_num, int *item_indices, - const int num_island_items, int *island_item_indices, - const int num_innercut_items, int *innercut_item_indices); - -typedef bool (*MeshRemapIslandsCalc)( - struct MVert *verts, const int totvert, - struct MEdge *edges, const int totedge, - struct MPoly *polys, const int totpoly, - struct MLoop *loops, const int totloop, - struct MeshIslandStore *r_island_store); +void BKE_mesh_loop_islands_add(MeshIslandStore *islands, + const int item_num, + int *item_indices, + const int num_island_items, + int *island_item_indices, + const int num_innercut_items, + int *innercut_item_indices); + +typedef bool (*MeshRemapIslandsCalc)(struct MVert *verts, + const int totvert, + struct MEdge *edges, + const int totedge, + struct MPoly *polys, + const int totpoly, + struct MLoop *loops, + const int totloop, + struct MeshIslandStore *r_island_store); /* Above vert/UV mapping stuff does not do what we need here, but does things we do not need here. * So better keep them separated for now, I think. */ -bool BKE_mesh_calc_islands_loop_poly_edgeseam( - struct MVert *verts, const int totvert, - struct MEdge *edges, const int totedge, - struct MPoly *polys, const int totpoly, - struct MLoop *loops, const int totloop, - MeshIslandStore *r_island_store); - -bool BKE_mesh_calc_islands_loop_poly_uvmap( - struct MVert *verts, const int totvert, - struct MEdge *edges, const int totedge, - struct MPoly *polys, const int totpoly, - struct MLoop *loops, const int totloop, - const struct MLoopUV *luvs, - MeshIslandStore *r_island_store); - -int *BKE_mesh_calc_smoothgroups( - const struct MEdge *medge, const int totedge, - const struct MPoly *mpoly, const int totpoly, - const struct MLoop *mloop, const int totloop, - int *r_totgroup, const bool use_bitflags); +bool BKE_mesh_calc_islands_loop_poly_edgeseam(struct MVert *verts, + const int totvert, + struct MEdge *edges, + const int totedge, + struct MPoly *polys, + const int totpoly, + struct MLoop *loops, + const int totloop, + MeshIslandStore *r_island_store); + +bool BKE_mesh_calc_islands_loop_poly_uvmap(struct MVert *verts, + const int totvert, + struct MEdge *edges, + const int totedge, + struct MPoly *polys, + const int totpoly, + struct MLoop *loops, + const int totloop, + const struct MLoopUV *luvs, + MeshIslandStore *r_island_store); + +int *BKE_mesh_calc_smoothgroups(const struct MEdge *medge, + const int totedge, + const struct MPoly *mpoly, + const int totpoly, + const struct MLoop *mloop, + const int totloop, + int *r_totgroup, + const bool use_bitflags); /* No good (portable) way to have exported inlined functions... */ -#define BKE_MESH_TESSFACE_VINDEX_ORDER(_mf, _v) ( \ - (CHECK_TYPE_INLINE(_mf, MFace *), \ - CHECK_TYPE_INLINE(&(_v), unsigned int *)), \ - ((_mf->v1 == _v) ? 0 : \ - (_mf->v2 == _v) ? 1 : \ - (_mf->v3 == _v) ? 2 : \ - (_mf->v4 && _mf->v4 == _v) ? 3 : -1) \ - ) +#define BKE_MESH_TESSFACE_VINDEX_ORDER(_mf, _v) \ + ((CHECK_TYPE_INLINE(_mf, MFace *), CHECK_TYPE_INLINE(&(_v), unsigned int *)), \ + ((_mf->v1 == _v) ? \ + 0 : \ + (_mf->v2 == _v) ? 1 : (_mf->v3 == _v) ? 2 : (_mf->v4 && _mf->v4 == _v) ? 3 : -1)) /* use on looptri vertex values */ -#define BKE_MESH_TESSTRI_VINDEX_ORDER(_tri, _v) ( \ - (CHECK_TYPE_ANY(_tri, unsigned int *, int *, int[3], \ - const unsigned int *, const int *, const int[3]), \ - CHECK_TYPE_ANY(_v, unsigned int, const unsigned int, int, const int)), \ - (((_tri)[0] == _v) ? 0 : \ - ((_tri)[1] == _v) ? 1 : \ - ((_tri)[2] == _v) ? 2 : -1) \ - ) - -#endif /* __BKE_MESH_MAPPING_H__ */ +#define BKE_MESH_TESSTRI_VINDEX_ORDER(_tri, _v) \ + ((CHECK_TYPE_ANY( \ + _tri, unsigned int *, int *, int[3], const unsigned int *, const int *, const int[3]), \ + CHECK_TYPE_ANY(_v, unsigned int, const unsigned int, int, const int)), \ + (((_tri)[0] == _v) ? 0 : ((_tri)[1] == _v) ? 1 : ((_tri)[2] == _v) ? 2 : -1)) + +#endif /* __BKE_MESH_MAPPING_H__ */ -- cgit v1.2.3