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;
}