Compare commits
2 Commits
bsp-brush2
...
sussy-tips
| Author | SHA1 | Date | |
|---|---|---|---|
| 96e311ef99 | |||
| 71d717a9d8 |
@@ -204,6 +204,7 @@ pub enum BrushToMeshError{
|
||||
count:usize,
|
||||
},
|
||||
InvalidPlanes(PlanesToFacesError),
|
||||
SkipBecauseTexture,
|
||||
}
|
||||
impl std::fmt::Display for BrushToMeshError{
|
||||
fn fmt(&self,f:&mut std::fmt::Formatter<'_>)->std::fmt::Result{
|
||||
@@ -245,7 +246,16 @@ pub fn brush_to_mesh(bsp:&vbsp::Bsp,brush:&vbsp::Brush)->Result<model::Mesh,Brus
|
||||
let brush_start_idx=brush.brush_side as usize;
|
||||
let sides_range=brush_start_idx..brush_start_idx+brush.num_brush_sides as usize;
|
||||
let sides=bsp.brush_sides.get(sides_range).ok_or(BrushToMeshError::SliceBrushSides)?;
|
||||
let face_list=sides.iter().map(|side|{
|
||||
for side in sides{
|
||||
if let Some(texture_info)=bsp.textures_info.get(side.texture_info as usize){
|
||||
let texture_info=vbsp::Handle::new(bsp,texture_info);
|
||||
let s=texture_info.name();
|
||||
if s.starts_with("tools/")||s.starts_with("TOOLS/"){
|
||||
return Err(BrushToMeshError::SkipBecauseTexture);
|
||||
}
|
||||
}
|
||||
}
|
||||
let face_list=sides.iter().filter(|side|side.bevel==0).map(|side|{
|
||||
let plane=bsp.plane(side.plane as usize)?;
|
||||
Some(Face{
|
||||
normal:valve_transform_normal(plane.normal.into()),
|
||||
|
||||
Reference in New Issue
Block a user