// Generated by scripts/generate.mjs from bindings/api.mjs. Do not edit.

///|
#external
pub type NURBSSurface

///|
#module("@mizchi/three-mbt/modeling-edit")
pub extern "js" fn NURBSSurface::NURBSSurface(
  degree_u : Int,
  degree_v : Int,
  knots_u : FixedArray[Double],
  knots_v : FixedArray[Double],
  control_points : FixedArray[FixedArray[Vector4]],
) -> NURBSSurface = "nURBSSurface"

///|
pub extern "js" fn NURBSSurface::get_point(
  self : NURBSSurface,
  u : Double,
  v : Double,
  target : Vector3,
) -> Unit =
  #| (self, u, v, target) => self.getPoint(u, v, target)

///|
pub extern "js" fn NURBSSurface::control_points(
  self : NURBSSurface,
) -> FixedArray[FixedArray[Vector4]] =
  #| (self) => self.controlPoints.map(row => row.slice())