mirror of
https://github.com/cyberarm/cyberarm_engine.git
synced 2025-12-16 21:22:33 +00:00
Moved files around, renamed Matrix to Transform
This commit is contained in:
@@ -5,7 +5,6 @@ rescue LoadError => e
|
|||||||
require "gosu"
|
require "gosu"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
require_relative "cyberarm_engine/version"
|
require_relative "cyberarm_engine/version"
|
||||||
|
|
||||||
require_relative "cyberarm_engine/common"
|
require_relative "cyberarm_engine/common"
|
||||||
@@ -13,15 +12,15 @@ require_relative "cyberarm_engine/common"
|
|||||||
require_relative "cyberarm_engine/game_object"
|
require_relative "cyberarm_engine/game_object"
|
||||||
require_relative "cyberarm_engine/engine"
|
require_relative "cyberarm_engine/engine"
|
||||||
|
|
||||||
require_relative "cyberarm_engine/lib/bounding_box"
|
require_relative "cyberarm_engine/bounding_box"
|
||||||
require_relative "cyberarm_engine/lib/vector"
|
require_relative "cyberarm_engine/vector"
|
||||||
require_relative "cyberarm_engine/lib/matrix"
|
require_relative "cyberarm_engine/transform"
|
||||||
require_relative "cyberarm_engine/lib/ray"
|
require_relative "cyberarm_engine/ray"
|
||||||
require_relative "cyberarm_engine/lib/shader" if defined?(OpenGL)
|
require_relative "cyberarm_engine/shader" if defined?(OpenGL)
|
||||||
require_relative "cyberarm_engine/background"
|
require_relative "cyberarm_engine/background"
|
||||||
|
|
||||||
require_relative "cyberarm_engine/objects/text"
|
require_relative "cyberarm_engine/text"
|
||||||
require_relative "cyberarm_engine/objects/timer"
|
require_relative "cyberarm_engine/timer"
|
||||||
|
|
||||||
require_relative "cyberarm_engine/ui/theme"
|
require_relative "cyberarm_engine/ui/theme"
|
||||||
require_relative "cyberarm_engine/ui/event"
|
require_relative "cyberarm_engine/ui/event"
|
||||||
|
|||||||
@@ -1,41 +1,15 @@
|
|||||||
module CyberarmEngine
|
module CyberarmEngine
|
||||||
class Matrix
|
class Transform
|
||||||
attr_reader :elements, :rows, :columns
|
attr_reader :elements
|
||||||
def initialize(matrix, rows:, columns:)
|
def initialize(matrix)
|
||||||
@elements = matrix
|
@elements = matrix
|
||||||
@rows = rows
|
|
||||||
@columns = columns
|
|
||||||
|
|
||||||
raise "Matrix is wrong size! Got #{@elements.size}, expected #{@rows * @columns}" if @rows * @columns != @elements.size
|
raise "Transform is wrong size! Got #{@elements.size}, expected 16" if 16 != @elements.size
|
||||||
end
|
end
|
||||||
|
|
||||||
def +(other)
|
def error(pos)
|
||||||
end
|
p @elements
|
||||||
|
Vector.new(@elements[3], @elements[7]) - pos
|
||||||
def -(other)
|
|
||||||
end
|
|
||||||
|
|
||||||
def *(other)
|
|
||||||
end
|
|
||||||
|
|
||||||
def cofactor
|
|
||||||
end
|
|
||||||
|
|
||||||
def adjoint
|
|
||||||
sign = 1
|
|
||||||
matrix = @elements.clone
|
|
||||||
|
|
||||||
@rows.times do |row|
|
|
||||||
@columns.times do |columns|
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def determinant
|
|
||||||
end
|
|
||||||
|
|
||||||
# https://www.geeksforgeeks.org/adjoint-inverse-matrix/
|
|
||||||
def inverse
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.rotate(angle, rotate_around = nil)
|
def self.rotate(angle, rotate_around = nil)
|
||||||
@@ -48,7 +22,7 @@ module CyberarmEngine
|
|||||||
0, 0, 0, 1,
|
0, 0, 0, 1,
|
||||||
]
|
]
|
||||||
|
|
||||||
rotate_matrix = Matrix.new(matrix, rows: 4, columns: 4)
|
rotate_matrix = Transform.new(matrix, rows: 4, columns: 4)
|
||||||
|
|
||||||
if rotate_around && (rotate_around.x != 0.0 || rotate_around.y != 0.0)
|
if rotate_around && (rotate_around.x != 0.0 || rotate_around.y != 0.0)
|
||||||
negative_rotate_around = Vector.new(-rotate_around.x, -rotate_around.y, -rotate_around.z)
|
negative_rotate_around = Vector.new(-rotate_around.x, -rotate_around.y, -rotate_around.z)
|
||||||
@@ -71,7 +45,7 @@ module CyberarmEngine
|
|||||||
x, y, z, 1,
|
x, y, z, 1,
|
||||||
]
|
]
|
||||||
|
|
||||||
Matrix.new(matrix, rows: 4, columns: 4)
|
Transform.new(matrix)
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.scale(vector, center_around = nil)
|
def self.scale(vector, center_around = nil)
|
||||||
@@ -83,7 +57,7 @@ module CyberarmEngine
|
|||||||
0, 0, 0, 1,
|
0, 0, 0, 1,
|
||||||
]
|
]
|
||||||
|
|
||||||
scale_matrix = Matrix.new(matrix, rows: 4, columns: 4)
|
scale_matrix = Transform.new(matrix)
|
||||||
|
|
||||||
if center_around && (center_around.x != 0.0 || center_around.y != 0.0)
|
if center_around && (center_around.x != 0.0 || center_around.y != 0.0)
|
||||||
negative_center_around = Vector.new(-center_around.x, -center_around.y, -center_around.z)
|
negative_center_around = Vector.new(-center_around.x, -center_around.y, -center_around.z)
|
||||||
@@ -99,7 +73,7 @@ module CyberarmEngine
|
|||||||
|
|
||||||
def self.concat(left, right)
|
def self.concat(left, right)
|
||||||
matrix = Array.new(left.elements.size)
|
matrix = Array.new(left.elements.size)
|
||||||
rows = left.rows
|
rows = 4
|
||||||
|
|
||||||
matrix.size.times do |i|
|
matrix.size.times do |i|
|
||||||
matrix[i] = 0
|
matrix[i] = 0
|
||||||
@@ -109,7 +83,7 @@ module CyberarmEngine
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
Matrix.new(matrix, rows: 4, columns: 4)
|
Transform.new(matrix)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
Reference in New Issue
Block a user