Tramway SDK
api.h
Go to the documentation of this file.
1// Tramway Drifting and Dungeon Exploration Simulator SDK Runtime
2
3#ifndef TRAM_SDK_PHYSICS_API_H
4#define TRAM_SDK_PHYSICS_API_H
5
6#include <physics/physics.h>
8
15namespace tram::Physics::API {
16
21};
22
26 float distance;
27};
28
29typedef std::pair<vec3, quat>(*get_trf_callback)(void*);
30typedef void(*set_trf_callback)(void*, std::pair<vec3, quat>);
31typedef void(*col_callback)(void*, void*, ObjectCollision);
32
36
37rigidbody_t MakeRigidbody(collisionshape_t shape, float mass, vec3 position, quat rotation, uint32_t mask, uint32_t group, get_trf_callback get_callback, set_trf_callback set_callback, void* data);
38void YeetRigidbody(rigidbody_t rigidbody);
39void SetRigidbodyTransformCallback(rigidbody_t rigidbody, get_trf_callback get_callback, set_trf_callback set_callback, void* data);
40void SetRigidbodyCollisionCallback(rigidbody_t rigidbody, col_callback callback, void* data);
41void SetRigidbodyCollisionMask(rigidbody_t rigidbody, uint32_t mask);
42void SetRigidbodyCollisionGroup(rigidbody_t rigidbody, uint32_t group);
43void SetRigidbodyLocation(rigidbody_t rigidbody, vec3 location);
44void SetRigidbodyRotation(rigidbody_t rigidbody, quat rotation);
45void SetRigidbodyMass(rigidbody_t rigidbody, float mass);
46void PushRigidbody(rigidbody_t rigidbody, vec3 direction);
47void PushRigidbody(rigidbody_t rigidbody, vec3 direction, vec3 local);
48void SpinRigidbody(rigidbody_t rigidbody, vec3 direction);
49void SetRigidbodyDebugDrawing(rigidbody_t rigidbody, bool drawing);
50void SetRigidbodyKinematic(rigidbody_t rigidbody, bool kinematic);
51void SetRigidbodyAngularFactor(rigidbody_t rigidbody, vec3 factor);
52void SetRigidbodyLinearFactor(rigidbody_t rigidbody, vec3 factor);
53void SetRigidbodyVelocity(rigidbody_t rigidbody, vec3 velocity);
55void AwakenRigidbody(rigidbody_t rigidbody);
56void SleepRigidbody(rigidbody_t rigidbody);
58
59trigger_t MakeTrigger(collisionshape_t shape, uint32_t mask, uint32_t group, vec3 position, quat rotation);
61void SetTriggerCollisionCallback(trigger_t rigidbody, col_callback callback, void* data);
62void SetTriggerCollisionMask(trigger_t rigidbody, uint32_t mask);
63void SetTriggerCollisionGroup(trigger_t rigidbody, uint32_t group);
64void SetTriggerLocation(trigger_t rigidbody, vec3 location);
65void SetTriggerRotation(trigger_t rigidbody, quat location);
66
67std::pair<ObjectCollision, void*> Raycast(vec3 from, vec3 to, uint32_t collision_mask);
68std::vector<std::pair<ObjectCollision, void*>> Shapecast(CollisionShape shape, vec3 from, vec3 to, uint32_t collision_mask);
69
70void Init();
71void StepPhysics();
72void DrawDebug();
73void DrawDebug(bool);
74
75}
76
77#endif // TRAM_SDK_PHYSICS_API_H
Physics backend API.
void SetRigidbodyTransformCallback(rigidbody_t rigidbody, get_trf_callback get_callback, set_trf_callback set_callback, void *data)
void AwakenRigidbody(rigidbody_t rigidbody)
Definition: bullet.cpp:321
void StepPhysics()
Definition: bullet.cpp:514
void DrawDebug()
Definition: bullet.cpp:577
void SetRigidbodyCollisionGroup(rigidbody_t rigidbody, uint32_t group)
Definition: bullet.cpp:240
vec3 GetRigidbodyVelocity(rigidbody_t rigidbody)
Definition: bullet.cpp:316
trigger_t MakeTrigger(collisionshape_t shape, uint32_t mask, uint32_t group, vec3 position, quat rotation)
Definition: bullet.cpp:333
std::pair< vec3, quat >(* get_trf_callback)(void *)
Definition: api.h:29
void SetRigidbodyRotation(rigidbody_t rigidbody, quat rotation)
Definition: bullet.cpp:252
void SpinRigidbody(rigidbody_t rigidbody, vec3 direction)
Definition: bullet.cpp:272
void SetRigidbodyLinearFactor(rigidbody_t rigidbody, vec3 factor)
Definition: bullet.cpp:301
void YeetCollisionShape(collisionshape_t shape)
Definition: bullet.cpp:185
void SleepRigidbody(rigidbody_t rigidbody)
Definition: bullet.cpp:325
void DisableRigidbodyDeactivation(rigidbody_t rigidbody)
Definition: bullet.cpp:329
void Init()
Definition: bullet.cpp:486
rigidbody_t MakeRigidbody(collisionshape_t shape, float mass, vec3 position, quat rotation, uint32_t mask, uint32_t group, get_trf_callback get_callback, set_trf_callback set_callback, void *data)
Definition: bullet.cpp:190
void SetRigidbodyMass(rigidbody_t rigidbody, float mass)
Definition: bullet.cpp:258
void SetRigidbodyKinematic(rigidbody_t rigidbody, bool kinematic)
Definition: bullet.cpp:287
void SetRigidbodyCollisionMask(rigidbody_t rigidbody, uint32_t mask)
Definition: bullet.cpp:234
void YeetRigidbody(rigidbody_t rigidbody)
Definition: bullet.cpp:218
void SetTriggerLocation(trigger_t rigidbody, vec3 location)
Definition: bullet.cpp:390
void PushRigidbody(rigidbody_t rigidbody, vec3 direction)
Definition: bullet.cpp:262
void SetRigidbodyAngularFactor(rigidbody_t rigidbody, vec3 factor)
Definition: bullet.cpp:297
void(* set_trf_callback)(void *, std::pair< vec3, quat >)
Definition: api.h:30
void SetTriggerCollisionCallback(trigger_t rigidbody, col_callback callback, void *data)
Definition: bullet.cpp:373
void SetRigidbodyDebugDrawing(rigidbody_t rigidbody, bool drawing)
Definition: bullet.cpp:277
collisionshape_t MakeCollisionShape(CollisionShapeTransform *shapes, size_t shape_count)
Definition: bullet.cpp:156
void SetTriggerCollisionMask(trigger_t rigidbody, uint32_t mask)
Definition: bullet.cpp:378
void SetRigidbodyCollisionCallback(rigidbody_t rigidbody, col_callback callback, void *data)
Definition: bullet.cpp:229
void YeetTrigger(trigger_t)
Definition: bullet.cpp:368
std::pair< ObjectCollision, void * > Raycast(vec3 from, vec3 to, uint32_t collision_mask)
Definition: bullet.cpp:402
void SetRigidbodyLocation(rigidbody_t rigidbody, vec3 location)
Definition: bullet.cpp:246
void(* col_callback)(void *, void *, ObjectCollision)
Definition: api.h:31
void SetTriggerRotation(trigger_t rigidbody, quat location)
Definition: bullet.cpp:396
void SetRigidbodyVelocity(rigidbody_t rigidbody, vec3 velocity)
Definition: bullet.cpp:305
std::vector< std::pair< ObjectCollision, void * > > Shapecast(CollisionShape shape, vec3 from, vec3 to, uint32_t collision_mask)
Definition: bullet.cpp:459
void SetTriggerCollisionGroup(trigger_t rigidbody, uint32_t group)
Definition: bullet.cpp:384
glm::vec3 vec3
Definition: math.h:11
glm::quat quat
Definition: math.h:12
CollisionShape shape
Definition: api.h:18
vec3 point
Definition: api.h:24
vec3 normal
Definition: api.h:25
float distance
Definition: api.h:26
Shape for a collider.
Definition: collisionshape.h:32
Definition: physics.h:43
Definition: physics.h:52
Definition: physics.h:47