Sha256: 48906d755cc3fead615f8e300aa6dc1ae3559b40504932c37a561406258aab33

Contents?: true

Size: 1.22 KB

Versions: 4

Compression:

Stored size: 1.22 KB

Contents

#
# Cubes Contained Within a Cube 
# by Ira Greenberg.  
# 
# Collision detection against all
# outer cube's surfaces. 
#

# 20 little internal cubes
load_library 'cube'

# Size of outer cube
BOUNDS = 300
CUBE_NO = 20

# using java_alias to give signatures to overloaded java methods
# in the sketch class
java_alias :background_int, :background, [Java::int]
java_alias :stroke_int, :stroke, [Java::int]

# using java_alias to give signatures to overloaded java method
# in the cube class, need to call $app.fill_int in cube
java_alias :fill_int, :fill, [Java::int]

attr_reader :cubies

def setup
  size(640, 360, P3D)
  @cubies = []
  CUBE_NO.times do 
    # Cubies are randomly sized
    cubie_size = rand(5 .. 15)
    cubies << Cube.new(cubie_size, cubie_size, cubie_size)
  end
  smooth 8
end

def draw
  background_int(50)
  lights
  
  # Center in display window
  translate(width/2, height/2, -130)
  
  # Rotate everything, including external large cube
  rotate_x(frame_count * 0.001)
  rotate_y(frame_count * 0.002)
  rotate_z(frame_count * 0.001)
  stroke_int(255)
  
  
  # Outer transparent cube, just using box method
  no_fill 
  box(BOUNDS)
  
  # Move and rotate cubies
  cubies.each do |c|
    c.update
    c.display
  end
end



Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ruby-processing-2.4.4 samples/processing_app/topics/motion/cubes_in_cube.rb
ruby-processing-2.4.3 samples/processing_app/topics/motion/cubes_in_cube.rb
ruby-processing-2.4.2 samples/processing_app/topics/motion/cubes_in_cube.rb
ruby-processing-2.4.1 samples/processing_app/topics/motion/cubes_in_cube.rb