From 6df9a6477d19ba9eb9e8f16b2bbd065444d9e482 Mon Sep 17 00:00:00 2001 From: Liam Girdwood Date: Sat, 5 Jul 2008 13:28:07 +0100 Subject: [PATCH] sky: grid - fixed grid at low FOV. --- src/sky/grid.c | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/src/sky/grid.c b/src/sky/grid.c index bbafc4c..91c642f 100644 --- a/src/sky/grid.c +++ b/src/sky/grid.c @@ -79,7 +79,7 @@ static inline int is_tile_visible(struct projection *proj, gint ra, gint dec) return projection_is_visible0(proj, &robject); } -static inline void mark_neighbour_tiles(struct projection *proj, +static inline void mark_tiles(struct projection *proj, gint ra, gint dec) { gint ra_start = ra - 1, ra_end = ra + 1; @@ -93,7 +93,8 @@ static inline void mark_neighbour_tiles(struct projection *proj, dec_start = 0; if (dec_end == GRID_DEC_TILES) dec_end = GRID_DEC_TILES - 1; - + + proj->grid_tile[ra][dec] = 1; proj->grid_tile[ra_start][dec_start] = 1; proj->grid_tile[ra_end][dec_start] = 1; proj->grid_tile[ra_start][dec_end] = 1; @@ -115,15 +116,18 @@ static void get_visible_tiles(struct projection *proj) } } + /* check each tile */ for (ra = 0; ra < GRID_RA_TILES; ra++) { for (dec = 0; dec < GRID_DEC_TILES; dec++) { - - if (is_tile_visible(proj, ra, dec)) { - proj->grid_tile[ra][dec] = 1; - mark_neighbour_tiles(proj, ra, dec); - } + if (is_tile_visible(proj, ra, dec)) + mark_tiles(proj, ra, dec); } } + + /* now check centre RA, DEC if tile size > fov */ + if (proj->fov <= 17.0) + mark_tiles(proj, (gint)(proj->centre_1ra / 15.0), + (gint)(proj->centre_1dec / 10.0 + 9)); } /* get grid RA step size for projection in arcsecs */ @@ -381,11 +385,11 @@ static inline void ra_line(struct render_object *robject, { gdouble divs = 5.0;//proj->pixels_per_degree gdouble step = (end->dec - pos->dec) / divs; -//printf("step %3.2f\n", step); + /* draw to RA end */ for (pos->dec = pos->dec + step; pos->dec <= end->dec; pos->dec += step) { -//printf("ra %3.2f dec %3.2f\n", pos->ra, pos->dec); + proj->trans->sky_to_proj_equ(proj, &robject->coord[0]); cairo_line_to(robject->cr, robject->coord[0].x, robject->coord[0].y); @@ -398,11 +402,11 @@ static inline void dec_line(struct render_object *robject, { gdouble divs = 5.0;//proj->pixels_per_degree gdouble step = (end->ra - pos->ra) / divs; -//printf("step %3.2f\n", step); + /* draw to DEC end */ for (pos->ra = pos->ra + step; pos->ra <= end->ra; pos->ra += step) { -//printf("ra %3.2f dec %3.2f\n", pos->ra, pos->dec); + proj->trans->sky_to_proj_equ(proj, &robject->coord[0]); cairo_line_to(robject->cr, robject->coord[0].x, robject->coord[0].y); @@ -426,7 +430,7 @@ static inline void render_square(struct render_object *robject, /* end corner */ end_pos.ra = start_pos.ra + 15.0; end_pos.dec = start_pos.dec + 10.0; - + /* RA lines */ for (; pos.ra <= end_pos.ra; pos.ra += ra_step_delta) { @@ -437,6 +441,7 @@ static inline void render_square(struct render_object *robject, robject->coord[0].x, robject->coord[0].y); ra_line(robject, proj, &pos, &end_pos); + //render_ra_labels_at(proj, robject, ra_step_delta); } /* DEC lines */ @@ -537,7 +542,7 @@ void grid_horizon_news(struct render_object *robject, struct projection *proj) struct ln_equ_posn pos1; cairo_save(robject->cr); - cairo_set_font_size (robject->cr, 18.0); + cairo_set_font_size (robject->cr, 20.0); cairo_set_source_rgba(robject->cr, 1, 0.35, 0.55, 0.7); robject->coord[0].posn = &pos1; pos1.dec = 0; @@ -596,11 +601,9 @@ void grid_render(Sky *sky) switch (proj->grid_coords) { case PC_RA_DEC: - //equ_render_ra(robject, proj, labels); - //equ_render_dec(robject, proj, labels); equ_render_grid(robject, proj); - equ_render_dec_labels(robject, proj); - equ_render_ra_labels(robject, proj); + //equ_render_dec_labels(robject, proj); + //equ_render_ra_labels(robject, proj); break; case PC_ALT_AZ: //hrz_render_ra(robject, proj, labels); @@ -614,7 +617,6 @@ void grid_render(Sky *sky) //grid_horizon_ra(robject, proj); grid_horizon_altaz(robject, proj); - grid_horizon_news(robject, proj); if (robject->type == RT_FAST) -- 2.11.4.GIT