Struct gemini_engine::elements::containers::CollisionContainer
source · pub struct CollisionContainer<'a> {
pub elements: Vec<&'a dyn ViewElement>,
}Expand description
Contains references to all added objects. Meant to be used specifically for collision calculations
Fields§
§elements: Vec<&'a dyn ViewElement>The elements used to define the collision hitbox. This can be anything that implements ViewElement
Implementations§
source§impl<'a> CollisionContainer<'a>
impl<'a> CollisionContainer<'a>
sourcepub const fn new() -> CollisionContainer<'a>
pub const fn new() -> CollisionContainer<'a>
Create a new CollisionContainer
sourcepub fn push(&mut self, element: &'a impl ViewElement)
pub fn push(&mut self, element: &'a impl ViewElement)
Add an element to the container
sourcepub fn generate_collision_points(&self) -> Vec<Vec2D>
👎Deprecated: This is now just a proxy for active_points, use CollisionContainer::active_points instead
pub fn generate_collision_points(&self) -> Vec<Vec2D>
CollisionContainer::active_points insteadReturn a list of all the positions at which the collision box is active
sourcepub fn contains(&self, pos: Vec2D) -> bool
pub fn contains(&self, pos: Vec2D) -> bool
Returns true if there is an element from the CollisionContainer at the given coordinates
sourcepub fn overlaps_element(&self, element: &impl ViewElement) -> bool
pub fn overlaps_element(&self, element: &impl ViewElement) -> bool
Returns true if the given ViewElement is overlapping the CollisionContainer
sourcepub fn will_overlap_element(
&self,
element: &impl ViewElement,
offset: Vec2D
) -> bool
pub fn will_overlap_element( &self, element: &impl ViewElement, offset: Vec2D ) -> bool
Returns true if the element will be overlapping the CollisionContainer when the offset is applied
Trait Implementations§
source§impl<'a> Clone for CollisionContainer<'a>
impl<'a> Clone for CollisionContainer<'a>
source§fn clone(&self) -> CollisionContainer<'a>
fn clone(&self) -> CollisionContainer<'a>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moresource§impl<'a> From<Vec<&'a dyn ViewElement>> for CollisionContainer<'a>
impl<'a> From<Vec<&'a dyn ViewElement>> for CollisionContainer<'a>
source§fn from(elements: Vec<&'a dyn ViewElement>) -> Self
fn from(elements: Vec<&'a dyn ViewElement>) -> Self
Converts to this type from the input type.
source§impl<'a> ViewElement for CollisionContainer<'a>
impl<'a> ViewElement for CollisionContainer<'a>
source§fn active_pixels(&self) -> Vec<Pixel>
fn active_pixels(&self) -> Vec<Pixel>
Return a vector of the element’s
Pixels - A ColChar. If your whole object is a solid colour, consider using utils::points_to_pixels() which will add the same ColChar to every point and can then be used as this function’s outputsource§fn active_points(&self) -> Vec<Vec2D>
fn active_points(&self) -> Vec<Vec2D>
Return the positions the
ViewElement occupies, essentially active_pixels() without the ColChars. This has a default setting that extracts the Vec2Ds from active_pixels but you can set it to something else to make it fasterAuto Trait Implementations§
impl<'a> !RefUnwindSafe for CollisionContainer<'a>
impl<'a> !Send for CollisionContainer<'a>
impl<'a> !Sync for CollisionContainer<'a>
impl<'a> Unpin for CollisionContainer<'a>
impl<'a> !UnwindSafe for CollisionContainer<'a>
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