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 | |||
| real(kind=wp), | intent(in) | :: | r | |||
| real(kind=wp), | intent(in) | :: | g | |||
| real(kind=wp), | intent(in) | :: | b | 
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 | |||
| real(kind=wp), | intent(in) | :: | r | |||
| real(kind=wp), | intent(in) | :: | g | |||
| real(kind=wp), | intent(in) | :: | b | 
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 | |||
| 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 | 
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 | 
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 | 
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 |