DrawnShape

data class DrawnShape(val kind: Int = 0, val style: Int = 0, val majorCm: Int = 0, val minorCm: Int = 0, val angleDeg: Int = 360, val strokeColor: Int = 0, val strokeArgb: Int = 0, val strokeWeightX10: Int = 0, val fillColor: Int = 0, val fillArgb: Int = 0, val labelsOn: Boolean = false, val vertices: List<TakPacketV2Data.Payload.Vertex> = emptyList(), val truncated: Boolean = false, val bullseyeDistanceDm: Int = 0, val bullseyeBearingRef: Int = 0, val bullseyeFlags: Int = 0, val bullseyeUidRef: String = "") : TakPacketV2Data.Payload(source)

User-drawn tactical graphic: circle, rectangle, polygon, polyline, telestration, ranging circle, or bullseye.

Maps to the DrawnShape protobuf message at payload_variant tag 34. See atak.proto for the full field-by-field documentation.

Constructors

Link copied to clipboard
constructor(kind: Int = 0, style: Int = 0, majorCm: Int = 0, minorCm: Int = 0, angleDeg: Int = 360, strokeColor: Int = 0, strokeArgb: Int = 0, strokeWeightX10: Int = 0, fillColor: Int = 0, fillArgb: Int = 0, labelsOn: Boolean = false, vertices: List<TakPacketV2Data.Payload.Vertex> = emptyList(), truncated: Boolean = false, bullseyeDistanceDm: Int = 0, bullseyeBearingRef: Int = 0, bullseyeFlags: Int = 0, bullseyeUidRef: String = "")

Properties

Link copied to clipboard

Ellipse rotation in whole degrees; 360 = unrotated default.

Link copied to clipboard

0 unset, 1 Magnetic, 2 True, 3 Grid.

Link copied to clipboard

Range-ring spacing in decimeters (ATAK meters × 10).

Link copied to clipboard

bit0 rangeRingVisible, bit1 hasRangeRings, bit2 edgeToCenter, bit3 mils.

Link copied to clipboard

UID this bullseye references for relative bearing, if any.

Link copied to clipboard

Exact 32-bit ARGB fill bit pattern.

Link copied to clipboard

Team enum value; AtakPalette.UNSPECIFIED for custom fill.

Link copied to clipboard
val kind: Int

One of the Kind_* constants (1..7); see atak.proto.

Link copied to clipboard

Whether shape labels are shown on the map.

Link copied to clipboard

Major axis / circle radius in centimeters (ATAK meters × 100).

Link copied to clipboard

Minor axis in centimeters (ellipses); 0 for circles.

Link copied to clipboard

Exact 32-bit ARGB bit pattern (always set by the parser).

Link copied to clipboard

Team enum value, or AtakPalette.UNSPECIFIED if not in palette.

Link copied to clipboard

Stroke (outline) weight × 10 (e.g. 3.0 px → 30).

Link copied to clipboard
val style: Int

Explicit stroke/fill/both discriminator. One of: 0 = Unspecified (infer from which color fields are non-zero) 1 = StrokeOnly 2 = FillOnly 3 = StrokeAndFill

Link copied to clipboard
Link copied to clipboard

Capped at MAX_VERTICES in the parser; sender sets truncated when exceeded.