class Zadt::Universe

Attributes

objects[R]
points[R]

Public Class Methods

distance(pointa, pointb) click to toggle source
# File lib/zadt/AbstractDataTypes/Geometrics/universe.rb, line 14
def self.distance(pointa, pointb)
  raise "different dimensions" if pointa.dims != pointb.dims
  coordinate_distances = Array.new
  pointa.dims.times {|coord| coordinate_distances[coord] = pointa.coords[coord] - pointb.coords[coord]}
  sum_of_squares = coordinate_distances.inject(0) {|sum, coord| sum += coord ** 2}
  return Math.sqrt(sum_of_squares)
end
help() click to toggle source
# File lib/zadt/HelpModules/Functionality/Geometrics/universe.rb, line 3
def self.help
  Universe.show_help_message
end
new(num_dim = nil) click to toggle source
# File lib/zadt/AbstractDataTypes/Geometrics/universe.rb, line 8
def initialize(num_dim = nil)
  @num_dim = num_dim
  @points = []
  @objects = []
end

Private Class Methods

show_help_message() click to toggle source
# File lib/zadt/HelpModules/Functionality/Geometrics/universe.rb, line 13
def self.show_help_message
  Zadt::ADT::show_universe_help_message
end

Public Instance Methods

add_point(coords) click to toggle source
# File lib/zadt/AbstractDataTypes/Geometrics/universe.rb, line 22
def add_point(coords)
  point = Point.new(coords)
  dim_check(point)
  @points << point
  point
end
add_sphere(radius, center) click to toggle source
# File lib/zadt/AbstractDataTypes/Geometrics/universe.rb, line 29
def add_sphere(radius, center)
  sphere = Sphere.new(radius, center)
  dim_check(sphere.center)
  @objects << sphere
  sphere
end
help() click to toggle source
# File lib/zadt/HelpModules/Functionality/Geometrics/universe.rb, line 7
def help
  Universe.help
end

Private Instance Methods

dim_check(point) click to toggle source
# File lib/zadt/AbstractDataTypes/Geometrics/universe.rb, line 38
def dim_check(point)
  return if !@num_dim
  raise "Wrong number of dimensions" if point.dims != @num_dim
end