Module: Glitch3d::Localized

Defined in:
lib/glitch3d/strategies/localized.rb

Instance Method Summary collapse

Instance Method Details

#alter_faces(faces_objects_array, vertices_objects_array) ⇒ Object



15
16
17
18
19
20
# File 'lib/glitch3d/strategies/localized.rb', line 15

def alter_faces(faces_objects_array, vertices_objects_array)
  (FACE_GLITCH_ITERATION_RATIO * faces_objects_array.count).to_i.times do |_|
    random_element(faces_objects_array).fuck(random_element(target(vertices_objects_array)))
  end
  faces_objects_array
end

#alter_vertices(vertices_objects_array) ⇒ Object



4
5
6
7
8
9
10
11
12
13
# File 'lib/glitch3d/strategies/localized.rb', line 4

def alter_vertices(vertices_objects_array)
  sorted_array = vertices_objects_array.sort do |v1, v2| 
    rand_attr = v1.rand_attr
    v1.send(rand_attr) <=> v2.send(rand_attr)
  end
  (VERTEX_GLITCH_ITERATION_RATIO * sorted_array.size).to_i.times do |_|
    random_element(target(sorted_array)).fuck
  end
  sorted_array
end

#selected_area(vertices_objects_array) ⇒ Object



22
23
24
# File 'lib/glitch3d/strategies/localized.rb', line 22

def selected_area(vertices_objects_array)
  Vertex.subset(x: :positive?, y: :positive?, z: :positive?, vertex_list: vertices_objects_array)
end

#target(vertices_objects_array) ⇒ Object



26
27
28
# File 'lib/glitch3d/strategies/localized.rb', line 26

def target(vertices_objects_array)
  @target ||= selected_area(vertices_objects_array)
end