pub mod greedy; pub mod segment; pub mod terrain; use crate::render::{self, Mesh}; pub type MeshGen = ( Mesh<>::Pipeline>, Mesh<>::TranslucentPipeline>, Mesh<>::ShadowPipeline>, >::Result, ); /// FIXME: Remove this whole trait at some point. This "abstraction" is never /// abstracted over, and is organized completely differently from how we /// actually mesh things nowadays. pub trait Meshable { type Pipeline: render::Pipeline; type TranslucentPipeline: render::Pipeline; type ShadowPipeline: render::Pipeline; type Supplement; type Result; // Generate meshes - one opaque, one translucent, one shadow fn generate_mesh(self, supp: Self::Supplement) -> MeshGen; }