Skip to content

feat: render private/light aircraft in a distinct color and smaller - #95

Open
dreamiurg wants to merge 1 commit into
MatixYo:mainfrom
dreamiurg:feat/private-aircraft-styling
Open

dreamiurg wants to merge 1 commit into
MatixYo:mainfrom
dreamiurg:feat/private-aircraft-styling

Conversation

@dreamiurg

Copy link
Copy Markdown
Contributor

On a scope near a general-aviation field, a Cessna and a 737 look identical: same magenta triangle, same size. This distinguishes them.

An aircraft is classed as private when its ADS-B emitter category is A1 (light) or A2 (small). Many transponders omit the category, so the fallback is the callsign: an N-number (N followed by a digit) counts as private. Stored as Aircraft::is_private at parse time — no extra requests.

Private traffic then renders in yellow with a green track vector (airliners stay magenta/white), and its triangle is drawn at 60 % size (kPrivateAircraftScale), so the size difference reads at a glance even in monochrome. noseTip and drawHeadingTriangle take an optional scale factor, defaulting to 1.0 — airliner geometry is byte-for-byte unchanged. The beyond-ring rim dots carry the same color split.

The palette entries kColorAircraftPrivate/kColorTrackVectorPrivate are initialized in initPalette with the same kDisplayRgbOrder BGR swap as kColorAircraft, so they are correct on panels with either channel order.

User impact: heavy metal and light aircraft are now separable on the scope at a glance. Both the color and the size are theme constants if you want different ones.

Tested: builds for env:supermini; ran on an ESP32-C3 Super Mini + GC9A01 (combined with other local changes).

🤖 Generated with Claude Code

https://claude.ai/code/session_017qjXYQiTkbgyVV7ZzvKzA3

Classify aircraft as private from the ADS-B emitter category (A1/A2),
falling back to an N-number callsign when no category is reported, and
store it on Aircraft. Private traffic draws yellow with a green track
vector at 60% triangle size, including the beyond-ring rim dots; airliner
rendering is unchanged.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017qjXYQiTkbgyVV7ZzvKzA3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants