mass 0.1.0

Mass is a 3D physics engine
Documentation
use crate::vector3::Real;
use crate::vector3::Vector3;
use crate::integrate::TraitIntegrate;

pub struct Particle {
    position: Vector3,
    velocity: Vector3,
    acceleration: Vector3,
    mass_inverse: u32,
}

impl Copy for Particle {}

impl Clone for Particle {
    fn clone(&self) -> Self {
        *self
    }
}

impl Particle {
    pub fn new() -> Particle {
        Particle {
            position: Vector3::new(),
            velocity: Vector3::new(),
            acceleration: Vector3::new(),
            mass_inverse: 0.0,
        }
    }
}

impl TraitIntegrate for Particle {
    fn integrate(&mut self, duration: Real) {
        if self.mass_inverse == 0 || duration == 0 {
            return;
        }
        self.position.add(self.velocity.get_scaled(duration));
        self.velocity.add(self.acceleration.get_scaled(duration));
        self.velocity = self.velocity.get_scaled(damping.powf(duration));
        // Clear accumulator. TODO.
    }
}