fortplot_vector Module

Shared vector graphics functionality for backends like PDF, SVG, etc. Extracted from PDF backend to provide reusable vector drawing primitives



Derived Types

type, public ::  vector_graphics_state

Encapsulates vector graphics state to provide clean API

Components

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

type, public, abstract ::  vector_stream_writer

Abstract interface for vector stream writers (PDF, SVG, etc.)

Components

Type Visibility Attributes Name Initial
character(len=:), public, allocatable :: content_stream
type(vector_graphics_state), public :: current_state

Type-Bound Procedures

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