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

///|
#external
pub type LineDashedMaterial

///|
#module("@mizchi/three-mbt/constructors")
pub extern "js" fn LineDashedMaterial::LineDashedMaterial(
  color : Int,
  scale : Double,
  dash_size : Double,
  gap_size : Double,
) -> LineDashedMaterial = "lineDashedMaterial"

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

///|
pub fn LineDashedMaterial::as_line_basic_material(
  self : LineDashedMaterial,
) -> LineBasicMaterial = "%identity"

///|
pub extern "js" fn LineDashedMaterial::scale(
  self : LineDashedMaterial,
) -> Double =
  #| (self) => self.scale

///|
pub extern "js" fn LineDashedMaterial::set_scale(
  self : LineDashedMaterial,
  value : Double,
) -> Unit =
  #| (self, value) => { self.scale = value; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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