raylib-bindings 0.5.4 → 0.5.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ChangeLog +25 -0
- data/README.md +1 -1
- data/examples/template.rb +14 -20
- data/lib/config.rb +1 -1
- data/lib/libraylib.aarch64.so +0 -0
- data/lib/libraylib.dll +0 -0
- data/lib/libraylib.dylib +0 -0
- data/lib/libraylib.x86_64.so +0 -0
- data/lib/physac.aarch64.so +0 -0
- data/lib/physac.dll +0 -0
- data/lib/physac.x86_64.so +0 -0
- data/lib/raygui.aarch64.so +0 -0
- data/lib/raygui.dll +0 -0
- data/lib/raygui.dylib +0 -0
- data/lib/raygui.x86_64.so +0 -0
- data/lib/raygui_main.rb +60 -41
- data/lib/raylib_helper.rb +79 -14
- data/lib/raylib_main.rb +109 -45
- data/lib/raymath.rb +21 -7
- data/lib/rcamera.rb +2 -2
- data/lib/rlgl.rb +14 -11
- metadata +2 -3
- data/lib/raygui.rb +0 -854
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 60c0ed2e964a28a7b861f1dd9f2b8f35e9d8e65bec1f7c90746675b58d2407e4
|
|
4
|
+
data.tar.gz: e3030f30c9520538fae1eee5cc58db9308c6cd17fed35c58c311035927692a28
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4284b47b0c43125635254ed3eb44986ce29b0df6541521e46d1df37663c134717255a4746f959d6d320429be87c9f7d4d6f23d9c540c61045474a4ca8503d24e
|
|
7
|
+
data.tar.gz: b36f8196992e4b8ee6002d1b8ebea803a1eb5a019ceedda5f4477ea7d14baaa0214bd549a86184883ce9473964e9480775c05fd6bcef0a732e5d6bdf7cf912c3
|
data/ChangeLog
CHANGED
|
@@ -1,3 +1,28 @@
|
|
|
1
|
+
2023-09-09 vaiorabbit <http://twitter.com/vaiorabbit>
|
|
2
|
+
|
|
3
|
+
* Updated with latest raylib ( https://github.com/raysan5/raylib/commit/37f60e75e72eebd5ff687b8857bf9043d291b0df ) and raygui ( https://github.com/raysan5/raygui/commit/0fccdc61fbd787fdfa9e254fd99def2cdb34fb10 )
|
|
4
|
+
* example/template.rb: now calls UpdateCamera only when orbital model is on
|
|
5
|
+
|
|
6
|
+
2023-09-02 vaiorabbit <http://twitter.com/vaiorabbit>
|
|
7
|
+
|
|
8
|
+
* Updated with latest raylib ( https://github.com/raysan5/raylib/commit/ec6d3bb688ae8c137152eca7cdef9885badd9bee ) and raygui ( https://github.com/raysan5/raygui/commit/12fc56e5e1fe0888a4c73b98890914ca3806a8b4 )
|
|
9
|
+
* Linux (Cross): changed host OS (Ubuntu 22.04 LTS) and cross compiler version
|
|
10
|
+
|
|
11
|
+
2023-08-10 vaiorabbit <http://twitter.com/vaiorabbit>
|
|
12
|
+
|
|
13
|
+
* Updated with latest raylib ( https://github.com/raysan5/raylib/commit/0959f6ebf69f44d5bb0225cc94fd187ebedf8be5 ) and raygui ( https://github.com/raysan5/raygui/commit/41417db52d951bb08273c892d3e3db3723f1083a )
|
|
14
|
+
* lib/raylib_helper.rb: Added several initialization helper for Camera3D, Camera2D and BoundingBox
|
|
15
|
+
* examples: Fixed broken examples / Adoped new initialization helper APIs / Use accessor helpers for better readability
|
|
16
|
+
|
|
17
|
+
2023-07-29 vaiorabbit <http://twitter.com/vaiorabbit>
|
|
18
|
+
|
|
19
|
+
* Updated with latest raylib ( https://github.com/raysan5/raylib/commit/962030e70ad3dfcce5d4642ad65890fde93ad117 ) and raygui ( https://github.com/raysan5/raygui/commit/36365199b11dd967e7147e64c85ccfda8c5064d1 )
|
|
20
|
+
|
|
21
|
+
2023-07-16 vaiorabbit <http://twitter.com/vaiorabbit>
|
|
22
|
+
|
|
23
|
+
* example/textures_image_rotate.rb: Added
|
|
24
|
+
* Updated with latest raylib ( https://github.com/raysan5/raylib/commit/22895ba14fab982ca74ec1526b48b924d1174e60 ) and raygui ( https://github.com/raysan5/raygui/commit/848569ce3399a8f6fe00091f968808f3ab042c4b )
|
|
25
|
+
|
|
1
26
|
2023-06-26 vaiorabbit <http://twitter.com/vaiorabbit>
|
|
2
27
|
|
|
3
28
|
* Updated with latest raylib ( https://github.com/raysan5/raylib/commit/0c126af7171e51fff9f94c4f2e498f43f60d617b ) and raygui ( https://github.com/raysan5/raygui/commit/fa1c93cdcc6df2cd45f5a1d9249291465a24cd8c )
|
data/README.md
CHANGED
data/examples/template.rb
CHANGED
|
@@ -47,7 +47,7 @@ if __FILE__ == $PROGRAM_NAME
|
|
|
47
47
|
camera.projection = CAMERA_PERSPECTIVE
|
|
48
48
|
}
|
|
49
49
|
reset_camera.call
|
|
50
|
-
camera_mode =
|
|
50
|
+
camera_mode = CAMERA_CUSTOM
|
|
51
51
|
auto_rotate = false
|
|
52
52
|
|
|
53
53
|
# Player (red cube) settings
|
|
@@ -68,16 +68,16 @@ if __FILE__ == $PROGRAM_NAME
|
|
|
68
68
|
if IsKeyPressed(KEY_F1)
|
|
69
69
|
auto_rotate = !auto_rotate
|
|
70
70
|
reset_camera.call
|
|
71
|
-
camera_mode = auto_rotate ? CAMERA_ORBITAL :
|
|
71
|
+
camera_mode = auto_rotate ? CAMERA_ORBITAL : CAMERA_CUSTOM
|
|
72
72
|
end
|
|
73
|
-
UpdateCamera(camera.pointer, camera_mode)
|
|
73
|
+
UpdateCamera(camera.pointer, camera_mode) if auto_rotate
|
|
74
74
|
|
|
75
75
|
# Calculate move direction
|
|
76
76
|
move = Vector3.create(0, 0, 0)
|
|
77
|
-
move
|
|
78
|
-
move
|
|
79
|
-
move
|
|
80
|
-
move
|
|
77
|
+
move.x += speed if IsKeyDown(KEY_RIGHT)
|
|
78
|
+
move.x -= speed if IsKeyDown(KEY_LEFT)
|
|
79
|
+
move.z += speed if IsKeyDown(KEY_DOWN)
|
|
80
|
+
move.z -= speed if IsKeyDown(KEY_UP)
|
|
81
81
|
|
|
82
82
|
to_camera = Vector3Normalize(Vector3.create(camera.position.x, 0, camera.position.z))
|
|
83
83
|
rotate_y = QuaternionFromVector3ToVector3(Vector3.create(0, 0, 1), to_camera)
|
|
@@ -89,19 +89,13 @@ if __FILE__ == $PROGRAM_NAME
|
|
|
89
89
|
# Check collision status
|
|
90
90
|
collision = false
|
|
91
91
|
|
|
92
|
-
player_bbox = BoundingBox.
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
obstacle_cube_bbox = BoundingBox.create(obstacle_cube_pos.x - obstacle_cube_size.x/2,
|
|
100
|
-
obstacle_cube_pos.y - obstacle_cube_size.y/2,
|
|
101
|
-
obstacle_cube_pos.z - obstacle_cube_size.z/2,
|
|
102
|
-
obstacle_cube_pos.x + obstacle_cube_size.x/2,
|
|
103
|
-
obstacle_cube_pos.y + obstacle_cube_size.y/2,
|
|
104
|
-
obstacle_cube_pos.z + obstacle_cube_size.z/2)
|
|
92
|
+
player_bbox = BoundingBox.new
|
|
93
|
+
.with_min(player_pos.x - player_size.x/2, player_pos.y - player_size.y/2, player_pos.z - player_size.z/2)
|
|
94
|
+
.with_max(player_pos.x + player_size.x/2, player_pos.y + player_size.y/2, player_pos.z + player_size.z/2)
|
|
95
|
+
|
|
96
|
+
obstacle_cube_bbox = BoundingBox.new
|
|
97
|
+
.with_min(obstacle_cube_pos.x - obstacle_cube_size.x/2, obstacle_cube_pos.y - obstacle_cube_size.y/2, obstacle_cube_pos.z - obstacle_cube_size.z/2)
|
|
98
|
+
.with_max(obstacle_cube_pos.x + obstacle_cube_size.x/2, obstacle_cube_pos.y + obstacle_cube_size.y/2, obstacle_cube_pos.z + obstacle_cube_size.z/2)
|
|
105
99
|
|
|
106
100
|
# Check collisions player vs obstacle_cube
|
|
107
101
|
collision = true if CheckCollisionBoxes(player_bbox, obstacle_cube_bbox)
|
data/lib/config.rb
CHANGED
|
@@ -62,7 +62,6 @@ module Raylib
|
|
|
62
62
|
SUPPORT_FILEFORMAT_GIF = 1
|
|
63
63
|
SUPPORT_FILEFORMAT_QOI = 1
|
|
64
64
|
SUPPORT_FILEFORMAT_DDS = 1
|
|
65
|
-
SUPPORT_FILEFORMAT_HDR = 1
|
|
66
65
|
SUPPORT_IMAGE_EXPORT = 1
|
|
67
66
|
SUPPORT_IMAGE_GENERATION = 1
|
|
68
67
|
SUPPORT_IMAGE_MANIPULATION = 1
|
|
@@ -70,6 +69,7 @@ module Raylib
|
|
|
70
69
|
SUPPORT_FILEFORMAT_FNT = 1
|
|
71
70
|
SUPPORT_FILEFORMAT_TTF = 1
|
|
72
71
|
SUPPORT_TEXT_MANIPULATION = 1
|
|
72
|
+
SUPPORT_FONT_ATLAS_WHITE_REC = 1
|
|
73
73
|
MAX_TEXT_BUFFER_LENGTH = 1024 # Size of internal static buffers used on some functions:
|
|
74
74
|
MAX_TEXTSPLIT_COUNT = 128 # Maximum number of substrings to split: TextSplit()
|
|
75
75
|
SUPPORT_FILEFORMAT_OBJ = 1
|
data/lib/libraylib.aarch64.so
CHANGED
|
Binary file
|
data/lib/libraylib.dll
CHANGED
|
Binary file
|
data/lib/libraylib.dylib
CHANGED
|
Binary file
|
data/lib/libraylib.x86_64.so
CHANGED
|
Binary file
|
data/lib/physac.aarch64.so
CHANGED
|
Binary file
|
data/lib/physac.dll
CHANGED
|
Binary file
|
data/lib/physac.x86_64.so
CHANGED
|
Binary file
|
data/lib/raygui.aarch64.so
CHANGED
|
Binary file
|
data/lib/raygui.dll
CHANGED
|
Binary file
|
data/lib/raygui.dylib
CHANGED
|
Binary file
|
data/lib/raygui.x86_64.so
CHANGED
|
Binary file
|
data/lib/raygui_main.rb
CHANGED
|
@@ -14,7 +14,7 @@ module Raylib
|
|
|
14
14
|
RAYGUI_VERSION_MAJOR = 4
|
|
15
15
|
RAYGUI_VERSION_MINOR = 0
|
|
16
16
|
RAYGUI_VERSION_PATCH = 0
|
|
17
|
-
RAYGUI_VERSION = "4.0
|
|
17
|
+
RAYGUI_VERSION = "4.0"
|
|
18
18
|
SCROLLBAR_LEFT_SIDE = 0
|
|
19
19
|
SCROLLBAR_RIGHT_SIDE = 1
|
|
20
20
|
|
|
@@ -33,6 +33,18 @@ module Raylib
|
|
|
33
33
|
TEXT_ALIGN_CENTER = 1
|
|
34
34
|
TEXT_ALIGN_RIGHT = 2
|
|
35
35
|
|
|
36
|
+
# enum GuiTextAlignmentVertical
|
|
37
|
+
# Gui control text alignment vertical
|
|
38
|
+
TEXT_ALIGN_TOP = 0
|
|
39
|
+
TEXT_ALIGN_MIDDLE = 1
|
|
40
|
+
TEXT_ALIGN_BOTTOM = 2
|
|
41
|
+
|
|
42
|
+
# enum GuiTextWrapMode
|
|
43
|
+
# Gui control text wrap mode
|
|
44
|
+
TEXT_WRAP_NONE = 0
|
|
45
|
+
TEXT_WRAP_CHAR = 1
|
|
46
|
+
TEXT_WRAP_WORD = 2
|
|
47
|
+
|
|
36
48
|
# enum GuiControl
|
|
37
49
|
# Gui controls
|
|
38
50
|
DEFAULT = 0
|
|
@@ -54,30 +66,31 @@ module Raylib
|
|
|
54
66
|
|
|
55
67
|
# enum GuiControlProperty
|
|
56
68
|
# Gui base properties for every control
|
|
57
|
-
BORDER_COLOR_NORMAL = 0
|
|
58
|
-
BASE_COLOR_NORMAL = 1
|
|
59
|
-
TEXT_COLOR_NORMAL = 2
|
|
60
|
-
BORDER_COLOR_FOCUSED = 3
|
|
61
|
-
BASE_COLOR_FOCUSED = 4
|
|
62
|
-
TEXT_COLOR_FOCUSED = 5
|
|
63
|
-
BORDER_COLOR_PRESSED = 6
|
|
64
|
-
BASE_COLOR_PRESSED = 7
|
|
65
|
-
TEXT_COLOR_PRESSED = 8
|
|
66
|
-
BORDER_COLOR_DISABLED = 9
|
|
67
|
-
BASE_COLOR_DISABLED = 10
|
|
68
|
-
TEXT_COLOR_DISABLED = 11
|
|
69
|
-
BORDER_WIDTH = 12
|
|
70
|
-
TEXT_PADDING = 13
|
|
71
|
-
TEXT_ALIGNMENT = 14
|
|
72
|
-
RESERVED = 15
|
|
69
|
+
BORDER_COLOR_NORMAL = 0 # Control border color in STATE_NORMAL
|
|
70
|
+
BASE_COLOR_NORMAL = 1 # Control base color in STATE_NORMAL
|
|
71
|
+
TEXT_COLOR_NORMAL = 2 # Control text color in STATE_NORMAL
|
|
72
|
+
BORDER_COLOR_FOCUSED = 3 # Control border color in STATE_FOCUSED
|
|
73
|
+
BASE_COLOR_FOCUSED = 4 # Control base color in STATE_FOCUSED
|
|
74
|
+
TEXT_COLOR_FOCUSED = 5 # Control text color in STATE_FOCUSED
|
|
75
|
+
BORDER_COLOR_PRESSED = 6 # Control border color in STATE_PRESSED
|
|
76
|
+
BASE_COLOR_PRESSED = 7 # Control base color in STATE_PRESSED
|
|
77
|
+
TEXT_COLOR_PRESSED = 8 # Control text color in STATE_PRESSED
|
|
78
|
+
BORDER_COLOR_DISABLED = 9 # Control border color in STATE_DISABLED
|
|
79
|
+
BASE_COLOR_DISABLED = 10 # Control base color in STATE_DISABLED
|
|
80
|
+
TEXT_COLOR_DISABLED = 11 # Control text color in STATE_DISABLED
|
|
81
|
+
BORDER_WIDTH = 12 # Control border size, 0 for no border
|
|
82
|
+
TEXT_PADDING = 13 # Control text padding, not considering border
|
|
83
|
+
TEXT_ALIGNMENT = 14 # Control text horizontal alignment inside control text bound (after border and padding)
|
|
73
84
|
|
|
74
85
|
# enum GuiDefaultProperty
|
|
75
86
|
# DEFAULT extended properties
|
|
76
|
-
TEXT_SIZE = 16
|
|
77
|
-
TEXT_SPACING = 17
|
|
78
|
-
LINE_COLOR = 18
|
|
79
|
-
BACKGROUND_COLOR = 19
|
|
80
|
-
TEXT_LINE_SPACING = 20
|
|
87
|
+
TEXT_SIZE = 16 # Text size (glyphs max height)
|
|
88
|
+
TEXT_SPACING = 17 # Text spacing between glyphs
|
|
89
|
+
LINE_COLOR = 18 # Line control color
|
|
90
|
+
BACKGROUND_COLOR = 19 # Background color
|
|
91
|
+
TEXT_LINE_SPACING = 20 # Text spacing between lines
|
|
92
|
+
TEXT_ALIGNMENT_VERTICAL = 21 # Text vertical alignment inside text bounds (after border and padding)
|
|
93
|
+
TEXT_WRAP_MODE = 22 # Text wrap-mode inside text bounds
|
|
81
94
|
|
|
82
95
|
# enum GuiToggleProperty
|
|
83
96
|
# Toggle/ToggleGroup
|
|
@@ -94,12 +107,12 @@ module Raylib
|
|
|
94
107
|
|
|
95
108
|
# enum GuiScrollBarProperty
|
|
96
109
|
# ScrollBar
|
|
97
|
-
ARROWS_SIZE = 16
|
|
98
|
-
ARROWS_VISIBLE = 17
|
|
99
|
-
SCROLL_SLIDER_PADDING = 18 #
|
|
100
|
-
SCROLL_SLIDER_SIZE = 19
|
|
101
|
-
SCROLL_PADDING = 20
|
|
102
|
-
SCROLL_SPEED = 21
|
|
110
|
+
ARROWS_SIZE = 16 # ScrollBar arrows size
|
|
111
|
+
ARROWS_VISIBLE = 17 # ScrollBar arrows visible
|
|
112
|
+
SCROLL_SLIDER_PADDING = 18 # ScrollBar slider internal padding
|
|
113
|
+
SCROLL_SLIDER_SIZE = 19 # ScrollBar slider size
|
|
114
|
+
SCROLL_PADDING = 20 # ScrollBar scroll padding from arrows
|
|
115
|
+
SCROLL_SPEED = 21 # ScrollBar scrolling speed
|
|
103
116
|
|
|
104
117
|
# enum GuiCheckBoxProperty
|
|
105
118
|
# CheckBox
|
|
@@ -117,11 +130,7 @@ module Raylib
|
|
|
117
130
|
|
|
118
131
|
# enum GuiTextBoxProperty
|
|
119
132
|
# TextBox/TextBoxMulti/ValueBox/Spinner
|
|
120
|
-
|
|
121
|
-
TEXT_LINES_SPACING = 17 # TextBoxMulti lines separation
|
|
122
|
-
TEXT_ALIGNMENT_VERTICAL = 18 # TextBoxMulti vertical alignment: 0-CENTERED, 1-UP, 2-DOWN
|
|
123
|
-
TEXT_MULTILINE = 19 # TextBox supports multiple lines
|
|
124
|
-
TEXT_WRAP_MODE = 20 # TextBox wrap mode for multiline: 0-NO_WRAP, 1-CHAR_WRAP, 2-WORD_WRAP
|
|
133
|
+
TEXT_READONLY = 16 # TextBox in read-only mode: 0-text editable, 1-text no-editable
|
|
125
134
|
|
|
126
135
|
# enum GuiSpinnerProperty
|
|
127
136
|
# Spinner
|
|
@@ -133,7 +142,7 @@ module Raylib
|
|
|
133
142
|
LIST_ITEMS_HEIGHT = 16 # ListView items height
|
|
134
143
|
LIST_ITEMS_SPACING = 17 # ListView items separation
|
|
135
144
|
SCROLLBAR_WIDTH = 18 # ListView scrollbar size (usually width)
|
|
136
|
-
SCROLLBAR_SIDE = 19 # ListView scrollbar side (0-
|
|
145
|
+
SCROLLBAR_SIDE = 19 # ListView scrollbar side (0-SCROLLBAR_LEFT_SIDE, 1-SCROLLBAR_RIGHT_SIDE)
|
|
137
146
|
|
|
138
147
|
# enum GuiColorPickerProperty
|
|
139
148
|
# ColorPicker
|
|
@@ -407,6 +416,8 @@ module Raylib
|
|
|
407
416
|
|
|
408
417
|
typedef :int, :GuiState
|
|
409
418
|
typedef :int, :GuiTextAlignment
|
|
419
|
+
typedef :int, :GuiTextAlignmentVertical
|
|
420
|
+
typedef :int, :GuiTextWrapMode
|
|
410
421
|
typedef :int, :GuiControl
|
|
411
422
|
typedef :int, :GuiControlProperty
|
|
412
423
|
typedef :int, :GuiDefaultProperty
|
|
@@ -425,12 +436,12 @@ module Raylib
|
|
|
425
436
|
|
|
426
437
|
# Struct
|
|
427
438
|
|
|
428
|
-
#
|
|
439
|
+
# NOTE: Used when exporting style as code for convenience
|
|
429
440
|
class GuiStyleProp < FFI::Struct
|
|
430
441
|
layout(
|
|
431
|
-
:controlId, :ushort,
|
|
432
|
-
:propertyId, :ushort,
|
|
433
|
-
:propertyValue, :
|
|
442
|
+
:controlId, :ushort, # Control identifier
|
|
443
|
+
:propertyId, :ushort, # Property identifier
|
|
444
|
+
:propertyValue, :int, # Property value
|
|
434
445
|
)
|
|
435
446
|
def controlId = self[:controlId]
|
|
436
447
|
def controlId=(v) self[:controlId] = v end
|
|
@@ -471,11 +482,11 @@ module Raylib
|
|
|
471
482
|
# @return [bool]
|
|
472
483
|
[:GuiIsLocked, :GuiIsLocked, [], :bool],
|
|
473
484
|
|
|
474
|
-
# @!method
|
|
475
|
-
#
|
|
485
|
+
# @!method GuiSetAlpha(alpha)
|
|
486
|
+
# GuiSetAlpha : Set gui controls alpha (global state), alpha goes from 0.0f to 1.0f
|
|
476
487
|
# @param alpha [float]
|
|
477
488
|
# @return [void]
|
|
478
|
-
[:
|
|
489
|
+
[:GuiSetAlpha, :GuiSetAlpha, [:float], :void],
|
|
479
490
|
|
|
480
491
|
# @!method GuiSetState(state)
|
|
481
492
|
# GuiSetState : Set gui state (global state)
|
|
@@ -660,6 +671,14 @@ module Raylib
|
|
|
660
671
|
# @return [int]
|
|
661
672
|
[:GuiToggleGroup, :GuiToggleGroup, [Rectangle.by_value, :pointer, :pointer], :int],
|
|
662
673
|
|
|
674
|
+
# @!method GuiToggleSlider(bounds, text, active)
|
|
675
|
+
# GuiToggleSlider : Toggle Slider control, returns true when clicked
|
|
676
|
+
# @param bounds [Rectangle]
|
|
677
|
+
# @param text [const char *]
|
|
678
|
+
# @param active [int *]
|
|
679
|
+
# @return [int]
|
|
680
|
+
[:GuiToggleSlider, :GuiToggleSlider, [Rectangle.by_value, :pointer, :pointer], :int],
|
|
681
|
+
|
|
663
682
|
# @!method GuiCheckBox(bounds, text, checked)
|
|
664
683
|
# GuiCheckBox : Check Box control, returns true when active
|
|
665
684
|
# @param bounds [Rectangle]
|
data/lib/raylib_helper.rb
CHANGED
|
@@ -136,20 +136,32 @@ module Raylib
|
|
|
136
136
|
end
|
|
137
137
|
end
|
|
138
138
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
139
|
+
class BoundingBox
|
|
140
|
+
def self.create(*args)
|
|
141
|
+
case args.size
|
|
142
|
+
when 2
|
|
143
|
+
instance = BoundingBox.new
|
|
144
|
+
instance[:min] = args[0] # min
|
|
145
|
+
instance[:max] = args[1] # max
|
|
146
|
+
instance
|
|
147
|
+
when 6
|
|
148
|
+
instance = BoundingBox.new
|
|
149
|
+
instance[:min] = Vector3.create(args[0], args[1], args[2]) # min_x, min_y, min_z
|
|
150
|
+
instance[:max] = Vector3.create(args[3], args[4], args[5]) # max_x, max_y, max_z
|
|
151
|
+
instance
|
|
152
|
+
else
|
|
153
|
+
raise ArgumentError.new 'BoundingBox.create : Number of arguments must be 2 or 6'
|
|
154
|
+
end
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
def with_min(x, y, z)
|
|
158
|
+
self[:min].set(x, y, z)
|
|
159
|
+
self
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
def with_max(x, y, z)
|
|
163
|
+
self[:max].set(x, y, z)
|
|
164
|
+
self
|
|
153
165
|
end
|
|
154
166
|
end
|
|
155
167
|
|
|
@@ -161,6 +173,59 @@ module Raylib
|
|
|
161
173
|
MatrixToFloatV(mat)[:v].to_a
|
|
162
174
|
end
|
|
163
175
|
|
|
176
|
+
#
|
|
177
|
+
# Camera helper
|
|
178
|
+
#
|
|
179
|
+
|
|
180
|
+
class Camera3D
|
|
181
|
+
def with_position(x, y, z)
|
|
182
|
+
self[:position].set(x, y, z)
|
|
183
|
+
self
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
def with_target(x, y, z)
|
|
187
|
+
self[:target].set(x, y, z)
|
|
188
|
+
self
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
def with_up(x, y, z)
|
|
192
|
+
self[:up].set(x, y, z)
|
|
193
|
+
self
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
def with_fovy(fovy)
|
|
197
|
+
self[:fovy] = fovy
|
|
198
|
+
self
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
def with_projection(projection)
|
|
202
|
+
self[:projection] = projection
|
|
203
|
+
self
|
|
204
|
+
end
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
class Camera2D
|
|
208
|
+
def with_offset(x, y)
|
|
209
|
+
self[:offset].set(x, y)
|
|
210
|
+
self
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
def with_target(x, y)
|
|
214
|
+
self[:target].set(x, y)
|
|
215
|
+
self
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
def with_rotation(rotation)
|
|
219
|
+
self[:rotation] = rotation
|
|
220
|
+
self
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
def with_zoom(zoom)
|
|
224
|
+
self[:zoom] = zoom
|
|
225
|
+
self
|
|
226
|
+
end
|
|
227
|
+
end
|
|
228
|
+
|
|
164
229
|
#
|
|
165
230
|
# Transform helper
|
|
166
231
|
#
|