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

///|
#external
pub type LoftOptions

///|
#module("@mizchi/three-mbt/parametric")
extern "js" fn LoftOptions::ffi_create_LoftOptions(
  closed : Bool,
  cap_start : Bool,
  cap_end : Bool,
) -> LoftOptions = "loftOptions"

///|
pub fn LoftOptions::LoftOptions(
  closed? : Bool = true,
  cap_start? : Bool = false,
  cap_end? : Bool = false,
) -> LoftOptions {
  LoftOptions::ffi_create_LoftOptions(closed, cap_start, cap_end)
}

///|
pub extern "js" fn LoftOptions::closed(self : LoftOptions) -> Bool =
  #| (self) => self.closed

///|
pub extern "js" fn LoftOptions::set_closed(
  self : LoftOptions,
  value : Bool,
) -> Unit =
  #| (self, value) => { self.closed = value; }

///|
pub extern "js" fn LoftOptions::cap_start(self : LoftOptions) -> Bool =
  #| (self) => self.capStart

///|
pub extern "js" fn LoftOptions::set_cap_start(
  self : LoftOptions,
  value : Bool,
) -> Unit =
  #| (self, value) => { self.capStart = value; }

///|
pub extern "js" fn LoftOptions::cap_end(self : LoftOptions) -> Bool =
  #| (self) => self.capEnd

///|
pub extern "js" fn LoftOptions::set_cap_end(
  self : LoftOptions,
  value : Bool,
) -> Unit =
  #| (self, value) => { self.capEnd = value; }