class Pulo::Cuboid

Attributes

faces[R]
height[R]
length[R]
width[R]

Public Class Methods

new(width: nil, height: nil, length: nil, volume: nil, face: nil) click to toggle source
# File lib/pulo/figure/figure3d.rb, line 61
def initialize(width: nil, height: nil, length: nil, volume: nil, face: nil)
  raise 'Cuboid needs width, length and height or volume and face or length and face.' unless ((width && length && height) || (volume && face) || (length && face))

  @faces=[]
  if width and length and height
    @width=width; @length=length; @height=height
    @faces[0]=Rectangle.new(width: width, height: height)
    @faces[1]=Rectangle.new(width: width, height: length)
    @faces[2]=Rectangle.new(width: length, height: height)
    @volume=@faces[0].area*@length
  end
  if volume and face
    @volume=volume
    @faces[0]=face
    @width=@faces[0].width
    @height=@faces[0].height
    @length=@volume/@faces[0].area
    @faces[1]=Rectangle.new(width: @width, height: @length)
    @faces[2]=Rectangle.new(width: @length, height: @height)
  end
  if face and length
    @faces[0]=face
    @length=length
    @volume=face.area * length
    @width=@faces[0].width
    @height=@faces[0].height
    @faces[1]=Rectangle.new(width: @width, height: @length)
    @faces[2]=Rectangle.new(width: @length, height: @height)
  end
  @surfacearea=(@faces[0].area+@faces[1].area+@faces[2].area)*2
end