mosaico è di tipo tree, non pensavo che servisse
Queste funzioni praticamente non fanno altro che ricreare come matrice un albero a quadranti. ordine calcola il lato della matrice + piccola che posso contenere tutto, cx e cy fungono da coordinate cartesiane

codice:
typedef struct qtnode {
    int cx;
    int cy;
    struct qtnode *nord; // north quadrant
    struct qtnode *sud; // south quadrant
    struct qtnode *ovest; // west quadrant
    struct qtnode *est; // east quadrant
}qtnode;

typedef struct qtnode* tree;