Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2013-08-16 17:02:34 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-08-16 17:02:34 +0400
commit1677758e459dbbbc0ad8bd2cd87bfaf925414952 (patch)
tree312208c4701ca3fb88bf3f9ece944faf06b0de1d /source/blender/blenlib/intern/BLI_linklist.c
parentd75e14b31e5e65d1e38b1ca4688a42a346ac9495 (diff)
new bmesh queries BM_face_exists_overlap, BM_face_exists_overlap_subset
the subset version of the function checks if any faces has all its verts in the given array. also made some additions to linklist functions (arena and pool versions of append).
Diffstat (limited to 'source/blender/blenlib/intern/BLI_linklist.c')
-rw-r--r--source/blender/blenlib/intern/BLI_linklist.c49
1 files changed, 35 insertions, 14 deletions
diff --git a/source/blender/blenlib/intern/BLI_linklist.c b/source/blender/blenlib/intern/BLI_linklist.c
index 99fc5f27726..66fcfd21fbb 100644
--- a/source/blender/blenlib/intern/BLI_linklist.c
+++ b/source/blender/blenlib/intern/BLI_linklist.c
@@ -89,18 +89,39 @@ void BLI_linklist_reverse(LinkNode **listp)
*listp = rhead;
}
-void BLI_linklist_prepend(LinkNode **listp, void *ptr)
+/**
+ * A version of prepend that takes the allocated link.
+ */
+void BLI_linklist_prepend_nlink(LinkNode **listp, void *ptr, LinkNode *nlink)
{
- LinkNode *nlink = MEM_mallocN(sizeof(*nlink), "nlink");
nlink->link = ptr;
-
nlink->next = *listp;
*listp = nlink;
}
-void BLI_linklist_append(LinkNode **listp, void *ptr)
+void BLI_linklist_prepend(LinkNode **listp, void *ptr)
{
LinkNode *nlink = MEM_mallocN(sizeof(*nlink), "nlink");
+ BLI_linklist_prepend_nlink(listp, ptr, nlink);
+}
+
+void BLI_linklist_prepend_arena(LinkNode **listp, void *ptr, MemArena *ma)
+{
+ LinkNode *nlink = BLI_memarena_alloc(ma, sizeof(*nlink));
+ BLI_linklist_prepend_nlink(listp, ptr, nlink);
+}
+
+void BLI_linklist_prepend_pool(LinkNode **listp, void *ptr, BLI_mempool *mempool)
+{
+ LinkNode *nlink = BLI_mempool_alloc(mempool);
+ BLI_linklist_prepend_nlink(listp, ptr, nlink);
+}
+
+/**
+ * A version of append that takes the allocated link.
+ */
+void BLI_linklist_append_nlink(LinkNode **listp, void *ptr, LinkNode *nlink)
+{
LinkNode *node = *listp;
nlink->link = ptr;
@@ -117,22 +138,22 @@ void BLI_linklist_append(LinkNode **listp, void *ptr)
}
}
-void BLI_linklist_prepend_arena(LinkNode **listp, void *ptr, MemArena *ma)
+void BLI_linklist_append(LinkNode **listp, void *ptr)
+{
+ LinkNode *nlink = MEM_mallocN(sizeof(*nlink), "nlink");
+ BLI_linklist_append_nlink(listp, ptr, nlink);
+}
+
+void BLI_linklist_append_arena(LinkNode **listp, void *ptr, MemArena *ma)
{
LinkNode *nlink = BLI_memarena_alloc(ma, sizeof(*nlink));
- nlink->link = ptr;
-
- nlink->next = *listp;
- *listp = nlink;
+ BLI_linklist_append_nlink(listp, ptr, nlink);
}
-void BLI_linklist_prepend_pool(LinkNode **listp, void *ptr, BLI_mempool *mempool)
+void BLI_linklist_append_pool(LinkNode **listp, void *ptr, BLI_mempool *mempool)
{
LinkNode *nlink = BLI_mempool_alloc(mempool);
- nlink->link = ptr;
-
- nlink->next = *listp;
- *listp = nlink;
+ BLI_linklist_append_nlink(listp, ptr, nlink);
}
void *BLI_linklist_pop(struct LinkNode **listp)