pub struct Sector {
pub id: u32,
pub creator_id: Uuid,
pub name: String,
pub linedefs: Vec<u32>,
pub properties: ValueContainer,
pub shader: Option<Uuid>,
pub layer: Option<u8>,
}Fields§
§id: u32§creator_id: Uuid§name: String§linedefs: Vec<u32>§properties: ValueContainer§shader: Option<Uuid>§layer: Option<u8>The rect tool layer for this sector (if created by the rect tool).
Implementations§
Source§impl Sector
impl Sector
pub fn new(id: u32, linedefs: Vec<u32>) -> Sector
Sourcepub fn vertices_world(&self, map: &Map) -> Option<Vec<Vec3<f32>>>
pub fn vertices_world(&self, map: &Map) -> Option<Vec<Vec3<f32>>>
Returns the sector’s vertices in world space as Vec<Vec3
Sourcepub fn y_span(&self, map: &Map) -> Option<(f32, f32)>
pub fn y_span(&self, map: &Map) -> Option<(f32, f32)>
Returns the vertical span (min_y, max_y) of this sector in world space.
Sourcepub fn intersects_vertical_slice(
&self,
map: &Map,
slice_y: f32,
thickness: f32,
) -> bool
pub fn intersects_vertical_slice( &self, map: &Map, slice_y: f32, thickness: f32, ) -> bool
Checks whether this sector intersects a vertical slice centered at slice_y with thickness thickness.
pub fn bounding_box(&self, map: &Map) -> BBox
Sourcepub fn center_3d(&self, map: &Map) -> Option<Vec3<f32>>
pub fn center_3d(&self, map: &Map) -> Option<Vec3<f32>>
Calculate the center of the sector using 3D coords.
Sourcepub fn generate_geometry(
&self,
map: &Map,
) -> Option<(Vec<[f32; 2]>, Vec<(usize, usize, usize)>)>
pub fn generate_geometry( &self, map: &Map, ) -> Option<(Vec<[f32; 2]>, Vec<(usize, usize, usize)>)>
Generate geometry (vertices and indices) for the polygon using earcutr
Sourcepub fn is_inside(&self, map: &Map, point: Vec2<f32>) -> bool
pub fn is_inside(&self, map: &Map, point: Vec2<f32>) -> bool
Checks if a point is inside the sector polygon using the ray-casting algorithm.
Sourcepub fn signed_distance(&self, map: &Map, point: Vec2<f32>) -> Option<f32>
pub fn signed_distance(&self, map: &Map, point: Vec2<f32>) -> Option<f32>
Generate the signed distance to the
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Sector
impl<'de> Deserialize<'de> for Sector
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Sector, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Sector, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Serialize for Sector
impl Serialize for Sector
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl Eq for Sector
Auto Trait Implementations§
impl Freeze for Sector
impl RefUnwindSafe for Sector
impl Send for Sector
impl Sync for Sector
impl Unpin for Sector
impl UnsafeUnpin for Sector
impl UnwindSafe for Sector
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.