pub fn lengths(&self) -> Vector3D {
        if self.shape == CellShape::Infinite {
            return Vector3D::new(f64::INFINITY, f64::INFINITY, f64::INFINITY);
        }

        let (a, b, c) = (self.vect_a(), self.vect_b(), self.vect_c());
        // Plans normal vectors
        let na = (b ^ c).normalized();
        let nb = (c ^ a).normalized();
        let nc = (a ^ b).normalized();

        Vector3D::new(f64::abs(na * a), f64::abs(nb * b), f64::abs(nc * c))
    }
/// Get the distances between faces of the unit cell
Get the distances between faces of the unit cell
Get the distances between faces of the unit cell
pub fn lengths(&self) -> Vector3D {
        if self.shape == CellShape::Infinite {
            return Vector3D::new(f64::INFINITY, f64::INFINITY, f64::INFINITY);
        }
        let (a, b, c) = (self.vect_a(), self.vect_b(), self.vect_c());
        // Plans normal vectors
        let na = (b ^ c).normalized();
        let nb = (c ^ a).normalized();
        let nc = (a ^ b).normalized();
        Vector3D::new(f64::abs(na * a), f64::abs(nb * b), f64::abs(nc * c))
    }
pub fn lengths ( & self ) -> Vector3D { if self . shape == CellShape :: Infinite { return Vector3D :: new ( f64 :: INFINITY , f64 :: INFINITY , f64 :: INFINITY ) ; } let ( a , b , c ) = ( self . vect_a ( ) , self . vect_b ( ) , self . vect_c ( ) ) ; // Plans normal vectors let na = ( b ^ c ) . normalized ( ) ; let nb = ( c ^ a ) . normalized ( ) ; let nc = ( a ^ b ) . normalized ( ) ; Vector3D :: new ( f64 :: abs ( na * a ) , f64 :: abs ( nb * b ) , f64 :: abs ( nc * c ) ) }
Get the distances between faces of the unit cell
Get the distances between faces of the unit cell
&self