#![cfg_attr(docsrs, feature(doc_cfg))]
#![warn(missing_docs)]
#![recursion_limit = "256"]
henad_compute::include_shaders!();
pub mod ants;
pub mod boids;
pub mod game_of_life;
pub mod gpu_ants;
pub mod gpu_boids;
pub mod gpu_game_of_life;
pub mod gpu_sir;
pub mod sir;
pub mod team_assembly;
pub mod virus_network;
#[cfg(test)]
mod tests;
use henad_compute::entry::{
ModelSet, register_agent_model, register_gpu_agent_model, register_gpu_grid_model, register_grid_model,
register_network_model,
};
pub fn example_models() -> ModelSet {
let entries = [
register_grid_model::<crate::sir::SirGridModel>(),
register_agent_model::<crate::boids::BoidsModel>(),
register_grid_model::<crate::game_of_life::GameOfLifeModel>(),
register_agent_model::<crate::ants::AntsModel>(),
register_network_model::<crate::virus_network::VirusNetwork>(),
register_network_model::<crate::team_assembly::TeamAssembly>(),
register_gpu_grid_model::<crate::gpu_game_of_life::GpuGameOfLife>(),
register_gpu_grid_model::<crate::gpu_sir::GpuSir>(),
register_gpu_agent_model::<crate::gpu_boids::GpuBoids>(),
register_gpu_agent_model::<crate::gpu_ants::GpuAnts>(),
];
let mut models = ModelSet::new(henad_core::build_info!());
for entry in entries {
models.insert(entry).expect("every example model has an id of its own");
}
models
}