e2r 0.10.0

experimental rendering engine in rust
Documentation
extern crate mazth;

#[allow(unused_imports)]
use std::ops::Div;
#[allow(unused_imports)]
use std::cmp::Ordering;

#[allow(unused_imports)]
use self::mazth::mat::Mat4x1;
#[allow(unused_imports)]
use interface::i_interpolate::IInterpolate;

use implement::math::linearinterp::LinearInterp;
use implement::math::piecewise::Piecewise;

use test::math::test_interpolate;

#[test]
fn test_linearinterp(){
        
    let cp0 = Mat4x1 { _val: [ 0f64, 1f64, 2f64, 3f64 ] };
    let cp1 = Mat4x1 { _val: [ 10f64, 16f64, 17f64, 18f64 ] };

    {
        let mut interp = LinearInterp::init( 10, cp0, cp1 );
        test_interpolate::test_interp_forward( & mut interp, & cp0, & cp1 );
    }
    {
        let mut interp = LinearInterp::init( 10, cp0, cp1 );
        test_interpolate::test_interp_forward_back( & mut interp, & cp0, & cp1 );
    }
}

#[test]
fn test_linearinterp_iterator(){
    let cp0 = Mat4x1 { _val: [ 0f64, 1f64, 2f64, 3f64 ] };
    let cp1 = Mat4x1 { _val: [ 10f64, 16f64, 17f64, 18f64 ] };
    
    let mut interp = LinearInterp::init( 10, cp0, cp1 );
    let count_interpolated = interp.num_steps();
    assert!( count_interpolated == 10 );

    test_interpolate::test_iterator( & mut interp, & cp0, & cp1 );
}

#[test]
fn test_linearinterp_reverse_iterator(){
    let cp0 = Mat4x1 { _val: [ 0f64, 1f64, 2f64, 3f64 ] };
    let cp1 = Mat4x1 { _val: [ 10f64, 16f64, 17f64, 18f64 ] };
    
    let mut interp = LinearInterp::init( 10, cp0, cp1 );
    let count_interpolated = interp.num_steps();
    assert!( count_interpolated == 10 );

    test_interpolate::test_reverse_iterator( & mut interp, & cp0, & cp1 );
}


#[test]
fn test_linearinterp_piecewise(){
    let mut interps = Piecewise::init();
    let cp0 = Mat4x1 { _val: [ 0f64, 1f64, 2f64, 3f64 ] };
    let cp1 = Mat4x1 { _val: [ 5f64, 6f64, 7f64, 8f64 ] };
    for x in 0..4 {
        let interp = LinearInterp::init( 10 * (x+1) , cp0, cp1 );
        interps.add( interp );
    }
    let piece_count = 4usize;
    let total_steps = 100u64;
    test_interpolate::test_piecewise( & mut interps, & cp0, & cp1, piece_count, total_steps );
}


#[test]
fn test_linearinterp_piecewise_reset(){
    let mut interps = Piecewise::init();
    let cp0 = Mat4x1 { _val: [ 0f64, 1f64, 2f64, 3f64 ] };
    let cp1 = Mat4x1 { _val: [ 5f64, 6f64, 7f64, 8f64 ] };
    for x in 0..4 {
        let interp = LinearInterp::init( 10 * (x+1) , cp0, cp1 );
        interps.add( interp );
    }
    let piece_count = 4usize;
    let total_steps = 100u64;
    test_interpolate::test_piecewise_reset( & mut interps, & cp0, & cp1, piece_count, total_steps );
}