Raster marker drawing functions
This module provides specialized drawing functions for various marker types including circles, squares, diamonds, and X markers. All functions use antialiasing and support separate edge/face colors for complex markers.
All marker functions use the same coordinate system and rounding approach as the primitive drawing functions to ensure perfect alignment with lines.
Draw filled circle with antialiasing
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=1), | intent(inout) | :: | image_data(:) | |||
| integer, | intent(in) | :: | img_w | |||
| integer, | intent(in) | :: | img_h | |||
| real(kind=wp), | intent(in) | :: | cx | |||
| real(kind=wp), | intent(in) | :: | cy | |||
| real(kind=wp), | intent(in) | :: | radius |
Circle radius in pixels |
||
| real(kind=wp), | intent(in) | :: | r |
Circle radius in pixels |
||
| real(kind=wp), | intent(in) | :: | g |
Circle radius in pixels |
||
| real(kind=wp), | intent(in) | :: | b |
Circle radius in pixels |
||
| real(kind=wp), | intent(in) | :: | opacity |
Draw circle outline with antialiasing
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=1), | intent(inout) | :: | image_data(:) | |||
| integer, | intent(in) | :: | img_w | |||
| integer, | intent(in) | :: | img_h | |||
| real(kind=wp), | intent(in) | :: | cx | |||
| real(kind=wp), | intent(in) | :: | cy | |||
| real(kind=wp), | intent(in) | :: | radius |
Circle radius in pixels |
||
| real(kind=wp), | intent(in) | :: | r |
Circle radius in pixels |
||
| real(kind=wp), | intent(in) | :: | g |
Circle radius in pixels |
||
| real(kind=wp), | intent(in) | :: | b |
Circle radius in pixels |
||
| real(kind=wp), | intent(in) | :: | edge_width | |||
| real(kind=wp), | intent(in) | :: | opacity |
Draw circle with separate edge and face colors
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=1), | intent(inout) | :: | image_data(:) | |||
| integer, | intent(in) | :: | img_w | |||
| integer, | intent(in) | :: | img_h | |||
| real(kind=wp), | intent(in) | :: | cx | |||
| real(kind=wp), | intent(in) | :: | cy | |||
| real(kind=wp), | intent(in) | :: | radius |
Circle radius in pixels |
||
| real(kind=wp), | intent(in) | :: | edge_r | |||
| real(kind=wp), | intent(in) | :: | edge_g | |||
| real(kind=wp), | intent(in) | :: | edge_b | |||
| real(kind=wp), | intent(in) | :: | edge_alpha | |||
| real(kind=wp), | intent(in) | :: | face_r | |||
| real(kind=wp), | intent(in) | :: | face_g | |||
| real(kind=wp), | intent(in) | :: | face_b | |||
| real(kind=wp), | intent(in) | :: | face_alpha | |||
| real(kind=wp), | intent(in) | :: | edge_width |
Draw square marker with separate edge and face colors
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=1), | intent(inout) | :: | image_data(:) | |||
| integer, | intent(in) | :: | img_w | |||
| integer, | intent(in) | :: | img_h | |||
| real(kind=wp), | intent(in) | :: | cx | |||
| real(kind=wp), | intent(in) | :: | cy | |||
| real(kind=wp), | intent(in) | :: | size | |||
| real(kind=wp), | intent(in) | :: | edge_r | |||
| real(kind=wp), | intent(in) | :: | edge_g | |||
| real(kind=wp), | intent(in) | :: | edge_b | |||
| real(kind=wp), | intent(in) | :: | edge_alpha | |||
| real(kind=wp), | intent(in) | :: | face_r | |||
| real(kind=wp), | intent(in) | :: | face_g | |||
| real(kind=wp), | intent(in) | :: | face_b | |||
| real(kind=wp), | intent(in) | :: | face_alpha | |||
| real(kind=wp), | intent(in) | :: | edge_width |
Draw diamond marker with separate edge and face colors
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=1), | intent(inout) | :: | image_data(:) | |||
| integer, | intent(in) | :: | img_w | |||
| integer, | intent(in) | :: | img_h | |||
| real(kind=wp), | intent(in) | :: | cx | |||
| real(kind=wp), | intent(in) | :: | cy | |||
| real(kind=wp), | intent(in) | :: | size | |||
| real(kind=wp), | intent(in) | :: | edge_r | |||
| real(kind=wp), | intent(in) | :: | edge_g | |||
| real(kind=wp), | intent(in) | :: | edge_b | |||
| real(kind=wp), | intent(in) | :: | edge_alpha | |||
| real(kind=wp), | intent(in) | :: | face_r | |||
| real(kind=wp), | intent(in) | :: | face_g | |||
| real(kind=wp), | intent(in) | :: | face_b | |||
| real(kind=wp), | intent(in) | :: | face_alpha | |||
| real(kind=wp), | intent(in) | :: | edge_width |
Draw X-shaped marker
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=1), | intent(inout) | :: | image_data(:) | |||
| integer, | intent(in) | :: | img_w | |||
| integer, | intent(in) | :: | img_h | |||
| real(kind=wp), | intent(in) | :: | cx | |||
| real(kind=wp), | intent(in) | :: | cy | |||
| real(kind=wp), | intent(in) | :: | size | |||
| real(kind=wp), | intent(in) | :: | edge_r | |||
| real(kind=wp), | intent(in) | :: | edge_g | |||
| real(kind=wp), | intent(in) | :: | edge_b | |||
| real(kind=wp), | intent(in) | :: | edge_alpha | |||
| real(kind=wp), | intent(in) | :: | edge_width |