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

///|
#external
pub type LineMaterial

///|
#module("@mizchi/three-mbt/objects")
pub extern "js" fn LineMaterial::LineMaterial(
  color : Int,
  linewidth : Double,
) -> LineMaterial = "lineMaterial"

///|
pub fn LineMaterial::as_material(self : LineMaterial) -> Material = "%identity"

///|
pub fn LineMaterial::as_shader_material(self : LineMaterial) -> ShaderMaterial = "%identity"

///|
pub extern "js" fn LineMaterial::color(self : LineMaterial) -> Color =
  #| (self) => self.color

///|
pub extern "js" fn LineMaterial::resolution(self : LineMaterial) -> Vector2 =
  #| (self) => self.resolution

///|
pub extern "js" fn LineMaterial::linewidth(self : LineMaterial) -> Double =
  #| (self) => self.linewidth

///|
pub extern "js" fn LineMaterial::set_linewidth(
  self : LineMaterial,
  value : Double,
) -> Unit =
  #| (self, value) => { self.linewidth = value; }

///|
pub extern "js" fn LineMaterial::world_units(self : LineMaterial) -> Bool =
  #| (self) => self.worldUnits

///|
pub extern "js" fn LineMaterial::set_world_units(
  self : LineMaterial,
  value : Bool,
) -> Unit =
  #| (self, value) => { self.worldUnits = value; }

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

///|
pub extern "js" fn LineMaterial::set_dashed(
  self : LineMaterial,
  value : Bool,
) -> Unit =
  #| (self, value) => { self.dashed = value; }

///|
pub extern "js" fn LineMaterial::dash_scale(self : LineMaterial) -> Double =
  #| (self) => self.dashScale

///|
pub extern "js" fn LineMaterial::set_dash_scale(
  self : LineMaterial,
  value : Double,
) -> Unit =
  #| (self, value) => { self.dashScale = value; }

///|
pub extern "js" fn LineMaterial::dash_size(self : LineMaterial) -> Double =
  #| (self) => self.dashSize

///|
pub extern "js" fn LineMaterial::set_dash_size(
  self : LineMaterial,
  value : Double,
) -> Unit =
  #| (self, value) => { self.dashSize = value; }

///|
pub extern "js" fn LineMaterial::gap_size(self : LineMaterial) -> Double =
  #| (self) => self.gapSize

///|
pub extern "js" fn LineMaterial::set_gap_size(
  self : LineMaterial,
  value : Double,
) -> Unit =
  #| (self, value) => { self.gapSize = value; }

///|
pub extern "js" fn LineMaterial::dash_offset(self : LineMaterial) -> Double =
  #| (self) => self.dashOffset

///|
pub extern "js" fn LineMaterial::set_dash_offset(
  self : LineMaterial,
  value : Double,
) -> Unit =
  #| (self, value) => { self.dashOffset = value; }

///|
pub extern "js" fn LineMaterial::id(self : LineMaterial) -> Int =
  #| (self) => self.id

///|
pub extern "js" fn LineMaterial::kind(self : LineMaterial) -> String =
  #| (self) => self.type

///|
pub extern "js" fn LineMaterial::name(self : LineMaterial) -> String =
  #| (self) => self.name

///|
pub extern "js" fn LineMaterial::set_name(
  self : LineMaterial,
  value : String,
) -> Unit =
  #| (self, value) => { self.name = value; }

///|
pub extern "js" fn LineMaterial::opacity(self : LineMaterial) -> Double =
  #| (self) => self.opacity

///|
pub extern "js" fn LineMaterial::set_opacity(
  self : LineMaterial,
  value : Double,
) -> Unit =
  #| (self, value) => { self.opacity = value; }

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

///|
pub extern "js" fn LineMaterial::set_transparent(
  self : LineMaterial,
  value : Bool,
) -> Unit =
  #| (self, value) => { self.transparent = value; }

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

///|
pub extern "js" fn LineMaterial::set_visible(
  self : LineMaterial,
  value : Bool,
) -> Unit =
  #| (self, value) => { self.visible = value; }

///|
pub extern "js" fn LineMaterial::depth_test(self : LineMaterial) -> Bool =
  #| (self) => self.depthTest

///|
pub extern "js" fn LineMaterial::set_depth_test(
  self : LineMaterial,
  value : Bool,
) -> Unit =
  #| (self, value) => { self.depthTest = value; }

///|
pub extern "js" fn LineMaterial::depth_write(self : LineMaterial) -> Bool =
  #| (self) => self.depthWrite

///|
pub extern "js" fn LineMaterial::set_depth_write(
  self : LineMaterial,
  value : Bool,
) -> Unit =
  #| (self, value) => { self.depthWrite = value; }

///|
pub extern "js" fn LineMaterial::dispose(self : LineMaterial) -> Unit =
  #| (self) => self.dispose()

///|
pub extern "js" fn LineMaterial::mark_needs_update(self : LineMaterial) -> Unit =
  #| (self) => { self.needsUpdate = true; }