Shared vector graphics functionality for backends like PDF, SVG, etc. Extracted from PDF backend to provide reusable vector drawing primitives
Encapsulates vector graphics state to provide clean API
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=wp), | public | :: | line_width | = | 1.0_wp | ||
real(kind=wp), | public | :: | stroke_r | = | 0.0_wp | ||
real(kind=wp), | public | :: | stroke_g | = | 0.0_wp | ||
real(kind=wp), | public | :: | stroke_b | = | 1.0_wp | ||
real(kind=wp), | public | :: | fill_r | = | 0.0_wp | ||
real(kind=wp), | public | :: | fill_g | = | 0.0_wp | ||
real(kind=wp), | public | :: | fill_b | = | 0.0_wp |
Abstract interface for vector stream writers (PDF, SVG, etc.)
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
character(len=:), | public, | allocatable | :: | content_stream | |||
type(vector_graphics_state), | public | :: | current_state |
procedure(write_command_interface), public, deferred :: write_command | |
procedure(write_move_interface), public, deferred :: write_move | |
procedure(write_line_interface), public, deferred :: write_line | |
procedure(write_stroke_interface), public, deferred :: write_stroke | |
procedure(write_color_interface), public, deferred :: write_color | |
procedure(write_line_width_interface), public, deferred :: write_line_width | |
procedure(save_state_interface), public, deferred :: save_state | |
procedure(restore_state_interface), public, deferred :: restore_state | |
procedure, public :: initialize_stream => initialize_vector_stream | |
procedure, public :: add_to_stream => add_to_vector_stream | |
procedure, public :: draw_vector_line => draw_generic_vector_line | |
procedure, public :: set_vector_color => set_generic_vector_color | |
procedure, public :: set_vector_line_width => set_generic_vector_line_width |