mirror of
https://github.com/MihailRis/voxelcore.git
synced 2026-10-04 10:31:50 +00:00
Merge branch 'main' into animation
This commit is contained in:
commit
1186011dcf
23 changed files with 346 additions and 119 deletions
|
|
@ -192,12 +192,12 @@ An array of 6 numbers describing an offset an size of a block hitbox.
|
|||
The numbers are specified in the range [0.0, 1.0] - i.e. within the block (in the case of an extended block, the hitbox can be larger than one, but must not go beyond the "size" property).
|
||||
|
||||
Array *\[0.25, 0.0, 0.5, 0.75, 0.4, 0.3\]* describes hitbox width:
|
||||
- offset 0.25m east
|
||||
- offset 0.25m west
|
||||
- offset 0.0m up
|
||||
- offset 0.5m north
|
||||
- 0.75m width (from east to west)
|
||||
- offset 0.5m south
|
||||
- 0.75m width (from west to east)
|
||||
- 0.4m height
|
||||
- 0.3m length (from south to north)
|
||||
- 0.3m length (from north to south)
|
||||
|
||||
For composite hitboxes, the *hitboxes* property is used - an array of hitboxes, for example:
|
||||
|
||||
|
|
|
|||
|
|
@ -2,14 +2,36 @@
|
|||
|
||||
Quaternions manipulation library.
|
||||
|
||||
## Quaternion from matrix - *mat4.from_quat(...)*
|
||||
Quaternions can be created as a table of 4 numbers:
|
||||
`{w, x, y, z}`
|
||||
|
||||
## Quaternion from matrix - *quat.from_mat4(...)*
|
||||
|
||||
```lua
|
||||
-- creates a quaternion based on the rotation matrix
|
||||
quat.from_mat4(m: matrix)
|
||||
quat.from_mat4(m: matrix, [optional] dst: quat) -> quat
|
||||
```
|
||||
|
||||
-- writes a quaternion from the rotation matrix to dst
|
||||
quat.from_mat4(m: matrix, dst: quat)
|
||||
## Quaternion of Euler angles - *quat.from_euler(...)*
|
||||
|
||||
```lua
|
||||
-- creates quaternion from euler angles passed as XYZ (pitch, yaw, roll)
|
||||
-- angles in degrees
|
||||
quat.from_euler(euler: vec3, [optional] dst: quat) -> quat
|
||||
```
|
||||
|
||||
## Quaternion composition - quat.mul(...)
|
||||
|
||||
```lua
|
||||
-- multiplies quaternions
|
||||
quat.mul(a: quat, b: quat, [optional] dst: quat) -> quat
|
||||
```
|
||||
|
||||
## 3D vector rotation - quat.mul_vec3(...)
|
||||
|
||||
```lua
|
||||
-- rotates vector by quaternion
|
||||
quat.mul_vec3(a: quat, b: vec3, [optional] dst: vec3) -> vec3
|
||||
```
|
||||
|
||||
## Spherical linear interpolation - *quat.slerp(...)*
|
||||
|
|
@ -19,16 +41,12 @@ The interpolation always take the short path and the rotation is performed at co
|
|||
```lua
|
||||
-- creates a quaternion as an interpolation between a and b,
|
||||
-- where t is interpolation factor
|
||||
quat.slerp(a: quat, b: quat, t: number)
|
||||
|
||||
-- writes a quaternion as an interpolation between a and b to dst,
|
||||
-- where t is interpolation factor
|
||||
quat.slerp(a: quat, b: quat, t: number, dst: quat)
|
||||
quat.slerp(a: quat, b: quat, t: number, [optional] dst: quat) -> quat
|
||||
```
|
||||
|
||||
## Casting to string - *quat.tostring(...)*
|
||||
|
||||
```lua
|
||||
-- returns a string representing the contents of the quaternion
|
||||
quat.tostring(q: quat)
|
||||
quat.tostring(q: quat) -> string
|
||||
```
|
||||
|
|
|
|||
|
|
@ -194,12 +194,12 @@
|
|||
Числа указываются в диапазоне [0.0, 1.0] - т.е в пределах блока (в случае расширенного блока хитбокс может быть больше единицы, но не должен выходить за пределы size).
|
||||
|
||||
Массив `[0.25, 0.0, 0.5, 0.75, 0.4, 0.3]` описывает хитбокс:
|
||||
- смещен на 0.25 м на запад
|
||||
- смещен на 0.25 м на восток
|
||||
- смещен на 0.0 м вверх
|
||||
- смещен на 0.5 м на север
|
||||
- шириной (с востока на запад) 0.75 м
|
||||
- смещен на 0.5 м на юг
|
||||
- шириной (с запада на восток) 0.75 м
|
||||
- высотой 0.4 м
|
||||
- длиной (с юга на север) 0.3 м
|
||||
- длиной (с севера на юг) 0.3 м
|
||||
|
||||
Для составных хитбоксов используется свойство *hitboxes* - массив хитбоксов, например:
|
||||
|
||||
|
|
|
|||
|
|
@ -2,14 +2,14 @@
|
|||
|
||||
Библиотека для работы с кватернионами.
|
||||
|
||||
Кватернионы задаюся таблицей, состоящей из 4 компонентов:
|
||||
`{w, x, y, z}`
|
||||
|
||||
## Кватернион из матрицы - *quat.from_mat4(...)*
|
||||
|
||||
```lua
|
||||
-- создаёт кватернион на основе матрицы вращения
|
||||
quat.from_mat4(m: matrix) -> quat
|
||||
|
||||
-- записывает кватернион по матрице вращения в dst
|
||||
quat.from_mat4(m: matrix, dst: quat)
|
||||
quat.from_mat4(m: matrix, [опционально] dst: quat) -> quat
|
||||
```
|
||||
|
||||
## Кватернион из углов Эйлера - *quat.from_euler(...)*
|
||||
|
|
@ -17,11 +17,21 @@ quat.from_mat4(m: matrix, dst: quat)
|
|||
```lua
|
||||
-- создаёт кватернион на основе вектора, содержащего углы Эйлера в порядке XYZ (pitch, yaw, roll)
|
||||
-- (значения углов строго в градусах)
|
||||
quat.from_euler(euler: vec3) -> quat
|
||||
quat.from_euler(euler: vec3, [опционально] dst: quat) -> quat
|
||||
```
|
||||
|
||||
-- записывает кватернион в dst на основе вектора, содержащего углы Эйлера в порядке XYZ (pitch, yaw, roll)
|
||||
-- (значения углов строго в градусах)
|
||||
quat.from_euler(euler: vec3, dst: quat)
|
||||
## Композиция кватернионов - quat.mul(...)
|
||||
|
||||
```lua
|
||||
-- Умножает два кватерниона (композиция поворотов)
|
||||
quat.mul(a: quat, b: quat, [опционально] dst: quat) -> quat
|
||||
```
|
||||
|
||||
## Поворот 3д вектора на кватернион - quat.mul_vec3(...)
|
||||
|
||||
```lua
|
||||
-- Поворачивает вектор на заданный кватернион
|
||||
quat.mul_vec3(a: quat, b: vec3, [опционально] dst: vec3) -> vec3
|
||||
```
|
||||
|
||||
## Сферическая линейная интерполяция - *quat.slerp(...)*
|
||||
|
|
@ -31,11 +41,7 @@ quat.from_euler(euler: vec3, dst: quat)
|
|||
```lua
|
||||
-- создаёт кватернион как интерполяцию между a и b,
|
||||
-- где t - фактор интерполяции
|
||||
quat.slerp(a: quat, b: quat, t: number) -> quat
|
||||
|
||||
-- записывает кватернион как интерполяцию между a и b в dst,
|
||||
-- где t - фактор интерполяции
|
||||
quat.slerp(a: quat, b: quat, t: number, dst: quat)
|
||||
quat.slerp(a: quat, b: quat, t: number, [опционально] dst: quat) -> quat
|
||||
```
|
||||
|
||||
## Перевод в строку - *quat.tostring(...)*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue