# hpgs_reader_st Struct Reference
[Reader]

A HPGL interpreter. More...

`#include <hpgsreader.h>`

## Data Fields
hpgs_istream * | in
hpgs_device * | device
hpgs_device * | plotsize_device
int | current_page
int | verbosity
double | lw_factor
hpgs_point | P1
hpgs_point | P2
hpgs_point | delta_P
int | rotation
int | rop3
hpgs_bool | src_transparency
hpgs_bool | pattern_transparency
hpgs_matrix | world_matrix
double | world_scale
hpgs_matrix | page_matrix
double | page_scale
hpgs_matrix | total_matrix
double | total_scale
int | page_mode
double | page_width
double | page_height
double | page_angle
double | page_border
hpgs_bbox | page_bbox
hpgs_bbox | content_bbox
void * | page_asset_ctxt
hpgs_reader_asset_func_t | page_asset_func
void * | frame_asset_ctxt
hpgs_reader_asset_func_t | frame_asset_func
hpgs_color | min_color
hpgs_color | max_color
int | polygon_mode
int | polygon_open
int | pen_width_relative
int | pen_down
int | current_pen
int | current_linetype
int | absolute_plotting
int | have_current_point
hpgs_point | current_point
hpgs_point | first_path_point
hpgs_point | min_path_point
hpgs_point | max_path_point
hpgs_point | anchor_point
int | current_ft
double | ft3_angle
double | ft3_spacing
double | ft4_angle
double | ft4_spacing
double | ft10_level
int | alternate_font
double | pcl_scale
double | pcl_hmi
double | pcl_vmi
hpgs_point | pcl_point
hpgs_reader_pcl_palette ** | pcl_palettes
size_t | pcl_n_palettes
int | pcl_i_palette
int | pcl_pattern
hpgs_palette_color | pcl_foreground_color
int | pcl_raster_mode
int | pcl_raster_presentation
int | pcl_raster_src_width
int | pcl_raster_src_height
int | pcl_raster_dest_width
int | pcl_raster_dest_height
int | pcl_raster_res
int | pcl_raster_compression
int | pcl_raster_y_offset
int | pcl_raster_plane
int | pcl_raster_line
unsigned char * | pcl_raster_data [8]
int | pcl_raster_data_size
int | pcl_raster_planes
hpgs_image * | pcl_image
int | png_dump_count
char * | png_dump_filename
int | clipsave_depth
int | last_byte
int | bytes_ignored
int | eoc
hpgs_bool | interrupted
double | x_size
double | y_size
double | frame_x
double | frame_y
int | sc_type
double | sc_xmin
double | sc_xmax
double | sc_ymin
double | sc_ymax
double | sc_left
double | sc_bottom
int | linetype_nsegs [17]
float | linetype_segs [17][20]
int | npens
double * | pen_widths
hpgs_color * | pen_colors
char | label_term
int | label_term_ignore
hpgs_reader_poly_point * | poly_buffer
int | poly_buffer_size
int | poly_buffer_alloc_size
int | default_encoding
int | default_face
int | default_spacing
double | default_pitch
double | default_height
int | default_posture
int | default_weight
int | alternate_encoding
int | alternate_face
int | alternate_spacing
double | alternate_pitch
double | alternate_height
int | alternate_posture
int | alternate_weight
hpgs_point | cr_point
hpgs_point | current_char_size
hpgs_point | current_extra_space
double | current_slant
int | current_label_origin
int | current_text_path
int | current_text_line
double | current_label_angle

## Detailed Description

A HPGL interpreter.

This structure holds all the states used during the interpretation of a HPGL stream. Users of the library usually don't have to cope with details of this structure.

## Field Documentation

hpgs_istream* hpgs_reader_st::in

The current input stream.

Referenced by hpgs_destroy_reader(), hpgs_new_reader(), hpgs_read(), hpgs_reader_attach(), hpgs_reader_do_PCL(), hpgs_reader_do_PJL(), hpgs_reader_imbue(), hpgs_reader_read_double(), hpgs_reader_read_int(), hpgs_reader_read_new_string(), and hpgs_reader_read_pcl_int().

