1
0
Fork 0
mirror of https://codeberg.org/icewind/vbsp.git synced 2026-06-03 18:54:05 +02:00

rust 2024

This commit is contained in:
Robin Appelman 2025-03-02 20:17:24 +01:00
commit a8a090ee1a
2 changed files with 13 additions and 7 deletions

View file

@ -6,7 +6,7 @@ homepage = "https://github.com/icewind1991/vbsp"
repository = "https://github.com/icewind1991/vbsp" repository = "https://github.com/icewind1991/vbsp"
description = "Rust parser for valve bsp files." description = "Rust parser for valve bsp files."
license = "MIT" license = "MIT"
edition = "2021" edition = "2024"
readme = "README.md" readme = "README.md"
exclude = ["*.bsp"] exclude = ["*.bsp"]
rust-version = "1.85.0" rust-version = "1.85.0"

View file

@ -3,7 +3,9 @@ use crate::data::*;
use arrayvec::ArrayVec; use arrayvec::ArrayVec;
impl<'a> Handle<'a, DisplacementInfo> { impl<'a> Handle<'a, DisplacementInfo> {
pub fn edge_neighbours(&self) -> impl Iterator<Item = Handle<'a, DisplacementSubNeighbour>> { pub fn edge_neighbours(
&self,
) -> impl Iterator<Item = Handle<'a, DisplacementSubNeighbour>> + use<'a> {
self.data self.data
.edge_neighbours .edge_neighbours
.iter() .iter()
@ -11,7 +13,9 @@ impl<'a> Handle<'a, DisplacementInfo> {
.map(|sub| Handle::new(self.bsp, sub)) .map(|sub| Handle::new(self.bsp, sub))
} }
pub fn corner_neighbours(&self) -> impl Iterator<Item = Handle<'a, DisplacementInfo>> { pub fn corner_neighbours(
&self,
) -> impl Iterator<Item = Handle<'a, DisplacementInfo>> + use<'a> {
self.data self.data
.corner_neighbours .corner_neighbours
.iter() .iter()
@ -19,7 +23,9 @@ impl<'a> Handle<'a, DisplacementInfo> {
.filter_map(|id| self.bsp.displacement(id as usize)) .filter_map(|id| self.bsp.displacement(id as usize))
} }
pub fn displacement_vertices(&self) -> impl Iterator<Item = Handle<'a, DisplacementVertex>> { pub fn displacement_vertices(
&self,
) -> impl Iterator<Item = Handle<'a, DisplacementVertex>> + use<'a> {
(self.displacement_vertex_start..(self.displacement_vertex_start + self.vertex_count())) (self.displacement_vertex_start..(self.displacement_vertex_start + self.vertex_count()))
.flat_map(|i| self.bsp.displacement_vertex(i as usize)) .flat_map(|i| self.bsp.displacement_vertex(i as usize))
} }
@ -53,7 +59,7 @@ impl<'a> Handle<'a, DisplacementInfo> {
corner_positions corner_positions
} }
fn subdivided_face(&self) -> impl Iterator<Item = Vector> + 'a { fn subdivided_face(&self) -> impl Iterator<Item = Vector> + use<'a> {
let steps = 2usize.pow(self.power as u32) + 1; let steps = 2usize.pow(self.power as u32) + 1;
let corner_positions = self.corner_positions(); let corner_positions = self.corner_positions();
@ -75,13 +81,13 @@ impl<'a> Handle<'a, DisplacementInfo> {
}) })
} }
pub fn displaced_vertices(&self) -> impl Iterator<Item = Vector> + 'a { pub fn displaced_vertices(&self) -> impl Iterator<Item = Vector> + use<'a> {
self.displacement_vertices() self.displacement_vertices()
.zip(self.subdivided_face()) .zip(self.subdivided_face())
.map(move |(displacement, base_pos)| base_pos + displacement.displacement()) .map(move |(displacement, base_pos)| base_pos + displacement.displacement())
} }
pub fn triangulated_displaced_vertices(&self) -> impl Iterator<Item = Vector> + 'a { pub fn triangulated_displaced_vertices(&self) -> impl Iterator<Item = Vector> + use<'a> {
let vertices: Vec<_> = self.displaced_vertices().collect(); let vertices: Vec<_> = self.displaced_vertices().collect();
let steps = 2usize.pow(self.power as u32); let steps = 2usize.pow(self.power as u32);