pub fn vec3_cross_vec3(v1: &Vector3f, v2: &Vector3f) -> Vector3f {
    let v1x: f64 = v1.x as f64;
    let v1y: f64 = v1.y as f64;
    let v1z: f64 = v1.z as f64;
    let v2x: f64 = v2.x as f64;
    let v2y: f64 = v2.y as f64;
    let v2z: f64 = v2.z as f64;
    Vector3f {
        x: ((v1y * v2z) - (v1z * v2y)) as Float,
        y: ((v1z * v2x) - (v1x * v2z)) as Float,
        z: ((v1x * v2y) - (v1y * v2x)) as Float,
    }
}
/// Given two vectors in 3D, the cross product is a vector that is
/// perpendicular to both of them.
Given two vectors in 3D, the cross product is a vector that is
perpendicular to both of them.
Given two vectors in 3D the cross product is a vector that is perpendicular to both of them .
pub fn vec3_cross_vec3(v1: &Vector3f, v2: &Vector3f) -> Vector3f {
    let v1x: f64 = v1.x as f64;
    let v1y: f64 = v1.y as f64;
    let v1z: f64 = v1.z as f64;
    let v2x: f64 = v2.x as f64;
    let v2y: f64 = v2.y as f64;
    let v2z: f64 = v2.z as f64;
    Vector3f {
        x: ((v1y * v2z) - (v1z * v2y)) as Float,
        y: ((v1z * v2x) - (v1x * v2z)) as Float,
        z: ((v1x * v2y) - (v1y * v2x)) as Float,
    }
}
pub fn vec3_cross_vec3 ( v1 : & Vector3f , v2 : & Vector3f ) -> Vector3f { let v1x : f64 = v1 . x as f64 ; let v1y : f64 = v1 . y as f64 ; let v1z : f64 = v1 . z as f64 ; let v2x : f64 = v2 . x as f64 ; let v2y : f64 = v2 . y as f64 ; let v2z : f64 = v2 . z as f64 ; Vector3f { x : ( ( v1y * v2z ) - ( v1z * v2y ) ) as Float , y : ( ( v1z * v2x ) - ( v1x * v2z ) ) as Float , z : ( ( v1x * v2y ) - ( v1y * v2x ) ) as Float , } }
Given two vectors in 3D, the cross product is a vector that is
perpendicular to both of them.
Given two vectors in 3D the cross product is a vector that is perpendicular to both of them .
v1
&Vector3f
v2
&Vector3f