//! Conversion utilities use cgmath::{Point2, Vector2}; use nalgebra; use rapier2d::dynamics::RigidBody; // TODO: Migrate to nalgebra fully, remove these converters /// Convert a rigidbody position to a position in game coordinates pub fn rigidbody_position(r: &RigidBody) -> cgmath::Point2 { Point2 { x: r.translation()[0], y: r.translation()[1], } } /// Convert a rigidbody rotation to a rotation in game coordinates pub fn rigidbody_rotation(r: &RigidBody) -> Vector2 { Vector2 { x: r.rotation().re, y: r.rotation().im, } } /// Convert a rigidbody velocity to a velocity in game coordinates pub fn rigidbody_velocity(r: &RigidBody) -> cgmath::Vector2 { let v = r.velocity_at_point(&nalgebra::Point2::new( r.translation()[0], r.translation()[1], )); Vector2 { x: v.x, y: v.y } }