# `Monty.Frameworks.Models.Mixins.NoResetEvidence.HypothesesUpdaterGraphTelemetry`
[🔗](https://github.com/d-led/ex.tbp.monty/blob/v0.1.0/packages/ex_tbp_monty_core/lib/monty/frameworks/models/mixins/no_reset_evidence/hypotheses_updater_graph_telemetry.ex#L1)

One graph's hypotheses, as the updater left them: what a chart draws.

Mirrors `frameworks/models/mixins/no_reset_evidence.py::HypothesesUpdaterGraphTelemetry`,
the dataclass Monty's pyview dashboard reads. Four arrays and the updater's
own telemetry, one entry per hypothesis of one graph:

  * `evidence` — what each hypothesis is worth;
  * `locations` — where each one puts the object, in metres;
  * `rotations` — how each one is turned, as Euler angles in degrees in
    Monty's `xyz` order;
  * `pose_errors` — how far each hypothesis' rotation is from the target's,
    in radians, which is the number a recognition's accuracy is measured by;
  * `hypotheses_updater` — whatever the updater said about this graph, passed
    through rather than interpreted.

Monty keeps these as numpy arrays; here they are lists, and
`Monty.Frameworks.Models.Buffer.BufferEncoder` writes a struct of this shape
as a JSON object the way Monty's own encoder writes a dataclass.

# `t`

```elixir
@type t() ::
  %Monty.Frameworks.Models.Mixins.NoResetEvidence.HypothesesUpdaterGraphTelemetry{
    evidence: [float()],
    hypotheses_updater: map(),
    locations: [[float()]],
    pose_errors: [float()],
    rotations: [[float()]]
  }
```

# `empty`

```elixir
@spec empty(map()) :: t()
```

The telemetry of a graph that has no hypotheses.

Monty builds the same record with four empty arrays — a graph with nothing
believed still has a row in a log, and leaving it out would make "no
hypotheses" look like "not reported".

---

*Consult [api-reference.md](api-reference.md) for complete listing*
