pub struct AnalyticInstanceUpload { /* private fields */ }Expand description
Immutable bounded analytic program evaluated into ordinary twelve-word primitives.
The seed identifies the keyed initial-state stream; initial facts are explicitly supplied
rather than depending on a renderer’s random implementation. Time is age in seconds.
Colors, sizes, images and blend policy remain in the ordinary super::InstanceUpload.
Implementations§
Source§impl AnalyticInstanceUpload
impl AnalyticInstanceUpload
Sourcepub fn new(
kind: AnalyticTrajectoryKind,
seed: u64,
age: f32,
lifetime: f32,
parameters: [f32; 8],
primitive: InstanceKind,
align_to_velocity: bool,
states: impl ExactSizeIterator<Item = AnalyticInstanceState>,
) -> Result<Self, ValidationError>
pub fn new( kind: AnalyticTrajectoryKind, seed: u64, age: f32, lifetime: f32, parameters: [f32; 8], primitive: InstanceKind, align_to_velocity: bool, states: impl ExactSizeIterator<Item = AnalyticInstanceState>, ) -> Result<Self, ValidationError>
Validates a model, explicit seed, age, lifetime, parameters and initial states.
Parameters use the builtin models’ eight-word schema: ballistic origin/acceleration/ damping/reserved/speed range; converge reserves them; orbit center/radius/angular velocity; noise drift origin/velocity/amplitude/frequency. Unsupported precision ranges fail explicitly, allowing a caller to retain evaluated CPU primitives.
Returns crate::ValidationErrorKind::Unsupported outside the portable f32 parameter
and phase range, crate::ValidationErrorKind::InvalidValue for malformed inputs,
and crate::ValidationErrorKind::StructuralLimit when upload allocation fails.