I am in need of a way to check collision between simple objects (think box, sphere, cone, etc.) at runtime without running an entire physics simulation.
These objects are just proxies used for calculation once and never added to any scene (this makes sense in the context of the project).
The proxies need to be "placed" in a way that none of them collide with each other, hence the need for the collision check.
So far, everything I found about Godot collision leads back to having to run a physics server, in which you might then run queries, get signals, etc.
This is way more than what I need, and also way more complex to setup** than necessary.
AABBs won't work for me since they are only boxes and not rotated (I guess I could use only boxes, but the fixed rotation is a dealbreaker).
** I assume I could somehow use PhysicsServer directly to create a custom area, with custom bodies, with custom shapes... and then run a query via the DirectSpaceState, and finally remove all of that manually again after being used exactly once. But I'm not even sure if that would work instantly or if I'd need to give the PhysicsServer a frame to process, etc. And also, this would very much seem like swatting flies with a sledgehammer.
What I need is something simple along the lines of:
var collisionDetails :Dictionary = {}
someBox3D.collides_with(someSphere3D, collisionDetails)
Unrelated to anything else going on in any scene at runtime, not needing any force/impact/etc information and since those objects only exist for a millisecond, without the need to add them to/remove them from any servers. It would have to be as reduced and fast as possible, basically just 3D maths.
Does something like this exist in Godot or would I have to roll my own, maybe using libccd?
Further explanation:
The reason why I cannot use the normal physics system here is that I need to do hundreds of these calculations in a very short time, as this is a performance critical part of the program. Having to wait for even a short while after "adding" each proxy before checking with another one is not acceptable.