Class: Zadt::Universe

Inherits:
Object
  • Object
show all
Defined in:
lib/zadt/AbstractDataTypes/Geometrics/universe.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(num_dim = nil) ⇒ Universe

Returns a new instance of Universe.



8
9
10
11
12
# File 'lib/zadt/AbstractDataTypes/Geometrics/universe.rb', line 8

def initialize(num_dim = nil)
  @num_dim = num_dim
  @points = []
  @objects = []
end

Instance Attribute Details

#objectsObject (readonly)

Returns the value of attribute objects.



7
8
9
# File 'lib/zadt/AbstractDataTypes/Geometrics/universe.rb', line 7

def objects
  @objects
end

#pointsObject (readonly)

Returns the value of attribute points.



7
8
9
# File 'lib/zadt/AbstractDataTypes/Geometrics/universe.rb', line 7

def points
  @points
end

Class Method Details

.distance(pointa, pointb) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/zadt/AbstractDataTypes/Geometrics/universe.rb', line 22

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

.helpObject



14
15
16
# File 'lib/zadt/AbstractDataTypes/Geometrics/universe.rb', line 14

def self.help
  Universe.show_help_message
end

Instance Method Details

#add_point(coords) ⇒ Object



30
31
32
33
34
35
# File 'lib/zadt/AbstractDataTypes/Geometrics/universe.rb', line 30

def add_point(coords)
  point = Point.new(coords)
  dim_check(point)
  @points << point
  point
end

#add_sphere(radius, center) ⇒ Object



37
38
39
40
41
42
# File 'lib/zadt/AbstractDataTypes/Geometrics/universe.rb', line 37

def add_sphere(radius, center)
  sphere = Sphere.new(radius, center)
  dim_check(sphere.center)
  @objects << sphere
  sphere
end

#helpObject



18
19
20
# File 'lib/zadt/AbstractDataTypes/Geometrics/universe.rb', line 18

def help
  Universe.help
end