diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-02-29 10:55:10 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-02-29 10:55:10 +0400 |
commit | a6f420b82888ca6ef2f919e6dfed2343fa349117 (patch) | |
tree | 696eea7b35312b243b61f3943fc13e2c66de8318 /source/blender/bmesh/intern/bmesh_structure.c | |
parent | b18794c3b67e75fc4eedcfed45686cc1efa279e8 (diff) |
update doxygen comments for bmesh.
Diffstat (limited to 'source/blender/bmesh/intern/bmesh_structure.c')
-rw-r--r-- | source/blender/bmesh/intern/bmesh_structure.c | 129 |
1 files changed, 65 insertions, 64 deletions
diff --git a/source/blender/bmesh/intern/bmesh_structure.c b/source/blender/bmesh/intern/bmesh_structure.c index 5e71497e08a..191b9c29f01 100644 --- a/source/blender/bmesh/intern/bmesh_structure.c +++ b/source/blender/bmesh/intern/bmesh_structure.c @@ -80,75 +80,80 @@ int bmesh_edge_swapverts(BMEdge *e, BMVert *orig, BMVert *newv) } /** - * BMESH CYCLES + * \section bm_cycles BMesh Cycles * (this is somewhat outdate, though bits of its API are still used) - joeedh * - * Cycles are circular doubly linked lists that form the basis of adjacency - * information in the BME modeller. Full adjacency relations can be derived - * from examining these cycles very quickly. Although each cycle is a double - * circular linked list, each one is considered to have a 'base' or 'head', - * and care must be taken by Euler code when modifying the contents of a cycle. + * Cycles are circular doubly linked lists that form the basis of adjacency + * information in the BME modeller. Full adjacency relations can be derived + * from examining these cycles very quickly. Although each cycle is a double + * circular linked list, each one is considered to have a 'base' or 'head', + * and care must be taken by Euler code when modifying the contents of a cycle. * - * The contents of this file are split into two parts. First there are the - * bmesh_cycle family of functions which are generic circular double linked list - * procedures. The second part contains higher level procedures for supporting - * modification of specific cycle types. + * The contents of this file are split into two parts. First there are the + * bmesh_cycle family of functions which are generic circular double linked list + * procedures. The second part contains higher level procedures for supporting + * modification of specific cycle types. * - * The three cycles explicitly stored in the BM data structure are as follows: + * The three cycles explicitly stored in the BM data structure are as follows: * - * 1: The Disk Cycle - A circle of edges around a vertex - * Base: vertex->edge pointer. * - * This cycle is the most complicated in terms of its structure. Each bmesh_Edge contains - * two bmesh_CycleNode structures to keep track of that edge's membership in the disk cycle - * of each of its vertices. However for any given vertex it may be the first in some edges - * in its disk cycle and the second for others. The bmesh_disk_XXX family of functions contain - * some nice utilities for navigating disk cycles in a way that hides this detail from the - * tool writer. + * 1: The Disk Cycle - A circle of edges around a vertex + * Base: vertex->edge pointer. * - * Note that the disk cycle is completley independent from face data. One advantage of this - * is that wire edges are fully integrated into the topology database. Another is that the - * the disk cycle has no problems dealing with non-manifold conditions involving faces. + * This cycle is the most complicated in terms of its structure. Each bmesh_Edge contains + * two bmesh_CycleNode structures to keep track of that edge's membership in the disk cycle + * of each of its vertices. However for any given vertex it may be the first in some edges + * in its disk cycle and the second for others. The bmesh_disk_XXX family of functions contain + * some nice utilities for navigating disk cycles in a way that hides this detail from the + * tool writer. * - * Functions relating to this cycle: + * Note that the disk cycle is completley independent from face data. One advantage of this + * is that wire edges are fully integrated into the topology database. Another is that the + * the disk cycle has no problems dealing with non-manifold conditions involving faces. * - * bmesh_disk_edge_append - * bmesh_disk_edge_remove - * bmesh_disk_edge_next - * - * 2: The Radial Cycle - A circle of face edges (bmesh_Loop) around an edge - * Base: edge->l->radial structure. - * - * The radial cycle is similar to the radial cycle in the radial edge data structure.* - * Unlike the radial edge however, the radial cycle does not require a large amount of memory - * to store non-manifold conditions since BM does not keep track of region/shell - * information. + * Functions relating to this cycle: + * - #bmesh_disk_edge_append + * - #bmesh_disk_edge_remove + * - #bmesh_disk_edge_next + * - #bmesh_disk_edge_prev + * - #bmesh_disk_facevert_count + * - #bmesh_disk_faceedge_find_first + * - #bmesh_disk_faceedge_find_next * - * Functions relating to this cycle: * - * bmesh_radial_append - * bmesh_radial_loop_remove - * bmesh_radial_loop_next - * bmesh_radial_face_find + * 2: The Radial Cycle - A circle of face edges (bmesh_Loop) around an edge + * Base: edge->l->radial structure. * + * The radial cycle is similar to the radial cycle in the radial edge data structure.* + * Unlike the radial edge however, the radial cycle does not require a large amount of memory + * to store non-manifold conditions since BM does not keep track of region/shell information. * - * 3: The Loop Cycle - A circle of face edges around a polygon. - * Base: polygon->lbase. + * Functions relating to this cycle: + * - #bmesh_radial_append + * - #bmesh_radial_loop_remove + * - #bmesh_radial_loop_next + * - #bmesh_radial_face_find + * - #bmesh_radial_facevert_count + * - #bmesh_radial_faceloop_find_first + * - #bmesh_radial_faceloop_find_next + * - #bmesh_radial_validate * - * The loop cycle keeps track of a faces vertices and edges. It should be noted that the - * direction of a loop cycle is either CW or CCW depending on the face normal, and is - * not oriented to the faces editedges. * - * Functions relating to this cycle: + * 3: The Loop Cycle - A circle of face edges around a polygon. + * Base: polygon->lbase. * - * bmesh_cycle_XXX family of functions. + * The loop cycle keeps track of a faces vertices and edges. It should be noted that the + * direction of a loop cycle is either CW or CCW depending on the face normal, and is + * not oriented to the faces editedges. * + * Functions relating to this cycle: + * - bmesh_cycle_XXX family of functions. * - * Note that the order of elements in all cycles except the loop cycle is undefined. This - * leads to slightly increased seek time for deriving some adjacency relations, however the - * advantage is that no intrinsic properties of the data structures are dependant upon the - * cycle order and all non-manifold conditions are represented trivially. * + * \note the order of elements in all cycles except the loop cycle is undefined. This + * leads to slightly increased seek time for deriving some adjacency relations, however the + * advantage is that no intrinsic properties of the data structures are dependant upon the + * cycle order and all non-manifold conditions are represented trivially. */ int bmesh_disk_edge_append(BMEdge *e, BMVert *v) { @@ -286,15 +291,14 @@ int bmesh_disk_validate(int len, BMEdge *e, BMVert *v) return TRUE; } -/* - * BME DISK COUNT FACE VERT +/** + * \brief DISK COUNT FACE VERT * * Counts the number of loop users * for this vertex. Note that this is * equivalent to counting the number of * faces incident upon this vertex */ - int bmesh_disk_facevert_count(BMVert *v) { /* is there an edge on this vert at all */ @@ -316,15 +320,14 @@ int bmesh_disk_facevert_count(BMVert *v) } } -/* - * BME FIND FIRST FACE EDGE +/** + * \brief FIND FIRST FACE EDGE * * Finds the first edge in a vertices * Disk cycle that has one of this * vert's loops attached * to it. */ - BMEdge *bmesh_disk_faceedge_find_first(BMEdge *e, BMVert *v) { BMEdge *searchedge = NULL; @@ -381,8 +384,8 @@ int bmesh_radial_validate(int radlen, BMLoop *l) return TRUE; } -/* - * BMESH RADIAL REMOVE LOOP +/** + * \brief BMESH RADIAL REMOVE LOOP * * Removes a loop from an radial cycle. If edge e is non-NULL * it should contain the radial cycle, and it will also get @@ -421,8 +424,8 @@ void bmesh_radial_loop_remove(BMLoop *l, BMEdge *e) } -/* - * BME RADIAL FIND FIRST FACE VERT +/** + * \brief BME RADIAL FIND FIRST FACE VERT * * Finds the first loop of v around radial * cycle @@ -518,14 +521,12 @@ int bmesh_radial_face_find(BMEdge *e, BMFace *f) return FALSE; } -/* - * BME RADIAL COUNT FACE VERT +/** + * \brief RADIAL COUNT FACE VERT * * Returns the number of times a vertex appears * in a radial cycle - * */ - int bmesh_radial_facevert_count(BMLoop *l, BMVert *v) { BMLoop *l_iter; |