Moved all the 3d math stuff into its own module.

This commit is contained in:
Nathan Vegdahl 2015-12-26 19:27:32 -08:00
parent b9d0860957
commit e239f5aaaf
6 changed files with 22 additions and 16 deletions

View File

@ -1,10 +1,6 @@
mod math;
mod lerp;
mod float4;
mod vector;
mod point;
mod normal;
mod matrix;
fn main() {
println!("Hello, world!");

View File

@ -1,5 +1,15 @@
#![allow(dead_code)]
mod vector;
mod normal;
mod point;
mod matrix;
pub use self::vector::Vector;
pub use self::normal::Normal;
pub use self::point::Point;
pub use self::matrix::Matrix4x4;
/// Trait for calculating dot products.
pub trait DotProduct
{

View File

@ -4,9 +4,10 @@ use std::ops::{Index, IndexMut, Add, Sub, Mul, Div};
use std::cmp::PartialEq;
use lerp::Lerp;
use math::{DotProduct, CrossProduct};
use float4::Float4;
use matrix::Matrix4x4;
use super::{DotProduct, CrossProduct};
use super::Matrix4x4;
/// A surface normal in 3d homogeneous space.
#[derive(Debug, Copy, Clone)]
@ -138,9 +139,8 @@ impl CrossProduct for Normal {
#[cfg(test)]
mod tests {
use super::*;
use math::*;
use super::super::{Matrix4x4, CrossProduct, DotProduct};
use lerp::Lerp;
use matrix::Matrix4x4;
#[test]
fn add() {

View File

@ -5,8 +5,9 @@ use std::cmp::PartialEq;
use lerp::Lerp;
use float4::Float4;
use vector::Vector;
use matrix::Matrix4x4;
use super::Vector;
use super::Matrix4x4;
/// A position in 3d homogeneous space.
#[derive(Debug, Copy, Clone)]
@ -96,9 +97,8 @@ impl Lerp for Point {
#[cfg(test)]
mod tests {
use super::*;
use vector::Vector;
use super::super::{Vector, Matrix4x4};
use lerp::Lerp;
use matrix::Matrix4x4;
#[test]
fn norm() {

View File

@ -4,9 +4,10 @@ use std::ops::{Index, IndexMut, Add, Sub, Mul, Div};
use std::cmp::PartialEq;
use lerp::Lerp;
use math::{DotProduct, CrossProduct};
use float4::Float4;
use matrix::Matrix4x4;
use super::{DotProduct, CrossProduct};
use super::Matrix4x4;
/// A direction vector in 3d homogeneous space.
#[derive(Debug, Copy, Clone)]
@ -138,9 +139,8 @@ impl CrossProduct for Vector {
#[cfg(test)]
mod tests {
use super::*;
use math::*;
use super::super::{Matrix4x4, CrossProduct, DotProduct};
use lerp::Lerp;
use matrix::Matrix4x4;
#[test]
fn add() {