hpgs_device* hpgs_reader_st::device

The current output device.

Referenced by hpgs_destroy_reader(), hpgs_new_reader(), hpgs_read(), hpgs_reader_imbue(), and hpgs_reader_stamp().

hpgs_device* hpgs_reader_st::plotsize_device

The current plotsize device.

Referenced by hpgs_destroy_reader(), hpgs_new_reader(), hpgs_read(), and hpgs_reader_imbue().

int hpgs_reader_st::current_page

The number of the current page. -1...single page mode.

Referenced by hpgs_new_reader(), hpgs_read(), and hpgs_reader_imbue().

int hpgs_reader_st::verbosity

The verbosity level in effect.

Referenced by hpgs_new_reader(), hpgs_read(), and hpgs_reader_do_PJL().

double hpgs_reader_st::lw_factor

The linewidth scaling factor.

Referenced by hpgs_new_reader(), and hpgs_reader_set_lw_factor().

double hpgs_reader_st::x_size

The paper size in PostScript pt (1/72 inch).

double hpgs_reader_st::frame_x

The frame advance vector in PostScript pt (1/72 inch).

hpgs_point hpgs_reader_st::P1

HPGL frame point P1 in PostScript pt (1/72 inch).

hpgs_point hpgs_reader_st::P2

HPGL frame point P2 in PostScript pt (1/72 inch).

hpgs_point hpgs_reader_st::delta_P

The difference of P2-P1 as set by the IP command.

int hpgs_reader_st::rotation

The current rotation angle (90/180/270/360).

int hpgs_reader_st::sc_type

The current effective coordinate scaling of a SC command.

int hpgs_reader_st::rop3

ROP3 operation in effect.

hpgs_bool hpgs_reader_st::src_transparency

ROP3 source transparency.

hpgs_bool hpgs_reader_st::pattern_transparency

ROP3 pattern transparency.

hpgs_matrix hpgs_reader_st::world_matrix

transformation matrix for the transformation of HPGL to PostScript (world) coordinates usually given in points (1/72 inch).

double hpgs_reader_st::world_scale

sqrt(|det(world_matrix)|)

hpgs_matrix hpgs_reader_st::page_matrix

transformation matrix for the transformation of PostScript (world) coordinates usually given in points (1/72 inch) to user defined page-coorindates.

Referenced by hpgs_new_reader(), and hpgs_reader_do_PCL().

double hpgs_reader_st::page_scale

sqrt(|det(page_matrix)|)

Referenced by hpgs_new_reader().

hpgs_matrix hpgs_reader_st::total_matrix

The concatenation of page_matrix and world_matrix.

double hpgs_reader_st::total_scale

sqrt(|det(page_matrix)|)

int hpgs_reader_st::page_mode

0...untransformed, 1...fixed page, 2...dynamic page

Referenced by hpgs_new_reader(), hpgs_reader_set_dynamic_page(), and hpgs_reader_set_fixed_page().

double hpgs_reader_st::page_width

The page width or the maximal page width in points.

Referenced by hpgs_new_reader(), hpgs_reader_set_dynamic_page(), and hpgs_reader_set_fixed_page().

double hpgs_reader_st::page_height

The page height or the maximal page height in points.

Referenced by hpgs_new_reader(), hpgs_reader_set_dynamic_page(), and hpgs_reader_set_fixed_page().

double hpgs_reader_st::page_angle

The rotation angle of the HPGL content on the page.

Referenced by hpgs_new_reader(), hpgs_reader_set_dynamic_page(), and hpgs_reader_set_fixed_page().

double hpgs_reader_st::page_border

The border of the HPGL border on the page.

Referenced by hpgs_new_reader(), hpgs_reader_set_dynamic_page(), and hpgs_reader_set_fixed_page().

hpgs_bbox hpgs_reader_st::page_bbox

The currently active page bounding box.

Referenced by hpgs_new_reader(), hpgs_read(), hpgs_reader_set_dynamic_page(), and hpgs_reader_set_fixed_page().

