Class: Three::MeshToonMaterial

Inherits:
Material show all
Defined in:
lib/three/materials/mesh_toon_material.rb

Constant Summary collapse

TEXTURE_SLOTS =
%i[
  map
  gradient_map
  light_map
  ao_map
  emissive_map
  bump_map
  normal_map
  displacement_map
  alpha_map
].freeze

Instance Attribute Summary collapse

Attributes inherited from Material

#blending, #id, #name, #opacity, #side, #transparent, #type, #user_data, #uuid, #vertex_colors, #visible

Instance Method Summary collapse

Methods inherited from Material

allocate_id, #dirty_dependency_changed, #dispose, #needs_update, #needs_update!, #needs_update=, #set_values, #textures

Methods included from Dirty

#add_dirty_dependent, #dirty?, #dirty_dependents, #dirty_field?, #dirty_fields, #mark_clean!, #mark_dirty!, #remove_dirty_dependent

Methods inherited from EventDispatcher

#add_event_listener, #dispatch_event, #has_event_listener?, #remove_event_listener

Constructor Details

#initialize(parameters = nil) ⇒ MeshToonMaterial

Returns a new instance of MeshToonMaterial.



23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/three/materials/mesh_toon_material.rb', line 23

def initialize(parameters = nil)
  super(nil)
  @type = "MeshToonMaterial"
  @color = Color.new(0xffffff)
  @emissive = Color.new(0x000000)
  TEXTURE_SLOTS.each { |slot| instance_variable_set(:"@#{slot}", nil) }
  @wireframe = false
  @wireframe_linewidth = 1
  @fog = true
  @flat_shading = false
  bind_color_changes
  set_values(parameters) if parameters
  mark_dirty!
end

Instance Attribute Details

#colorObject

Returns the value of attribute color.



20
21
22
# File 'lib/three/materials/mesh_toon_material.rb', line 20

def color
  @color
end

#emissiveObject

Returns the value of attribute emissive.



20
21
22
# File 'lib/three/materials/mesh_toon_material.rb', line 20

def emissive
  @emissive
end

#flat_shadingObject

Returns the value of attribute flat_shading.



20
21
22
# File 'lib/three/materials/mesh_toon_material.rb', line 20

def flat_shading
  @flat_shading
end

#fogObject

Returns the value of attribute fog.



20
21
22
# File 'lib/three/materials/mesh_toon_material.rb', line 20

def fog
  @fog
end

#wireframeObject

Returns the value of attribute wireframe.



20
21
22
# File 'lib/three/materials/mesh_toon_material.rb', line 20

def wireframe
  @wireframe
end

#wireframe_linewidthObject

Returns the value of attribute wireframe_linewidth.



20
21
22
# File 'lib/three/materials/mesh_toon_material.rb', line 20

def wireframe_linewidth
  @wireframe_linewidth
end

Instance Method Details

#texture_slotsObject



74
75
76
# File 'lib/three/materials/mesh_toon_material.rb', line 74

def texture_slots
  TEXTURE_SLOTS
end

#to_hObject



78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/three/materials/mesh_toon_material.rb', line 78

def to_h
  result = super.merge(
    color: @color.hex,
    emissive: @emissive.hex,
    wireframe: @wireframe,
    wireframe_linewidth: @wireframe_linewidth,
    fog: @fog,
    flat_shading: @flat_shading
  )
  TEXTURE_SLOTS.each { |slot| result[slot] = public_send(slot)&.to_h }
  result
end