# Show the ground a view cone can see, not the air above it · dara/icarus

[View on GitCafe](https://git.cafe/dara/icarus/commit/d1a4246662b08a055c4835f384efb72b7b8d77f7)

Repository: [dara/icarus](https://git.cafe/dara/icarus)

Visibility: public

Requested revision: d1a4246662b08a055c4835f384efb72b7b8d77f7

Requested commit: d1a4246662b08a055c4835f384efb72b7b8d77f7

Commit: d1a4246662b08a055c4835f384efb72b7b8d77f7

Tree: c2cddd58dc700689ec757a0e11a1abd8519c867b

Author: Dara Adedeji

Committer: Dara Adedeji

## Message

```
Show the ground a view cone can see, not the air above it

An eye above a wall's top was treated as seeing straight past it, so an
observer on a box lit up the whole area behind a wall that anyone standing
there is hidden by. Every sightline now descends from the eye to a head on
the floor it lands on: a wall the eye clears still hides the ground right
behind it, and that ground returns to view only where the line from the eye
to a head there passes above the wall's top.

The horizontal pass, native or Dart, still answers what stops the eye. A
Dart pass then walks its rays, collects the walls each one passes over, and
keeps only the stretches a standing player would be visible on. Adjacent
rays that see the same stretch close into one band, which becomes the cone's
visibility path. Flat ground produces no such walls, so it keeps the polygon
it had.

The edge of the surface the observer is standing on is not an obstacle: from
a ledge the ground at its foot is in plain view. A wall whose top is the
observer's own standing surface, or whose footprint touches it, is left out.

A head is measured from the floor just past the wall, taking any verified
standing surface over the ground there, because a wall's own base datum is
often a level far below the floor a player walks on behind it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

```

## Parents

- [7f5addeaa4504cc9a449218034e5e9d6f108df97](https://git.cafe/dara/icarus/commit/7f5addeaa4504cc9a449218034e5e9d6f108df97?format=markdown)

[Source at this commit](https://git.cafe/dara/icarus/tree/d1a4246662b08a055c4835f384efb72b7b8d77f7?format=markdown)
