Skip to main content

PolytopeShape

Struct PolytopeShape 

Source
pub struct PolytopeShape { /* private fields */ }
Expand description

PLYT — a convex hull, version 3+. Domino’s dmPolytope.

The chunk stores fixed-size headers and variable-size payloads in two blocks; both halves are folded into this one struct, and the header’s counts are recomputed from the vectors on write. The header’s four pointer fields are filled in by the client at load time and are zero in every file, so they are not kept.

Implementations§

Source§

impl PolytopeShape

Source

pub fn new() -> Self

§Panics

Panics if the native allocation fails.

Source

pub fn vertices(&self) -> &[Vector3f]

Hull corners. Zero-copy view of the underlying std::vector.

Source

pub fn vertices_mut(&mut self) -> &mut [Vector3f]

Zero-copy mutable view. Resize first — the borrow forbids it after.

Source

pub fn set_vertices(&mut self, values: &[Vector3f])

Source

pub fn resize_vertices(&mut self, count: usize)

Source

pub fn face_planes(&self) -> &[Vector4f]

Outward plane of each face, xyz normal and w offset. Zero-copy view of the underlying std::vector.

Source

pub fn face_planes_mut(&mut self) -> &mut [Vector4f]

Zero-copy mutable view. Resize first — the borrow forbids it after.

Source

pub fn set_face_planes(&mut self, values: &[Vector4f])

Source

pub fn resize_face_planes(&mut self, count: usize)

Source

pub fn face_first_edges(&self) -> &[u8]

One entry per face: any half-edge bounding it, as the entry point for walking the face through PolytopeHalfEdge::nextEdge. Zero-copy view of the underlying std::vector.

Source

pub fn face_first_edges_mut(&mut self) -> &mut [u8]

Zero-copy mutable view. Resize first — the borrow forbids it after.

Source

pub fn set_face_first_edges(&mut self, values: &[u8])

Source

pub fn resize_face_first_edges(&mut self, count: usize)

Source

pub fn edges_len(&self) -> usize

Source

pub fn edges(&self, index: usize) -> Option<Ref<'_, PolytopeHalfEdge>>

Borrows element index in place. None when out of range.

Source

pub fn edges_mut( &mut self, index: usize, ) -> Option<RefMut<'_, PolytopeHalfEdge>>

Source

pub fn edges_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, PolytopeHalfEdge>>

Iterate the elements, borrowing each in turn.

Source

pub fn resize_edges(&mut self, count: usize)

Source

pub fn centroid(&self) -> Vector3f

Volume-weighted, not the vertex average.

Source

pub fn set_centroid(&mut self, value: Vector3f)

Source

pub fn volume(&self) -> f32

Hull volume.

Source

pub fn set_volume(&mut self, value: f32)

Source

pub fn surface_area(&self) -> f32

Hull surface area.

Source

pub fn set_surface_area(&mut self, value: f32)

Source

pub fn padding_04(&self) -> u32

The four-byte gaps each count leaves in front of its 64-bit pointer, and the one that trails the header. Uninitialised in the files — some carry fragments of unrelated strings — so they are kept verbatim for writing.

Source

pub fn set_padding_04(&mut self, value: u32)

Source

pub fn padding_14(&self) -> u32

Source

pub fn set_padding_14(&mut self, value: u32)

Source

pub fn padding_2c(&self) -> u32

Source

pub fn set_padding_2c(&mut self, value: u32)

Source

pub fn padding_4c(&self) -> u32

Source

pub fn set_padding_4c(&mut self, value: u32)

Trait Implementations§

Source§

impl Debug for PolytopeShape

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for PolytopeShape

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Drop for PolytopeShape

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more
Source§

impl Send for PolytopeShape

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.