hpgs_bbox hpgs_reader_st::content_bbox

The bounding box of the HPGL content of the current page.

Referenced by hpgs_new_reader().

void* hpgs_reader_st::page_asset_ctxt

A callback for rendering additional page assets before showpage.

Referenced by hpgs_new_reader(), and hpgs_reader_set_page_asset_func().

hpgs_reader_asset_func_t hpgs_reader_st::page_asset_func

A callback for rendering additional page assets before showpage.

Referenced by hpgs_new_reader(), and hpgs_reader_set_page_asset_func().

void* hpgs_reader_st::frame_asset_ctxt

A callback for rendering additional frame assets before frame advance/showpage.

Referenced by hpgs_new_reader(), and hpgs_reader_set_frame_asset_func().

hpgs_reader_asset_func_t hpgs_reader_st::frame_asset_func

A callback for rendering additional frame asset before frame advance/showpage.

Referenced by hpgs_new_reader(), and hpgs_reader_set_frame_asset_func().

int hpgs_reader_st::linetype_nsegs[17]

linetype settings. (-8,...8) stored from 0...16

int hpgs_reader_st::npens

pen settings

hpgs_color hpgs_reader_st::min_color

The minimal RGB values.

hpgs_color hpgs_reader_st::max_color

The maximal RGB values.

char hpgs_reader_st::label_term

label terminator settings

int hpgs_reader_st::polygon_mode

Are we in polygon mode?

hpgs_reader_poly_point* hpgs_reader_st::poly_buffer

the polygon buffer used in polygon mode.

Referenced by hpgs_destroy_reader(), and hpgs_new_reader().

int hpgs_reader_st::polygon_open

Is a polygon currently open?

int hpgs_reader_st::pen_width_relative

Are pen widths specified relative?

int hpgs_reader_st::pen_down

Is the pen down?

int hpgs_reader_st::current_pen

Number of the current pen.

Referenced by hpgs_reader_get_current_pen().

int hpgs_reader_st::current_linetype

Number of the current linetype.

int hpgs_reader_st::absolute_plotting

Are PU and PD coordinates absoulte, because a PA statement is in effect?

int hpgs_reader_st::have_current_point

Do we have a current pen position, aka current_point is a valid position.

hpgs_point hpgs_reader_st::current_point

The current pen position in PostScript pt (1/72 inch), if `have_current_point` is true.

Referenced by hpgs_reader_do_PCL().

hpgs_point hpgs_reader_st::first_path_point

The first point in a path, if `polygon_open` is true.

hpgs_point hpgs_reader_st::min_path_point

The minimal x/y coordinates of all points in an open path.

hpgs_point hpgs_reader_st::max_path_point

The maximal x/y coordinates of all points in an open path.

hpgs_point hpgs_reader_st::anchor_point

The anchor point for fill patterns.

int hpgs_reader_st::current_ft

The fill type currently in effect.

double hpgs_reader_st::ft3_angle

The current pattern angle of fill type 3.

double hpgs_reader_st::ft3_spacing

The current pattern spacing of fill type 3.

double hpgs_reader_st::ft4_angle

The current pattern angle of fill type 4.

double hpgs_reader_st::ft4_spacing

The current pattern spacing of fill type 4.

double hpgs_reader_st::ft10_level

The current color level for fill type 10.

int hpgs_reader_st::default_encoding

the text state for the standard font.

int hpgs_reader_st::alternate_encoding

the text state for the alternate font.

int hpgs_reader_st::alternate_font

do we use the alternate font?

hpgs_point hpgs_reader_st::cr_point

text attributes set through special commands.

double hpgs_reader_st::pcl_scale

The factor from PCL units to PostScript pt (1/72 inch).

Referenced by hpgs_reader_do_PJL().

double hpgs_reader_st::pcl_hmi

PCL horizontal motion index in pt.

double hpgs_reader_st::pcl_vmi

PCL vertical motion index in pt.

hpgs_point hpgs_reader_st::pcl_point

PCL point position in pt.

