Sha256: 1d13f10555acf1b3924ab9ed55f4a6b3a616c184b53f6e2a63dc15b61cdd0b09

Contents?: true

Size: 1.69 KB

Versions: 8

Compression:

Stored size: 1.69 KB

Contents

# Copyright (c) 2023 M.J.N. Corino, The Netherlands
#
# This software is released under the MIT license.

module Wx

  def self.deg_to_rad(deg)
    (deg * Math::PI) / 180.0
  end

  def self.rad_to_deg(rad)
    (rad * 180.0) / Math::PI
  end

  class Point2DInt

    alias :x :get_x
    alias :x= :set_x
    alias :y :get_y
    alias :y= :set_y

    # make wrappers private
    private :add, :sub, :mul, :div

    wx_assign = instance_method :assign
    define_method :assign do |pt|
      wx_assign.bind(self).call(pt)
      self
    end

    def add!(pt)
      add(pt)
      self
    end

    def sub!(pt)
      sub(pt)
      self
    end

    def mul!(v)
      mul(v)
      self
    end

    def div!(v)
      div(v)
      self
    end

    def +(pt)
      Point2DInt.new(self).add!(pt)
    end

    def -(pt)
      Point2DInt.new(self).sub!(pt)
    end

    def *(v)
      Point2DInt.new(self).mul!(v)
    end

    def /(v)
      Point2DInt.new(self).div!(v)
    end

  end
  class Point2DDouble

    alias :x :get_x
    alias :x= :set_x
    alias :y :get_y
    alias :y= :set_y

    # make wrappers private
    private :add, :sub, :mul, :div

    wx_assign = instance_method :assign
    define_method :assign do |pt|
      wx_assign.bind(self).call(pt)
      self
    end

    def add!(pt)
      add(pt)
      self
    end

    def sub!(pt)
      sub(pt)
      self
    end

    def mul!(v)
      mul(v)
      self
    end

    def div!(v)
      div(v)
      self
    end

    def +(pt)
      Point2DDouble.new(self).add!(pt)
    end

    def -(pt)
      Point2DDouble.new(self).sub!(pt)
    end

    def *(v)
      Point2DDouble.new(self).mul!(v)
    end

    def /(v)
      Point2DDouble.new(self).div!(v)
    end

  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
wxruby3-1.3.1 lib/wx/core/geometry.rb
wxruby3-1.3.0 lib/wx/core/geometry.rb
wxruby3-1.2.1 lib/wx/core/geometry.rb
wxruby3-1.2.0 lib/wx/core/geometry.rb
wxruby3-1.1.2 lib/wx/core/geometry.rb
wxruby3-1.1.1 lib/wx/core/geometry.rb
wxruby3-1.1.0 lib/wx/core/geometry.rb
wxruby3-1.0.1 lib/wx/core/geometry.rb