15 struct list_head list;
19 unsigned char r, g, b;
22 struct planet_search_iterator {
23 struct quadtree_iterator qt_iterator;
24 struct vector limit[2];
29 #define list_to_planet(list_head) container_of((list_head), struct planet, list)
31 #define tree_to_planet(qt) container_of((qt), struct planet, tree)
33 #define qt_itr_to_planet_itr(qt) \
34 container_of((qt), struct planet_search_iterator, qt_iterator)
36 void init_planet(struct planet *p);
37 void create_planets(struct planet *p, int num, double total_mass,
39 void draw_planet(SDL_Surface *screen, struct planet *p, const struct camera *);
40 int gravitize_planets(struct planet *a, struct planet *b, const double time);
41 struct planet *merge_planets(struct planet *a, struct planet *b);
42 struct planet *move_planet(struct planet *p, const double time);
43 void print_planet(const struct planet *p);
45 int planet_spatial_compare(struct quadtree *a, struct quadtree *b);
46 int planet_search_rectangular(struct quadtree *node,
47 struct quadtree_iterator *itr);
48 void planet_draw_iterator(struct quadtree *node, struct quadtree_iterator *it);