class IRB::Vec - Documentation for Ruby 3.2

# class IRB::Vec

### Attributes

x[R]
y[R]
z[R]

### Public Class Methods

new(x, y, z) click to toggle source

    # File lib/irb/easter-egg.rb, line 6
    def initialize(x, y, z)
      @x, @y, @z = x, y, z
    end

### Public Instance Methods

cross(other) click to toggle source

    # File lib/irb/easter-egg.rb, line 20
    def cross(other)
      ox, oy, oz = other.x, other.y, other.z
      Vec.new(@y*oz-@z*oy, @z*ox-@x*oz, @x*oy-@y*ox)
    end

dot(other) click to toggle source

    # File lib/irb/easter-egg.rb, line 16
    def dot(other)
      @x*other.x + @y*other.y + @z*other.z
    end

normalize() click to toggle source

    # File lib/irb/easter-egg.rb, line 25
    def normalize
      r = Math.sqrt(self.dot(self))
      Vec.new(@x / r, @y / r, @z / r)
    end

sub(other) click to toggle source

    # File lib/irb/easter-egg.rb, line 12
    def sub(other)
      Vec.new(@x - other.x, @y - other.y, @z - other.z)
    end