Skip to main content

Module ledger

Module ledger 

Source
Expand description

Event ledger for tracking photon event chains.

The Ledger maintains a record of photon event sequences, enabling forward and backward traversal through the event tree.

§Structure

Each event is identified by a Uid (unique identifier) containing:

  • seq_id: Sequence number in the chain
  • event: 32-bit encoded event type

§Usage

use aetherus_events::prelude::*;
use aetherus_events::mcrt_event;
use aetherus_events::events::Emission;

let mut ledger = LedgerTree::new();

// Insert start event (photon emission)
let start = ledger.root().insert(EventId::new(
    EventType::Emission(Emission::PointSource),
    SrcId::Light(1)
));

// Add subsequent events
let next = start.insert(EventId::new_mcrt(
    mcrt_event!(Material, Elastic, Mie, Forward),
    SrcId::Mat(1)
));

// Resolve LedgerTree before accessing
ledger.resolve();

// Get the chain
let chain = next.get_chain();

Structs§

HexInnerMap
Ledger
Event ledger for tracking photon event chains.
LedgerNode
LedgerTree

Enums§

SrcName
Named source identifier for humans.

Functions§

write_ledger_to_json