rcgal 0.2.2

Rust Computational Geometry Algorithms Library.
Documentation
use crate::kernel::vector_2::Vector2 as KernelVector2;
use wasm_bindgen::prelude::*;

#[wasm_bindgen]
pub struct Vector2 {
    #[wasm_bindgen(skip)]
    pub kernel_vector_2: KernelVector2<f64>,
}

#[wasm_bindgen]
impl Vector2 {
    #[wasm_bindgen(constructor)]
    pub fn new(x: f64, y: f64) -> Self {
        Self {
            kernel_vector_2: KernelVector2::new(x, y),
        }
    }

    pub fn x(&self) -> f64 {
        self.kernel_vector_2.x()
    }

    pub fn y(&self) -> f64 {
        self.kernel_vector_2.y()
    }

    pub fn length(&self) -> f64 {
        self.kernel_vector_2.length()
    }

    pub fn normalize(&self) -> Self {
        Self {
            kernel_vector_2: self.kernel_vector_2.normalize(),
        }
    }

    pub fn dot(&self, other: &Vector2) -> f64 {
        self.kernel_vector_2.dot(&other.kernel_vector_2)
    }

    pub fn cross(&self, other: &Vector2) -> f64 {
        self.kernel_vector_2.cross(&other.kernel_vector_2)
    }

    pub fn radian_to(&self, other: &Vector2) -> f64 {
        self.kernel_vector_2.radian_to(&other.kernel_vector_2)
    }
}