Skip to content
Snippets Groups Projects
Commit 8276289a authored by poulpe's avatar poulpe
Browse files

[Update] Add symmetry function with quadtree (horiz,vertical,central)

parent 9b664000
Branches
No related tags found
No related merge requests found
...@@ -30,6 +30,7 @@ int main() ...@@ -30,6 +30,7 @@ int main()
// matrix_alloc(&mat,p->pixels.lin,p->pixels.col); // matrix_alloc(&mat,p->pixels.lin,p->pixels.col);
// matrix_init(&mat); // matrix_init(&mat);
quadtree_central_symetry(tree);
quadtree_tree2matrix(tree,&pp->pixels); quadtree_tree2matrix(tree,&pp->pixels);
// // matrix_print(mat); // // matrix_print(mat);
...@@ -42,7 +43,7 @@ int main() ...@@ -42,7 +43,7 @@ int main()
matrix_destroy(&p->pixels); matrix_destroy(&p->pixels);
matrix_destroy(&pp->pixels); matrix_destroy(&pp->pixels);
quadtree_tree_destroy_clean(&tree); quadtree_tree_destroy(&tree);
free(p); free(p);
free(pp); free(pp);
return 0; return 0;
... ...
......
...@@ -154,36 +154,41 @@ void quadtree_tree2matrix(node *tree, matrix *mat) ...@@ -154,36 +154,41 @@ void quadtree_tree2matrix(node *tree, matrix *mat)
} }
} }
void quadtree_vertical_symetry(node *tree) // OK
{
// Inversé les colones
}
void quadtree_horizontal_symetry(node *tree) void quadtree_horizontal_symetry(node *tree)
{ {
} if (NULL != tree)
{
void quadtree_central_symetry(node *tree) for (uint32_t i = 0; i < CHILDREN; i += 1)
{ {
quadtree_horizontal_symetry(tree->child[i]);
}
quadtree_swap((void**)&tree->child[0], (void**)&tree->child[1]);
quadtree_swap((void**)&tree->child[2], (void**)&tree->child[3]);
}
} }
void quadtree_tree_destroy(node **tree) // OK
{ void quadtree_vertical_symetry(node *tree)
node *a = *tree;
if (a->child[0] == NULL)
{ {
free(a); if (NULL != tree)
}
else
{ {
for (uint32_t i = 0; i < CHILDREN; i += 1) for (uint32_t i = 0; i < CHILDREN; i += 1)
{ {
quadtree_tree_destroy(&a->child[i]); quadtree_vertical_symetry(tree->child[i]);
} }
quadtree_swap((void**)&tree->child[0], (void**)&tree->child[2]);
quadtree_swap((void**)&tree->child[1], (void**)&tree->child[3]);
} }
} }
void quadtree_tree_destroy_clean(node **tree) void quadtree_central_symetry(node *tree)
{
quadtree_vertical_symetry(tree);
quadtree_horizontal_symetry(tree);
}
void quadtree_tree_destroy(node **tree)
{ {
if (NULL != *tree) if (NULL != *tree)
{ {
...@@ -191,7 +196,7 @@ void quadtree_tree_destroy_clean(node **tree) ...@@ -191,7 +196,7 @@ void quadtree_tree_destroy_clean(node **tree)
{ {
for (uint32_t i = 0; i < CHILDREN; i += 1) for (uint32_t i = 0; i < CHILDREN; i += 1)
{ {
quadtree_tree_destroy_clean(&(*tree)->child[i]); quadtree_tree_destroy(&(*tree)->child[i]);
} }
} }
else else
... ...
......
...@@ -42,3 +42,11 @@ void quadtree_tree_destroy(node **tree); ...@@ -42,3 +42,11 @@ void quadtree_tree_destroy(node **tree);
void quadtree_tree2matrix(node *tree,matrix* mat); void quadtree_tree2matrix(node *tree,matrix* mat);
void quadtree_tree_destroy_clean(node **tree); void quadtree_tree_destroy_clean(node **tree);
double quadtree_position_value(int32_t li, int32_t col, node *a, int32_t d);
void quadtree_horizontal_symetry(node *tree);
void quadtree_vertical_symetry(node *tree);
void quadtree_central_symetry(node *tree);
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment