transform normals
This commit is contained in:
@ -2,7 +2,7 @@ use strafesnet_common::integer::Planar64;
|
|||||||
use strafesnet_common::{model,integer};
|
use strafesnet_common::{model,integer};
|
||||||
use strafesnet_common::integer::{vec3::Vector3,Fixed,Ratio};
|
use strafesnet_common::integer::{vec3::Vector3,Fixed,Ratio};
|
||||||
|
|
||||||
use crate::valve_transform_dist;
|
use crate::{valve_transform_normal,valve_transform_dist};
|
||||||
|
|
||||||
#[derive(Hash,Eq,PartialEq)]
|
#[derive(Hash,Eq,PartialEq)]
|
||||||
struct Face{
|
struct Face{
|
||||||
@ -202,7 +202,7 @@ pub fn brush_to_mesh(bsp:&vbsp::Bsp,brush:&vbsp::Brush)->Result<model::Mesh,Brus
|
|||||||
let face_list=sides.iter().map(|side|{
|
let face_list=sides.iter().map(|side|{
|
||||||
let plane=bsp.plane(side.plane as usize)?;
|
let plane=bsp.plane(side.plane as usize)?;
|
||||||
Some(Face{
|
Some(Face{
|
||||||
normal:strafesnet_common::integer::vec3::try_from_f32_array(plane.normal.into()).unwrap(),
|
normal:valve_transform_normal(plane.normal.into()),
|
||||||
dot:valve_transform_dist(plane.dist.into()),
|
dot:valve_transform_dist(plane.dist.into()),
|
||||||
})
|
})
|
||||||
}).collect::<Option<std::collections::HashSet<_>>>().ok_or(BrushToMeshError::MissingPlane)?;
|
}).collect::<Option<std::collections::HashSet<_>>>().ok_or(BrushToMeshError::MissingPlane)?;
|
||||||
|
@ -9,6 +9,9 @@ const VALVE_SCALE:f32=1.0/16.0;
|
|||||||
pub(crate) fn valve_transform_dist(d:f32)->strafesnet_common::integer::Planar64{
|
pub(crate) fn valve_transform_dist(d:f32)->strafesnet_common::integer::Planar64{
|
||||||
(d*VALVE_SCALE).try_into().unwrap()
|
(d*VALVE_SCALE).try_into().unwrap()
|
||||||
}
|
}
|
||||||
|
pub(crate) fn valve_transform_normal([x,y,z]:[f32;3])->strafesnet_common::integer::Planar64Vec3{
|
||||||
|
strafesnet_common::integer::vec3::try_from_f32_array([x,z,-y]).unwrap()
|
||||||
|
}
|
||||||
pub(crate) fn valve_transform([x,y,z]:[f32;3])->strafesnet_common::integer::Planar64Vec3{
|
pub(crate) fn valve_transform([x,y,z]:[f32;3])->strafesnet_common::integer::Planar64Vec3{
|
||||||
strafesnet_common::integer::vec3::try_from_f32_array([x*VALVE_SCALE,z*VALVE_SCALE,-y*VALVE_SCALE]).unwrap()
|
strafesnet_common::integer::vec3::try_from_f32_array([x*VALVE_SCALE,z*VALVE_SCALE,-y*VALVE_SCALE]).unwrap()
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user