Referenced by hpgs_reader_do_PCL().

hpgs_reader_pcl_palette** hpgs_reader_st::pcl_palettes

The PCL palette stack of palattes for 256 colors.

Referenced by hpgs_destroy_reader(), and hpgs_new_reader().

size_t hpgs_reader_st::pcl_n_palettes

The allocated size of the palette stack.

Referenced by hpgs_new_reader().

int hpgs_reader_st::pcl_i_palette

The number of of the current PCL palette on the stack.

Referenced by hpgs_destroy_reader(), and hpgs_new_reader().

int hpgs_reader_st::pcl_pattern

The current PCL pattern. Default value 0.

hpgs_palette_color hpgs_reader_st::pcl_foreground_color

The currently set PCL forground color. Set to black, if no foreground color is set.

int hpgs_reader_st::pcl_raster_mode

The PCL ratser mode. -1 no raster graphics, 0 horizontal graphics, 3 vertical graphics

int hpgs_reader_st::pcl_raster_presentation

The PCL raster presentation mode.

int hpgs_reader_st::pcl_raster_src_width

The PCL raster image source width.

int hpgs_reader_st::pcl_raster_src_height

The PCL raster image source height.

int hpgs_reader_st::pcl_raster_dest_width

The PCL raster image destination width.

int hpgs_reader_st::pcl_raster_dest_height

The PCL raster image destination height.

int hpgs_reader_st::pcl_raster_res

The PCL raster image resolution.

Referenced by hpgs_reader_do_PJL().

int hpgs_reader_st::pcl_raster_compression

The PCL raster compression in effect.

int hpgs_reader_st::pcl_raster_y_offset

The PCL raster y offset in effect.

int hpgs_reader_st::pcl_raster_plane

The current PCL raster plane for transfer data by plane.

int hpgs_reader_st::pcl_raster_line

The number of the raster line currently transferred.

unsigned char* hpgs_reader_st::pcl_raster_data[8]

The buffer for the data of the current raster. One pointer per plane.

Referenced by hpgs_destroy_reader(), and hpgs_new_reader().

int hpgs_reader_st::pcl_raster_data_size

The size of the raster data buffer.

int hpgs_reader_st::pcl_raster_planes

The number of planes of the raster data currently being transferred.

hpgs_image* hpgs_reader_st::pcl_image

The image currently filled by pcl.

Referenced by hpgs_destroy_reader(), hpgs_new_reader(), and hpgs_reader_do_PCL().

int hpgs_reader_st::png_dump_count

The number of PCL images dumped so far.

Referenced by hpgs_new_reader(), and hpgs_reader_set_png_dump().

char* hpgs_reader_st::png_dump_filename

The base filename for dumped PCL images.

Referenced by hpgs_destroy_reader(), hpgs_new_reader(), and hpgs_reader_set_png_dump().

int hpgs_reader_st::clipsave_depth

how many clipsaves have been issued?

Referenced by hpgs_read().

int hpgs_reader_st::last_byte

The last byte extracted from the stream?

Referenced by hpgs_read(), hpgs_reader_do_PCL(), hpgs_reader_do_PJL(), hpgs_reader_read_double(), hpgs_reader_read_int(), hpgs_reader_read_new_string(), and hpgs_reader_read_pcl_int().

int hpgs_reader_st::bytes_ignored

A byte counter for various purposes.

Referenced by hpgs_read(), hpgs_reader_do_PCL(), and hpgs_reader_do_PJL().

int hpgs_reader_st::eoc

Did we reach the end of a HPGL command?

Referenced by hpgs_read(), hpgs_reader_do_PCL(), hpgs_reader_do_PJL(), hpgs_reader_read_double(), hpgs_reader_read_int(), and hpgs_reader_read_new_string().

hpgs_bool hpgs_reader_st::interrupted

Did someone call `hpgs_reader_interrupt` ?

Referenced by hpgs_new_reader(), hpgs_read(), hpgs_reader_do_PCL(), and hpgs_reader_interrupt().

The documentation for this struct was generated from the following file:

- hpgsreader.h