Expand description
Aetherus Event Type Ledger
This library provides an event encoding and tracking system for LIDAR photon modeling, based on the Aetherus event specification. It defines pipelines for Emission, MCRT (Monte Carlo Radiative Transfer), Detection, and Processing stages.
§Encoding Scheme
Events are encoded as 32-bit integers with the following structure:
- Pipeline: 4 bits (bits 24-27)
- SuperType: 2 bits (bits 22-23)
- SubType: 6 bits (bits 16-21)
- Source ID: 16 bits (bits 0-15)
§Modules
raw: Low-level bitfield encoding/decoding traits and typesmcrt: MCRT-specific event types (Interface, Reflector, Material)emission: Light source emission typesfilter: Event filtering using bitmask matchingledger: Event chain tracking with unique identifiers (UID)reader: CSV/JSON file reading utilities
§Quick Start
use aetherus_events::prelude::*;
use aetherus_events::{Encode, Decode};
// Create an event
let event = EventId::new_mcrt(
mcrt_event!(Material, Elastic, Mie, Forward),
SrcId::Mat(1)
);
// Encode to raw u32
let encoded = event.encode();
println!("Encoded: {:08X}", encoded);
// Decode back
let decoded = EventId::decode(encoded);
println!("Decoded: {:?}", decoded);See README for full specification.
Re-exports§
pub use crate::events::EventId;pub use crate::events::EventType;pub use crate::ledger::Ledger;pub use crate::src::SrcId;pub use crate::uid::Uid;
Modules§
- events
- filter
- Event filtering using bitmask matching.
- ledger
- Event ledger for tracking photon event chains.
- maps
- prelude
- raw
- Low-level bitfield encoding and decoding.
- read
- CSV and JSON file reading utilities.
- src
- uid