Max Cahill
4cea23e2e8
reworked intersect.lua - accepting that continuous collision is out of scope, reworking docs
2021-07-20 16:20:15 +10:00
Max Cahill
6ef19cfde0
added make_pooled, refactor pooling out of vector classes for easy reuse
2021-07-15 16:15:58 +10:00
Max Cahill
3cc177a0c0
BREAKING class interface refactor - all classes will need a minor update, see class.lua
...
tl;dr is that new no longer needs to call init, calling :new() directly in user code is not allowed, properties are copied, metamethods work, and a config table is needed rather than a class to extend from, so use {extends = superclass} if you want a minimal fix
2021-07-15 16:15:27 +10:00
Max Cahill
e1bb76d419
Note about camelCase
2021-07-13 16:55:32 +10:00
Max Cahill
67264fe7a7
extensive readme work
2021-07-13 16:52:32 +10:00
Max Cahill
b570583e53
move to zlib license
2021-07-13 16:52:26 +10:00
Max Cahill
76ed4b1a02
stringx.apply_template works with $snake_case_symbols
2021-07-13 16:47:19 +10:00
Max Cahill
292345b953
fixed bug in filter_inplace for single element collections
2021-07-06 14:33:41 +10:00
Max Cahill
0691f2bd36
added tablex.random_index
2021-07-06 08:29:45 +10:00
Max Cahill
20aa83f79e
added stringx.contains
2021-07-06 08:29:30 +10:00
Max Cahill
77d954e58a
stringx.split delimiter optional
2021-07-06 08:29:13 +10:00
Max Cahill
65d06d01f6
fixed pretty default config getting modified by parameters
2021-07-05 16:20:03 +10:00
Max Cahill
67019de5b5
made pretty module default config and doc comments consistent order
2021-07-05 16:18:03 +10:00
Max Cahill
3c5455d616
added pretty
module to readme
2021-07-05 16:13:45 +10:00
Max Cahill
e726f19a5e
added pretty module with pretty.print and pretty.string
...
breaking: string.pretty still exists but takes new config argument
2021-07-05 16:12:16 +10:00
Max Cahill
b44b92a32d
refactored state machine to be clear about which variables and parameters are state tables, and which are name strings
...
breaking - changed some property and function names
fixes #16
2021-07-05 14:53:55 +10:00
Max Cahill
1de942daa8
Use luajit table.clear properly
...
Fixes #25
2021-06-29 14:46:40 +10:00
Max Cahill
a2c7800290
Note about branchless or abs-based mathx.sign
2021-06-29 14:44:09 +10:00
Max Cahill
fe135c533b
More pooled storage for intersect.lua
2021-06-29 14:43:55 +10:00
Max Cahill
009beadc68
Updated performance note on functional.lua
2021-06-25 13:31:33 +10:00
Max Cahill
af919da379
Fixed intersect.lua line functions not all working properly with un-exported batteries
2021-06-17 11:29:14 +10:00
Max Cahill
9b95643e6e
Added tablex.swap_and_pop
2021-06-09 19:49:04 +10:00
Max Cahill
0bc9ccb17b
Merge branch 'feature/minmax-vector-ops-and-aabb-collisions'
2021-06-08 11:53:09 +10:00
Max Cahill
a92a0c0351
Reworked aabb vs point and circle methods
2021-06-08 11:51:18 +10:00
Max Cahill
99c496df24
Added maxcomp and mincomp and specified major/minor to always mask an axis - removed farthest and closest because they were under-specified as a result (and questionable utility)
2021-06-08 11:50:54 +10:00
Max Cahill
a73a44f424
Added vec2:signi and vec2:sign to get the sign of each component
2021-06-08 11:49:29 +10:00
Max Cahill
bcd94c134e
Added vec2 support for multiple concurrent release to pool
2021-06-08 11:48:58 +10:00
Max Cahill
2128a38702
Merge pull request #24 from emdete/master
...
fix super_call to call in the next higher class
2021-06-08 09:56:35 +10:00
M. Dietrich
a4e677466a
fix super_call to call in the next higher class
2021-06-07 16:44:39 +02:00
Max Cahill
b3bae9b0f2
Merge pull request #23 from monolifed/patch-1
...
rgb to hsl
2021-06-06 20:04:50 +10:00
monolifed
e9687d763f
rgb to hsl
2021-06-06 09:00:43 +03:00
Max Cahill
7e467b279f
[added] more vec2 angle functions
2021-05-23 20:43:51 +10:00
Max Cahill
c1a4e6898a
Merge pull request #22 from DUznanski/shuffle-fix
...
Fix shuffle to avoid bias
2021-05-21 09:14:01 +10:00
DUznanski
2846de2ea3
Fix shuffle to avoid bias
...
There's a subtle trick in shuffling: you should draw only from the part of the deck you have not seen! Otherwise, some permutations are more common than others.
2021-05-20 12:33:52 -07:00
Max Cahill
2d06ec7b9c
[fixed] intersect.line_circle_overlap
bug
2021-05-13 16:13:30 +10:00
Max Cahill
6fae516630
[added] :ipairs method for sequence, for convenient inline chaining - should consider making it the __call metamethod probably
2021-05-13 15:03:06 +10:00
Max Cahill
80c44f3436
[added] intersect.line_circle_overlap
for checking boolean overlap circles vs lines
2021-05-13 12:24:45 +10:00
Max Cahill
af961ab2b8
[added] intersect.balance_from_mass
which gets a normalised balance factor from two mass inputs, and treats <=0 or infinite or nil masses as static bodies
2021-05-11 15:47:48 +10:00
Max Cahill
a397d3d7f8
Merge remote-tracking branch 'origin/master'
2021-05-11 11:00:10 +10:00
Max Cahill
f343c1c0b7
[modified] optimised table.insert_sorted
and made it _actually_ insert at the back of the range instead of at the first equal found position (not always the same)
2021-05-11 10:59:59 +10:00
Aweptimum
b5d3707939
Added aabb_circle_collide routine, modify aabb_point_collide
...
If circle center within aabb, calls aabb_point collide. Then, adds to the msv the difference between the closest point on the aabb to the circle and the closest point on circle to closest point on the aabb.
It failed when the circle center was exactly on the aabb edges, so COLLIDE_EPS was added to the apo_normal in aabb_point_collide to force the point off the edge. As such, the "nudge" section was removed. This should definitely be reviewed.
2021-05-10 12:29:37 -04:00
Aweptimum
06ca04bde7
Added aabb_circle_overlap
...
When the distance between the circle's center and the closest point on the aabb is less than the circle radius, returns true.
2021-05-10 11:55:51 -04:00
Aweptimum
bfee65762e
Added helper function for aabb_circle routines
...
Clamps point coords to the dimensions of an aabb to get the nearest point on the aabb. Returns two integers to avoid garbage.
2021-05-10 11:55:00 -04:00
Aweptimum
9d1e563796
Added aabb_point_collide()
...
Pushes point out along minimum axis. Nudges it out with COLLIDE_EPS added to the msv.
2021-05-10 11:53:40 -04:00
Aweptimum
bc014db183
Added min/max ops to vec2
...
major/minor return the component with the max/min value.
farthest/closest return the component with the max/min magnitude
2021-05-10 11:52:08 -04:00
Max Cahill
89ecd4258e
Merge remote-tracking branch 'origin/master'
...
# Conflicts:
# tablex.lua
2021-05-04 21:07:35 +10:00
Max Cahill
5cd33398a5
[added] tablex.swap
2021-05-04 20:52:47 +10:00
Max Cahill
d9da4749e2
[added] some randomness helper functions to mathx
2021-05-04 11:41:22 +10:00
Max Cahill
7c975e8c4a
[removed] prime stuff from mathx; hard to justify the filesize
2021-05-04 11:40:20 +10:00
Max Cahill
bc7754ae0b
[modified] minor refactor of how tablex.clear
is or isn't initialised as needed
2021-05-04 10:38:31 +10:00