mirror of
https://codeberg.org/icewind/vbspview.git
synced 2026-06-03 10:14:10 +02:00
cleanup transform
This commit is contained in:
parent
8860c38ae0
commit
422df74509
2 changed files with 4 additions and 20 deletions
1
Cargo.lock
generated
1
Cargo.lock
generated
|
|
@ -2636,6 +2636,7 @@ dependencies = [
|
||||||
"binrw",
|
"binrw",
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"bv",
|
"bv",
|
||||||
|
"cgmath",
|
||||||
"lzma-rs",
|
"lzma-rs",
|
||||||
"num_enum",
|
"num_enum",
|
||||||
"static_assertions",
|
"static_assertions",
|
||||||
|
|
|
||||||
23
src/main.rs
23
src/main.rs
|
|
@ -2,7 +2,6 @@ mod camera;
|
||||||
mod loader;
|
mod loader;
|
||||||
|
|
||||||
use camera::FirstPerson;
|
use camera::FirstPerson;
|
||||||
use cgmath::Euler;
|
|
||||||
use itertools::Either;
|
use itertools::Either;
|
||||||
use loader::Loader;
|
use loader::Loader;
|
||||||
use std::env::args;
|
use std::env::args;
|
||||||
|
|
@ -312,25 +311,9 @@ fn model_to_mesh(model: Handle<vbsp::data::Model>) -> CPUMesh {
|
||||||
fn load_prop(loader: &Loader, prop: Handle<StaticPropLump>) -> Result<CPUMesh, Error> {
|
fn load_prop(loader: &Loader, prop: Handle<StaticPropLump>) -> Result<CPUMesh, Error> {
|
||||||
let mut mesh = load_prop_mesh(loader, prop.model())?;
|
let mut mesh = load_prop_mesh(loader, prop.model())?;
|
||||||
|
|
||||||
let translation = Mat4::from_translation(map_coords(prop.origin).into());
|
let transform =
|
||||||
// manually do axis one by one as source seems to do roll, patch, yaw
|
Mat4::from_translation(map_coords(prop.origin).into()) * Mat4::from(prop.rotation());
|
||||||
// while cgmath does yaw, pitch, roll (as directx does?)
|
mesh.transform(&transform);
|
||||||
mesh.transform(&Mat4::from(Euler {
|
|
||||||
x: degrees(0.0),
|
|
||||||
y: degrees(0.0),
|
|
||||||
z: degrees(prop.angles[2]),
|
|
||||||
}));
|
|
||||||
mesh.transform(&Mat4::from(Euler {
|
|
||||||
x: degrees(prop.angles[0]),
|
|
||||||
y: degrees(0.0),
|
|
||||||
z: degrees(0.0),
|
|
||||||
}));
|
|
||||||
mesh.transform(&Mat4::from(Euler {
|
|
||||||
x: degrees(0.0),
|
|
||||||
y: degrees(prop.angles[1]),
|
|
||||||
z: degrees(0.0),
|
|
||||||
}));
|
|
||||||
mesh.transform(&translation);
|
|
||||||
Ok(mesh)
|
Ok(mesh)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue