Figure rendering pipeline module
This module handles the rendering pipeline for all plot types, including coordinate transformations and drawing operations.
Render a line plot with proper scaling and clipping
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(plot_context), | intent(inout) | :: | backend | |||
type(plot_data_t), | intent(in) | :: | plot_data | |||
integer, | intent(in) | :: | plot_idx | |||
real(kind=wp), | intent(in) | :: | x_min_t | |||
real(kind=wp), | intent(in) | :: | x_max_t | |||
real(kind=wp), | intent(in) | :: | y_min_t | |||
real(kind=wp), | intent(in) | :: | y_max_t | |||
character(len=*), | intent(in) | :: | xscale | |||
character(len=*), | intent(in) | :: | yscale | |||
real(kind=wp), | intent(in) | :: | symlog_threshold |
Render markers for a plot
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(plot_context), | intent(inout) | :: | backend | |||
type(plot_data_t), | intent(in) | :: | plot_data | |||
real(kind=wp), | intent(in) | :: | x_min_t | |||
real(kind=wp), | intent(in) | :: | x_max_t | |||
real(kind=wp), | intent(in) | :: | y_min_t | |||
real(kind=wp), | intent(in) | :: | y_max_t | |||
character(len=*), | intent(in) | :: | xscale | |||
character(len=*), | intent(in) | :: | yscale | |||
real(kind=wp), | intent(in) | :: | symlog_threshold |
Render a contour plot
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(plot_context), | intent(inout) | :: | backend | |||
type(plot_data_t), | intent(in) | :: | plot_data | |||
real(kind=wp), | intent(in) | :: | x_min_t | |||
real(kind=wp), | intent(in) | :: | x_max_t | |||
real(kind=wp), | intent(in) | :: | y_min_t | |||
real(kind=wp), | intent(in) | :: | y_max_t | |||
character(len=*), | intent(in) | :: | xscale | |||
character(len=*), | intent(in) | :: | yscale | |||
real(kind=wp), | intent(in) | :: | symlog_threshold | |||
integer, | intent(in) | :: | width | |||
integer, | intent(in) | :: | height | |||
real(kind=wp), | intent(in) | :: | margin_left | |||
real(kind=wp), | intent(in) | :: | margin_right | |||
real(kind=wp), | intent(in) | :: | margin_bottom | |||
real(kind=wp), | intent(in) | :: | margin_top |
Render a pcolormesh plot
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(plot_context), | intent(inout) | :: | backend | |||
type(plot_data_t), | intent(in) | :: | plot_data | |||
real(kind=wp), | intent(in) | :: | x_min_t | |||
real(kind=wp), | intent(in) | :: | x_max_t | |||
real(kind=wp), | intent(in) | :: | y_min_t | |||
real(kind=wp), | intent(in) | :: | y_max_t | |||
character(len=*), | intent(in) | :: | xscale | |||
character(len=*), | intent(in) | :: | yscale | |||
real(kind=wp), | intent(in) | :: | symlog_threshold | |||
integer, | intent(in) | :: | width | |||
integer, | intent(in) | :: | height | |||
real(kind=wp), | intent(in) | :: | margin_right |
Draw a line with the specified style
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(plot_context), | intent(inout) | :: | backend | |||
real(kind=wp), | intent(in) | :: | x(:) | |||
real(kind=wp), | intent(in) | :: | y(:) | |||
character(len=*), | intent(in), | optional | :: | linestyle | ||
real(kind=wp), | intent(in), | optional | :: | color(3) |
Render a solid line
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(plot_context), | intent(inout) | :: | backend | |||
real(kind=wp), | intent(in) | :: | x(:) | |||
real(kind=wp), | intent(in) | :: | y(:) |
Render a line with dash patterns
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(plot_context), | intent(inout) | :: | backend | |||
real(kind=wp), | intent(in) | :: | x(:) | |||
real(kind=wp), | intent(in) | :: | y(:) | |||
character(len=*), | intent(in) | :: | pattern |
Transform quad coordinates to screen space
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=wp), | intent(in) | :: | x_quad(4) | |||
real(kind=wp), | intent(in) | :: | y_quad(4) | |||
real(kind=wp), | intent(out) | :: | x_screen(4) | |||
real(kind=wp), | intent(out) | :: | y_screen(4) | |||
character(len=*), | intent(in) | :: | xscale | |||
character(len=*), | intent(in) | :: | yscale | |||
real(kind=wp), | intent(in) | :: | symlog_threshold |
Draw a filled quadrilateral
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(plot_context), | intent(inout) | :: | backend | |||
real(kind=wp), | intent(in) | :: | x_screen(4) | |||
real(kind=wp), | intent(in) | :: | y_screen(4) |
Draw quadrilateral edges
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(plot_context), | intent(inout) | :: | backend | |||
real(kind=wp), | intent(in) | :: | x_screen(4) | |||
real(kind=wp), | intent(in) | :: | y_screen(4) | |||
real(kind=wp), | intent(in) | :: | line_width |
Draw a visible marker for a single point This ensures single points are visible even without explicit markers
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(plot_context), | intent(inout) | :: | backend | |||
real(kind=wp), | intent(in) | :: | x | |||
real(kind=wp), | intent(in) | :: | y |