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