curve_classic/
curve_classic.rs

1// Copyright 2025 Jordan Johnson
2// SPDX-License-Identifier: Apache-2.0 OR MIT
3
4use lib_curveball::curve::Curve;
5use lib_curveball::curve::curve_classic::CurveClassic;
6use lib_curveball::map::{
7    entity::SimpleWorldspawn,
8    geometry::Brush,
9    qmap::{QEntity, QMap},
10};
11
12fn brushes_to_string(brushes: Vec<Brush>) -> String {
13    let simple_worldspawn = SimpleWorldspawn::new(brushes);
14    let entity = QEntity::from(simple_worldspawn);
15    let map = QMap::new(vec![entity]).with_tb_neverball_metadata();
16    String::from(format!("{map}"))
17}
18
19fn main() {
20    let curve_classic = CurveClassic {
21        n: 12,
22        ri0: 32.0,
23        ro0: 64.0,
24        ri1: 32.0,
25        ro1: 64.0,
26        theta0: 0.0,
27        theta1: 90.0,
28        t: 8.0,
29    };
30
31    let brushes = curve_classic.bake().unwrap();
32    let string = brushes_to_string(brushes);
33
34    println!("{}", string);
35}