Module: Three::Dirty

Included in:
BufferAttribute, BufferGeometry, Material, Object3D, Texture
Defined in:
lib/three/dirty.rb

Instance Method Summary collapse

Instance Method Details

#add_dirty_dependent(dependent) ⇒ Object



21
22
23
24
# File 'lib/three/dirty.rb', line 21

def add_dirty_dependent(dependent)
  dirty_dependents << dependent unless dirty_dependents.include?(dependent)
  self
end

#dirty?Boolean

Returns:

  • (Boolean)


5
6
7
# File 'lib/three/dirty.rb', line 5

def dirty?
  !dirty_fields.empty?
end

#dirty_dependentsObject



17
18
19
# File 'lib/three/dirty.rb', line 17

def dirty_dependents
  @dirty_dependents ||= []
end

#dirty_field?(field) ⇒ Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/three/dirty.rb', line 13

def dirty_field?(field)
  dirty_fields.key?(:all) || dirty_fields.key?(field)
end

#dirty_fieldsObject



9
10
11
# File 'lib/three/dirty.rb', line 9

def dirty_fields
  @dirty_fields ||= {}
end

#mark_clean!(*fields) ⇒ Object



37
38
39
40
41
42
43
44
# File 'lib/three/dirty.rb', line 37

def mark_clean!(*fields)
  if fields.empty? || fields.include?(:all)
    dirty_fields.clear
  else
    fields.each { |field| dirty_fields.delete(field) }
  end
  self
end

#mark_dirty!(field = :all) ⇒ Object



31
32
33
34
35
# File 'lib/three/dirty.rb', line 31

def mark_dirty!(field = :all)
  dirty_fields[field] = true
  notify_dirty_dependents(field)
  self
end

#remove_dirty_dependent(dependent) ⇒ Object



26
27
28
29
# File 'lib/three/dirty.rb', line 26

def remove_dirty_dependent(dependent)
  dirty_dependents.delete(dependent)
  self
end