Eina_Quad_Callback horizontal);
EAPI void eina_quadtree_free(Eina_QuadTree *q);
EAPI void eina_quadtree_resize(Eina_QuadTree *q, size_t w, size_t h);
+
EAPI void eina_quadtree_cycle(Eina_QuadTree *q);
+EAPI void eina_quadtree_increase(Eina_QuadTree_Item *object);
EAPI Eina_QuadTree_Item *eina_quadtree_add(Eina_QuadTree *q, const void *object);
EAPI Eina_Bool eina_quadtree_del(Eina_QuadTree_Item *object);
result->root = NULL;
result->object = object;
- result->index = 0;
+ result->index = q->index++;
+
result->change = EINA_TRUE;
result->delete_me = EINA_FALSE;
result->visible = EINA_TRUE;
EAPI Eina_Bool
eina_quadtree_show(Eina_QuadTree_Item *object)
{
- size_t tmp;
-
EINA_MAGIC_CHECK_QUADTREE_ITEM(object, EINA_FALSE);
- tmp = object->quad->index++;
- if (object->index == tmp
- && object->visible)
- return EINA_TRUE;
-
- object->index = tmp;
- if (object->root)
- object->root->sorted = EINA_FALSE;
object->quad->lost = EINA_TRUE;
if (object->visible) return EINA_TRUE;
q->index = 0;
}
+EAPI void
+eina_quadtree_increase(Eina_QuadTree_Item *object)
+{
+ size_t tmp;
+
+ tmp = object->quad->index++;
+ if (object->index == tmp)
+ return ;
+
+ object->index = tmp;
+ if (object->root)
+ object->root->sorted = EINA_FALSE;
+}
+
Eina_Bool
eina_quadtree_init(void)
{
# include "config.h"
#endif
+#include <assert.h>
+#include <stdio.h>
+
#include "eina_suite.h"
#include "Eina.h"
eina_quadtree_cycle(q);
eina_quadtree_show(objects[4].item);
+ eina_quadtree_increase(objects[4].item);
eina_quadtree_show(objects[5].item);
+ eina_quadtree_increase(objects[5].item);
eina_quadtree_del(objects[5].item);
eina_quadtree_change(objects[10].item);
+ eina_quadtree_increase(objects[10].item);
eina_quadtree_resize(q, 641, 480);