Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

lion_outline.cpp File Reference

#include <stdlib.h>
#include <ctype.h>
#include <stdio.h>
#include "agg_basics.h"
#include "agg_rendering_buffer.h"
#include "agg_rasterizer_scanline_aa.h"
#include "agg_renderer_outline_aa.h"
#include "agg_rasterizer_outline_aa.h"
#include "agg_scanline_p.h"
#include "agg_renderer_scanline.h"
#include "agg_path_storage.h"
#include "agg_conv_transform.h"
#include "agg_bounding_rect.h"
#include "ctrl/agg_slider_ctrl.h"
#include "ctrl/agg_cbox_ctrl.h"
#include "platform/agg_platform_support.h"
#include "pixel_formats.h"

Go to the source code of this file.

Classes

class  the_application

Defines

#define AGG_BGR24

Enumerations

enum  flip_y_e { flip_y = true }

Functions

unsigned parse_lion (agg::path_storage &ps, agg::rgba8 *colors, unsigned *path_idx)
int agg_main (int argc, char *argv[])

Variables

agg::rasterizer_scanline_aa g_rasterizer
agg::scanline_p8 g_scanline
agg::path_storage g_path
agg::rgba8 g_colors [100]
unsigned g_path_idx [100]
unsigned g_npaths = 0
double g_x1 = 0
double g_y1 = 0
double g_x2 = 0
double g_y2 = 0
double g_base_dx = 0
double g_base_dy = 0
double g_angle = 0
double g_scale = 1.0
double g_skew_x = 0
double g_skew_y = 0
int g_nclick = 0


Define Documentation

#define AGG_BGR24
 

Definition at line 18 of file lion_outline.cpp.


Enumeration Type Documentation

enum flip_y_e
 

Enumerator:
flip_y 

Definition at line 28 of file lion_outline.cpp.

00028 { flip_y = true };


Function Documentation

int agg_main int  argc,
char *  argv[]
 

Definition at line 174 of file lion_outline.cpp.

References platform_support::caption(), flip_y, platform_support::init(), pix_format, platform_support::run(), and agg::window_resize.

00175 {
00176     the_application app(pix_format, flip_y);
00177     app.caption("AGG Example. Lion");
00178 
00179     if(app.init(512, 512, agg::window_resize))
00180     {
00181         return app.run();
00182     }
00183     return 1;
00184 }

unsigned parse_lion agg::path_storage ps,
agg::rgba8 colors,
unsigned *  path_idx
 

Definition at line 156 of file parse_lion.cpp.

00157 {
00158     // Parse the lion and then detect its bounding
00159     // box and arrange polygons orientations (make all polygons
00160     // oriented clockwise or counterclockwise)
00161 
00162     const char* ptr = g_lion;
00163     unsigned npaths = 0;
00164 
00165     while(*ptr)
00166     {
00167         if(*ptr != 'M' && isalnum(*ptr))
00168         {
00169             unsigned c = 0;
00170             sscanf(ptr, "%x", &c);
00171 
00172             // New color. Every new color creates new path in the path object.
00173             path.close_polygon();
00174             colors[npaths] = agg::rgb8_packed(c);
00175             path_idx[npaths] = path.start_new_path();
00176             npaths++;
00177             while(*ptr && *ptr != '\n') ptr++;
00178             if(*ptr == '\n') ptr++;
00179         }
00180         else
00181         {
00182             double x = 0.0;
00183             double y = 0.0;
00184 
00185             while(*ptr && *ptr != '\n')
00186             {
00187                 int c = *ptr;
00188 
00189                 while(*ptr && !isdigit(*ptr)) ptr++;
00190                 x = atof(ptr);
00191 
00192                 while(*ptr &&  isdigit(*ptr)) ptr++;
00193                 while(*ptr && !isdigit(*ptr)) ptr++;
00194                 y = atof(ptr);
00195 
00196                 if(c == 'M')
00197                 {
00198                     path.close_polygon();
00199                     path.move_to(x, y);
00200                 }
00201                 else
00202                 {
00203                     path.line_to(x, y);
00204                 }
00205 
00206                 while(*ptr &&  isdigit(*ptr)) ptr++;
00207                 while(*ptr && *ptr != '\n' && !isalpha(*ptr)) ptr++;
00208             }
00209             if(*ptr == '\n') ptr++;
00210         }
00211     }
00212     path.arrange_orientations_all_paths(agg::path_flags_cw);
00213     return npaths;
00214 }


Variable Documentation

double g_angle = 0
 

Definition at line 43 of file lion_outline.cpp.

double g_base_dx = 0
 

Definition at line 41 of file lion_outline.cpp.

double g_base_dy = 0
 

Definition at line 42 of file lion_outline.cpp.

agg::rgba8 g_colors[100]
 

Definition at line 34 of file lion_outline.cpp.

int g_nclick = 0
 

Definition at line 47 of file lion_outline.cpp.

unsigned g_npaths = 0
 

Definition at line 36 of file lion_outline.cpp.

agg::path_storage g_path
 

Definition at line 33 of file lion_outline.cpp.

unsigned g_path_idx[100]
 

Definition at line 35 of file lion_outline.cpp.

agg::rasterizer_scanline_aa g_rasterizer
 

Definition at line 31 of file lion_outline.cpp.

double g_scale = 1.0
 

Definition at line 44 of file lion_outline.cpp.

agg::scanline_p8 g_scanline
 

Definition at line 32 of file lion_outline.cpp.

double g_skew_x = 0
 

Definition at line 45 of file lion_outline.cpp.

double g_skew_y = 0
 

Definition at line 46 of file lion_outline.cpp.

double g_x1 = 0
 

Definition at line 37 of file lion_outline.cpp.

double g_x2 = 0
 

Definition at line 39 of file lion_outline.cpp.

double g_y1 = 0
 

Definition at line 38 of file lion_outline.cpp.

double g_y2 = 0
 

Definition at line 40 of file lion_outline.cpp.


© sourcejam.com 2005-2008