pybevy_math 0.2.1

Math types (Vec2, Vec3, Vec4, Quat, Mat3, Mat4) for PyBevy
Documentation
use bevy::math::primitives::Line2d;
use pyo3::prelude::*;

use crate::dir2::PyDir2;

#[pyclass(name = "Line2d", frozen, eq)]
#[derive(Clone, PartialEq)]
pub struct PyLine2d {
    pub(crate) inner: Line2d,
}

#[pymethods]
impl PyLine2d {
    #[new]
    pub fn new(direction: PyDir2) -> Self {
        Self {
            inner: Line2d {
                direction: direction.into_dir2(),
            },
        }
    }

    #[getter]
    pub fn direction(&self) -> PyDir2 {
        PyDir2::from_dir2(self.inner.direction)
    }

    fn __repr__(&self) -> String {
        format!("Line2d(direction={})", self.inner.direction)
    }
}

impl From<Line2d> for PyLine2d {
    fn from(line: Line2d) -> Self {
        Self { inner: line }
    }
}

impl From<PyLine2d> for Line2d {
    fn from(line: PyLine2d) -> Self {
        line.inner
    }
}