Figure property management module for fortplot_figure_core
This module handles property access, data ranges, and backend interface for figure objects. Extracted from fortplot_figure_core.f90 for better organization following Single Responsibility Principle.
Responsibilities: - Property getters/setters (width, height, rendered, plot counts) - Data range management (x_min, x_max, y_min, y_max) - Backend interface methods (color, line, association) - Figure state property access
Get figure width property
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(figure_state_t), | intent(in) | :: | state | 
Get figure height property
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(figure_state_t), | intent(in) | :: | state | 
Get figure rendered property
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(figure_state_t), | intent(in) | :: | state | 
Get figure plot count property
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(figure_state_t), | intent(in) | :: | state | 
Get figure plots property
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(plot_data_t), | intent(in), | target | :: | plots(:) | 
Get backend association property
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(figure_state_t), | intent(in) | :: | state | 
Get x minimum property
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(figure_state_t), | intent(in) | :: | state | 
Get x maximum property
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(figure_state_t), | intent(in) | :: | state | 
Get y minimum property
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(figure_state_t), | intent(in) | :: | state | 
Get y maximum property
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(figure_state_t), | intent(in) | :: | state | 
Set figure rendered property
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(figure_state_t), | intent(inout) | :: | state | |||
| logical, | intent(in) | :: | rendered | 
Set backend color property
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(figure_state_t), | intent(inout) | :: | state | |||
| real(kind=wp), | intent(in) | :: | r | |||
| real(kind=wp), | intent(in) | :: | g | |||
| real(kind=wp), | intent(in) | :: | b | 
Draw line using backend property
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(figure_state_t), | intent(inout) | :: | state | |||
| real(kind=wp), | intent(in) | :: | x1 | |||
| real(kind=wp), | intent(in) | :: | y1 | |||
| real(kind=wp), | intent(in) | :: | x2 | |||
| real(kind=wp), | intent(in) | :: | y2 | 
Draw arrow using backend property
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(figure_state_t), | intent(inout) | :: | state | |||
| real(kind=wp), | intent(in) | :: | x | |||
| real(kind=wp), | intent(in) | :: | y | |||
| real(kind=wp), | intent(in) | :: | dx | |||
| real(kind=wp), | intent(in) | :: | dy | |||
| real(kind=wp), | intent(in) | :: | size | |||
| character(len=*), | intent(in) | :: | style | 
Update data ranges after adding pcolormesh plot - delegate to ranges module
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(plot_data_t), | intent(in) | :: | plots(:) | |||
| integer, | intent(in) | :: | plot_count | |||
| logical, | intent(in) | :: | xlim_set | |||
| logical, | intent(in) | :: | ylim_set | |||
| real(kind=wp), | intent(inout) | :: | x_min | |||
| real(kind=wp), | intent(inout) | :: | x_max | |||
| real(kind=wp), | intent(inout) | :: | y_min | |||
| real(kind=wp), | intent(inout) | :: | y_max | 
Update data ranges after adding boxplot - delegate to ranges module
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | data(:) | |||
| real(kind=wp), | intent(in), | optional | :: | position | ||
| real(kind=wp), | intent(inout) | :: | x_min | |||
| real(kind=wp), | intent(inout) | :: | x_max | |||
| real(kind=wp), | intent(inout) | :: | y_min | |||
| real(kind=wp), | intent(inout) | :: | y_max | |||
| logical, | intent(in) | :: | xlim_set | |||
| logical, | intent(in) | :: | ylim_set | 
Update data ranges based on current plot
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(plot_data_t), | intent(in) | :: | plots(:) | |||
| integer, | intent(in) | :: | plot_count | |||
| logical, | intent(in) | :: | xlim_set | |||
| logical, | intent(in) | :: | ylim_set | |||
| real(kind=wp), | intent(inout) | :: | x_min | |||
| real(kind=wp), | intent(inout) | :: | x_max | |||
| real(kind=wp), | intent(inout) | :: | y_min | |||
| real(kind=wp), | intent(inout) | :: | y_max | |||
| real(kind=wp), | intent(inout) | :: | x_min_transformed | |||
| real(kind=wp), | intent(inout) | :: | x_max_transformed | |||
| real(kind=wp), | intent(inout) | :: | y_min_transformed | |||
| real(kind=wp), | intent(inout) | :: | y_max_transformed | |||
| character(len=*), | intent(in) | :: | xscale | |||
| character(len=*), | intent(in) | :: | yscale | |||
| real(kind=wp), | intent(in) | :: | symlog_threshold |