bevy_collider_gen 0.5.0

a library for generating colliders, for bevy apps, from images with transparency
Documentation
use avian2d::{
    parry::{math::Point, shape::SharedShape},
    prelude::Collider,
};

use super::AbstractCollider;
use super::AbstractCollider::{ConvexHull, ConvexPolyline, Heightfield, Polyline};

impl AbstractCollider {
    #[must_use]
    pub fn to_avian(self) -> Option<Collider> {
        self.into()
    }
}

impl From<AbstractCollider> for Option<Collider> {
    fn from(value: AbstractCollider) -> Self {
        match value {
            Polyline(vertices) => Some(Collider::polyline(vertices, None)),
            ConvexPolyline(points) => {
                SharedShape::convex_polyline(points.into_iter().map(Point::from).collect())
                    .map(Collider::from)
            }
            ConvexHull(points) => Collider::convex_hull(points),
            Heightfield(heights, scale) => Some(Collider::heightfield(heights, scale)),
        }
    }
}