Tramway SDK
|
Serialization, i.e. More...
Namespaces | |
namespace | Async |
Multi-threading and Resource streaming. | |
namespace | Audio |
System for doing audio related stuff. | |
namespace | Core |
namespace | Ext |
namespace | GUI |
Immediate mode GUI system. | |
namespace | implementation |
namespace | Language |
Localization services. | |
namespace | Loader |
WorldCell streaming. | |
namespace | Physics |
namespace | Platform |
namespace | Render |
High-level Render system API. | |
namespace | Script |
Scripting API. | |
namespace | ScriptableType |
namespace | Settings |
Application setting management and CLI command parser. | |
namespace | Stats |
Resource usage statistics. | |
namespace | System |
System tracking. | |
namespace | UI |
User interface system. | |
Classes | |
class | AABBTree |
class | AnimationComponent |
Plays back Animations. More... | |
class | AudioComponent |
Plays back Sounds. More... | |
class | Component |
Wrapper for an EntityComponent pointer. More... | |
class | ControllerComponent |
Provides an API for character controllers. More... | |
class | Crate |
3D Model with a rigidbody attached to it. More... | |
class | Decoration |
3D Model with an AnimationComponent attached to it. More... | |
class | DiskReader |
class | DiskWriter |
struct | Edge |
class | Entity |
Entity base class. More... | |
class | EntityComponent |
Component base class. More... | |
struct | EntityTypeInfo |
struct | Event |
Event data. More... | |
class | EventListener |
Smart wrapper class for Event listeners. More... | |
struct | File |
Very fast file reader/writer. More... | |
class | FileReader |
class | FileReaderParser |
struct | FileSource |
class | FileWriter |
class | FileWriterParser |
class | FPSControllerComponent |
Implementation of an FPS-style character controller. More... | |
class | Graph |
class | Hashmap |
class | Light |
LightComponent wrapper. More... | |
class | LightComponent |
Provides a real-time illumination for the scene. More... | |
struct | ListenerInfo |
class | Marker |
Functionally inert. More... | |
struct | Message |
Message data. More... | |
class | Navmesh |
Not fully implemented yet. More... | |
struct | NavmeshNode |
struct | Node |
class | Octree |
class | ParticleComponent |
Provides amusing graphical effects. More... | |
class | Path |
Base class for graphs. More... | |
struct | PathEdgeInfo |
class | PathFollower |
Point constrained to a Path. More... | |
class | PhysicsComponent |
Rigidbody wrapper. More... | |
class | Player |
ControllerComponent with a PlayerComponent attached to it. More... | |
class | PlayerComponent |
Translates keyboard/mouse inputs into inputs for ControllerComponent. More... | |
class | Pool |
class | PoolProxy |
class | PoolPtr |
class | Queue |
Simple queue implementation. More... | |
class | RaycastControllerComponent |
Implementation of a simple character controller. More... | |
class | RenderComponent |
Renders a Model. More... | |
class | Resource |
class | ResourceProxy |
class | Scriptable |
Provides script language subclassing. More... | |
struct | SharedEntityData |
Basic Entity parameters. More... | |
struct | Signal |
Message template. More... | |
class | SignalTable |
List of Message templates. More... | |
class | Sound |
AudioComponent wrapper. More... | |
class | Spinlock |
class | SpriteComponent |
Provides amusing graphical effects. More... | |
class | Stack |
class | StackPool |
Allocator. More... | |
class | StaticWorldObject |
Worldspawn. More... | |
class | TemplateComponent |
class | TextReaderParser |
class | TextWriterParser |
class | Transition |
Connects WorldCells together. More... | |
class | Trigger |
TriggerComponent wrapper. More... | |
class | TriggerComponent |
Trigger wrapper. More... | |
struct | UID |
Interned string type. More... | |
class | Value |
Generic, type-safe union. More... | |
class | ValueArray |
class | ValuePtr |
struct | WorldCell |
World streaming unit. More... | |
Typedefs | |
typedef void(* | collision_callback) (TriggerComponent *, Physics::Collision) |
typedef bool(* | filter_callback) (TriggerComponent *, PhysicsComponent *) |
typedef uint32_t | id_t |
typedef Entity *(* | entity_make) (const SharedEntityData &, const ValueArray &) |
typedef void(* | entity_clear) (Entity *) |
typedef uint16_t | event_t |
typedef uint32_t | listener_t |
typedef Value | value_t |
typedef glm::vec3 | vec3 |
typedef glm::quat | quat |
typedef glm::mat2 | mat2 |
typedef glm::mat4 | mat4 |
typedef glm::vec4 | vec4 |
typedef glm::vec2 | vec2 |
typedef glm::ivec3 | ivec3 |
typedef glm::ivec4 | ivec4 |
typedef glm::uvec3 | uvec3 |
typedef glm::uvec4 | uvec4 |
typedef uint32_t | message_t |
typedef uint32_t | node_id_t |
typedef uint32_t | signal_t |
typedef UID | name_t |
typedef ValueArray | valuearray_t |
template<typename T > | |
using | PoopProxy = PoolProxy< T > |
Enumerations | |
enum | { FIELD_MODEL , FIELD_COLLMODEL } |
enum | : uint32_t { FLAG_LOCKED = 1 } |
enum | { FIELD_FLAGS , FIELD_MODEL , FIELD_ANIMATION } |
enum | { FIELD_COLOR , FIELD_DISTANCE , FIELD_DIRECTION , FIELD_EXPONENT } |
enum | { SOUND_LOOPING = 1 , SOUND_START_ON_LOAD = 2 } |
enum | { FIELD_FLAGS , FIELD_SOUND , FIELD_VOLUME } |
enum | { FIELD_MODEL , FIELD_LIGHTMAP } |
enum | : uint32_t { TRIGGER_DISABLED = 1 } |
enum | { FIELD_FLAGS , FIELD_COLLISION_MASK , FIELD_MODEL } |
enum class | Severity { INFO , WARNING , ERROR , CRITICAL_ERROR , DEFAULT } |
enum | PathType { PATH_STRAIGHT , PATH_LEFT , PATH_RIGHT , PATH_LINEAR , PATH_CURVE } |
enum | Type : uint32_t { TYPE_UNDEFINED , TYPE_BOOL , TYPE_NAME , TYPE_STRING , TYPE_INT8 , TYPE_INT16 , TYPE_INT32 , TYPE_UINT8 , TYPE_UINT16 , TYPE_UINT32 , TYPE_FLOAT32 , TYPE_VEC2 , TYPE_VEC3 , TYPE_VEC4 , TYPE_QUAT } |
Type enumeration for serialization, etc. More... | |
enum class | FileStatus { IO_ERROR , READY } |
enum class | FileMedium { DISK , USER , ARCHIVE , HTTP } |
Functions | |
id_t | GenerateID () |
Generates a unique ID number. More... | |
uint32_t | GetTick () |
Returns the current tick. More... | |
uint32_t | GetFrame () |
Returns the current frame. More... | |
uint32_t | GetDeltaTick () |
Returns the tick delta. More... | |
double | GetTickTime () |
Same as GetFrameTime() More... | |
double | GetFrameTime () |
Returns the time at the start of the current frame. More... | |
float | GetDeltaTime () |
Returns the time passed between frames. More... | |
const char * | GetVersion () |
Returns the version identifier of the runtime. More... | |
void | SetSystemLoggingSeverity (System::system_t system, Severity min_severity) |
Sets the logging severity filter. More... | |
void | SetDisplayLogCallback (void(*callback)(int, const char *)) |
Sets the display log callback. More... | |
void | SetConsoleLogCallback (void(*callback)(int, const char *)) |
Sets the console log callback. More... | |
void | SetDisplayLogCallback (void(int, const char *)) |
void | SetConsoleLogCallback (void(int, const char *)) |
template<typename... Args> | |
void | Log (Severity severity, System::system_t system, const std::string_view &format, Args &&... args) |
template<typename... Args> | |
void | Log (System::system_t system, const std::string_view &format, Args &&... args) |
template<typename... Args> | |
void | Log (const std::string_view &format, Args &&... args) |
template<typename... Args> | |
void | DisplayLog (int time, const std::string_view &format, Args &&... args) |
void | QuatLookAt (quat &quaternion, const vec3 &from, const vec3 &to) |
Rotates a quaternion to face a point. More... | |
void | ProjectLine (vec3 &point, const vec3 &from, const vec3 &to) |
Projects a point on a line. More... | |
vec3 | RayTriangleIntersection (vec3 ray_pos, vec3 ray_dir, vec3 point1, vec3 point2, vec3 point3) |
Finds the intersection between a ray and a triangle. More... | |
vec3 | MergeAABBMin (vec3 a, vec3 b) |
Merges the min component of an AABB. More... | |
vec3 | MergeAABBMax (vec3 a, vec3 b) |
Merges the max component of an AABB. More... | |
void | RotateAABB (vec3 &min, vec3 &max, quat rotation) |
Rotates an AABB box by the given rotation. More... | |
void | RotateAABB (vec3 &min, vec3 &max, mat4 rotation) |
mat4 | PositionRotationToMatrix (const vec3 &position, const quat &rotation) |
Generates a transform matrix. More... | |
mat4 | PositionRotationScaleToMatrix (const vec3 &position, const quat &rotation, const vec3 &scale) |
Generates a transform matrix. More... | |
const vec3 | DIRECTION_FORWARD (0.0f, 0.0f, -1.0f) |
const vec3 | DIRECTION_SIDE (1.0f, 0.0f, 0.0f) |
const vec3 | DIRECTION_UP (0.0f, 1.0f, 0.0f) |
const vec3 | IDENTITY_POSITION (0.0f, 0.0f, 0.0f) |
const quat | IDENTITY_ROTATION (1.0f, 0.0f, 0.0f, 0.0f) |
const vec3 | IDENTITY_SCALE (1.0f, 1.0f, 1.0f) |
const char * | TypeToString (Type type) |
Converts type enum to string. More... | |
Variables | |
const uint32_t | MAX_MATERIAL_TYPES = 20 |
const uint32_t | MAX_VERTEX_FORMATS = 20 |
const uint32_t | MAX_VERTEX_SHADERS = 20 |
const uint32_t | MAX_FRAGMENT_SHADERS = 20 |
const uint32_t | MAX_LINKED_SHADERS = 40 |
const float | TICK_RATE = 1.0f / 60.0f |
const float | CAMERA_MULTIPLIER = 1.0f / 8.0f |
const float | PHYSICS_GROUND_PLANE = -9.0f |
const float | PHYSICS_GRAVITY = -9.8f |
const uint32_t | RESOURCE_LIMIT_SOUND = 100 |
const uint32_t | RESOURCE_LIMIT_MODEL = 100 |
const uint32_t | RESOURCE_LIMIT_PATH = 100 |
const uint32_t | RESOURCE_LIMIT_COLLISION_MODEL = 500 |
const uint32_t | RESOURCE_LIMIT_MATERIAL = 500 |
const uint32_t | RESOURCE_LIMIT_SPRITE = 500 |
const uint32_t | COMPONENT_LIMIT_ANIMATION = 50 |
const uint32_t | COMPONENT_LIMIT_AUDIO = 150 |
const uint32_t | COMPONENT_LIMIT_CONTROLLER = 25 |
const uint32_t | COMPONENT_LIMIT_LIGHT = 250 |
const uint32_t | COMPONENT_LIMIT_PARTICLE = 100 |
const uint32_t | COMPONENT_LIMIT_PHYSICS = 500 |
const uint32_t | COMPONENT_LIMIT_PLAYER = 5 |
const uint32_t | COMPONENT_LIMIT_RENDER = 1000 |
const uint32_t | COMPONENT_LIMIT_SPRITE = 100 |
const uint32_t | COMPONENT_LIMIT_TRIGGER = 50 |
const size_t | PATH_LIMIT = 200 |
const size_t | SYSTEM_LIMIT = 128 |
const uint32_t | SCRIPTABLE_ENTITY_TYPE_LIMIT = 50 |
const uint32_t | ENTITY_TYPE_LIMIT = 50 |
const uint32_t | RESOURCE_LOADER_QUEUE_LIMIT = 1000 |
const uint32_t | RESOURCE_LOADER_REQUEST_LIMIT = 1750 |
const uint32_t | ENTITY_LIMIT = 5000 |
const uint32_t | NAMED_ENTITY_LIMIT = 500 |
const uint32_t | LANUGAGE_STRING_CHARACTER_LIMIT = 10000 |
const uint32_t | LANGUAGE_STRING_LIMIT = 500 |
const uint32_t | MESSAGE_QUEUE_LIMIT = 500 |
const uint32_t | MESSAGE_PRIORITY_QUEUE_LIMIT = 250 |
const uint32_t | MESSAGE_DATA_LIMIT = 2000 |
const uint32_t | MESSAGE_TYPE_LIMIT = 100 |
const uint32_t | SIGNAL_TYPE_LIMIT = 100 |
const uint32_t | WORLDCELL_TRANSITION_LIMIT = 250 |
const uint32_t | KEYBOARDACTION_LIMIT = 100 |
const uint32_t | UID_CHARACTER_LIMIT = 20000 |
const uint32_t | UID_LIMIT = 2000 |
const uint32_t | WORLDCELL_LIMIT = 250 |
const uint32_t | RIGIDBODY_LIMIT = 500 |
const uint32_t | EXT_KITCHENSINK_ANIMATIONTABLE_LIMIT = 100 |
const uint32_t | EXT_KITCHENSINK_SOUNDTABLE_LIMIT = 100 |
const float | collision_width = 0.35f |
const float | collision_height = 1.85f |
const float | collision_height_crouch = 0.5f |
const uint32_t | collision_group = Physics::COLL_PLAYER |
const size_t | MAX_EVENT_TYPES = 100 |
Serialization, i.e.
saving application state is not implemented yet.
I will probably get around to it sometime.
typedef void(* tram::collision_callback) (TriggerComponent *, Physics::Collision) |
typedef void(* tram::entity_clear) (Entity *) |
typedef Entity *(* tram::entity_make) (const SharedEntityData &, const ValueArray &) |
typedef uint16_t tram::event_t |
typedef bool(* tram::filter_callback) (TriggerComponent *, PhysicsComponent *) |
typedef uint32_t tram::id_t |
typedef glm::ivec3 tram::ivec3 |
typedef glm::ivec4 tram::ivec4 |
typedef uint32_t tram::listener_t |
typedef glm::mat2 tram::mat2 |
typedef glm::mat4 tram::mat4 |
typedef uint32_t tram::message_t |
typedef UID tram::name_t |
typedef uint32_t tram::node_id_t |
using tram::PoopProxy = typedef PoolProxy<T> |
typedef glm::quat tram::quat |
typedef uint32_t tram::signal_t |
typedef glm::uvec3 tram::uvec3 |
typedef glm::uvec4 tram::uvec4 |
typedef Value tram::value_t |
typedef ValueArray tram::valuearray_t |
typedef glm::vec2 tram::vec2 |
typedef glm::vec3 tram::vec3 |
typedef glm::vec4 tram::vec4 |
|
strong |
|
strong |
enum tram::PathType |
|
strong |
enum tram::Type : uint32_t |
const vec3 tram::DIRECTION_FORWARD | ( | 0. | 0f, |
0. | 0f, | ||
-1. | 0f | ||
) |
const vec3 tram::DIRECTION_SIDE | ( | 1. | 0f, |
0. | 0f, | ||
0. | 0f | ||
) |
const vec3 tram::DIRECTION_UP | ( | 0. | 0f, |
1. | 0f, | ||
0. | 0f | ||
) |
void tram::DisplayLog | ( | int | time, |
const std::string_view & | format, | ||
Args &&... | args | ||
) |
id_t tram::GenerateID | ( | ) |
Generates a unique ID number.
uint32_t tram::GetDeltaTick | ( | ) |
Returns the tick delta.
If multiple ticks have occured between calls to Core::Update(), this value will reflect that.
float tram::GetDeltaTime | ( | ) |
Returns the time passed between frames.
This value changes only when Core::Update() is called.
uint32_t tram::GetFrame | ( | ) |
Returns the current frame.
double tram::GetFrameTime | ( | ) |
Returns the time at the start of the current frame.
This value changes only when Core::Update() is called.
uint32_t tram::GetTick | ( | ) |
Returns the current tick.
This value gets incremented at a rate of 60 ticks per second.
double tram::GetTickTime | ( | ) |
Same as GetFrameTime()
const char * tram::GetVersion | ( | ) |
Returns the version identifier of the runtime.
const vec3 tram::IDENTITY_POSITION | ( | 0. | 0f, |
0. | 0f, | ||
0. | 0f | ||
) |
const quat tram::IDENTITY_ROTATION | ( | 1. | 0f, |
0. | 0f, | ||
0. | 0f, | ||
0. | 0f | ||
) |
const vec3 tram::IDENTITY_SCALE | ( | 1. | 0f, |
1. | 0f, | ||
1. | 0f | ||
) |
void tram::Log | ( | const std::string_view & | format, |
Args &&... | args | ||
) |
void tram::Log | ( | Severity | severity, |
System::system_t | system, | ||
const std::string_view & | format, | ||
Args &&... | args | ||
) |
void tram::Log | ( | System::system_t | system, |
const std::string_view & | format, | ||
Args &&... | args | ||
) |
mat4 tram::PositionRotationScaleToMatrix | ( | const vec3 & | position, |
const quat & | rotation, | ||
const vec3 & | scale | ||
) |
Generates a transform matrix.
Generates a transform matrix.
Projects a point on a line.
[in,out] | point | Point that will be projected. |
[in] | from | First endpoint of the line. |
[in] | to | Second endpoint of the line. |
Rotates a quaternion to face a point.
Useful for pointing objects at things.
vec3 tram::RayTriangleIntersection | ( | vec3 | ray_pos, |
vec3 | ray_dir, | ||
vec3 | point1, | ||
vec3 | point2, | ||
vec3 | point3 | ||
) |
Finds the intersection between a ray and a triangle.
If the ray intersects the triangle, the returned vector will be the 3D coordinates of the intersection. If the ray does not intersect the triangle, the function will return a vector with all of its components set to the floating-point INFINITY.
ray_pos | Ray origin, 3D coordinate. |
ray_dir | Ray direction, normal vector. Needs to be normalized. |
point1,point2,point3 | Triangle vertex coordinates. |
Rotates an AABB box by the given rotation.
void tram::SetConsoleLogCallback | ( | void(*)(int, const char *) | callback | ) |
Sets the console log callback.
Whenever a message is written to console, it will alos be passed to the console log callback.
void tram::SetConsoleLogCallback | ( | void(int, const char *) | ) |
void tram::SetDisplayLogCallback | ( | void(*)(int, const char *) | callback | ) |
Sets the display log callback.
When a message is logged by calling DisplayLog(), it will be formatted and then the result will be passed in to the display log callback.
void tram::SetDisplayLogCallback | ( | void(int, const char *) | ) |
void tram::SetSystemLoggingSeverity | ( | System::system_t | system, |
Severity | min_severity | ||
) |
Sets the logging severity filter.
system | System for which the filter will apply. |
min_severity | The lowest severity which the filter will let through All lower severities will be filtered out. |
const char * tram::TypeToString | ( | Type | type | ) |
Converts type enum to string.
const float tram::CAMERA_MULTIPLIER = 1.0f / 8.0f |
const uint32_t tram::collision_group = Physics::COLL_PLAYER |
const float tram::collision_height = 1.85f |
const float tram::collision_height_crouch = 0.5f |
const float tram::collision_width = 0.35f |
const uint32_t tram::COMPONENT_LIMIT_ANIMATION = 50 |
const uint32_t tram::COMPONENT_LIMIT_AUDIO = 150 |
const uint32_t tram::COMPONENT_LIMIT_CONTROLLER = 25 |
const uint32_t tram::COMPONENT_LIMIT_LIGHT = 250 |
const uint32_t tram::COMPONENT_LIMIT_PARTICLE = 100 |
const uint32_t tram::COMPONENT_LIMIT_PHYSICS = 500 |
const uint32_t tram::COMPONENT_LIMIT_PLAYER = 5 |
const uint32_t tram::COMPONENT_LIMIT_RENDER = 1000 |
const uint32_t tram::COMPONENT_LIMIT_SPRITE = 100 |
const uint32_t tram::COMPONENT_LIMIT_TRIGGER = 50 |
const uint32_t tram::ENTITY_LIMIT = 5000 |
const uint32_t tram::ENTITY_TYPE_LIMIT = 50 |
const uint32_t tram::EXT_KITCHENSINK_ANIMATIONTABLE_LIMIT = 100 |
const uint32_t tram::EXT_KITCHENSINK_SOUNDTABLE_LIMIT = 100 |
const uint32_t tram::KEYBOARDACTION_LIMIT = 100 |
const uint32_t tram::LANGUAGE_STRING_LIMIT = 500 |
const uint32_t tram::LANUGAGE_STRING_CHARACTER_LIMIT = 10000 |
const size_t tram::MAX_EVENT_TYPES = 100 |
const uint32_t tram::MAX_FRAGMENT_SHADERS = 20 |
const uint32_t tram::MAX_LINKED_SHADERS = 40 |
const uint32_t tram::MAX_MATERIAL_TYPES = 20 |
const uint32_t tram::MAX_VERTEX_FORMATS = 20 |
const uint32_t tram::MAX_VERTEX_SHADERS = 20 |
const uint32_t tram::MESSAGE_DATA_LIMIT = 2000 |
const uint32_t tram::MESSAGE_PRIORITY_QUEUE_LIMIT = 250 |
const uint32_t tram::MESSAGE_QUEUE_LIMIT = 500 |
const uint32_t tram::MESSAGE_TYPE_LIMIT = 100 |
const uint32_t tram::NAMED_ENTITY_LIMIT = 500 |
const size_t tram::PATH_LIMIT = 200 |
const float tram::PHYSICS_GRAVITY = -9.8f |
const float tram::PHYSICS_GROUND_PLANE = -9.0f |
const uint32_t tram::RESOURCE_LIMIT_COLLISION_MODEL = 500 |
const uint32_t tram::RESOURCE_LIMIT_MATERIAL = 500 |
const uint32_t tram::RESOURCE_LIMIT_MODEL = 100 |
const uint32_t tram::RESOURCE_LIMIT_PATH = 100 |
const uint32_t tram::RESOURCE_LIMIT_SOUND = 100 |
const uint32_t tram::RESOURCE_LIMIT_SPRITE = 500 |
const uint32_t tram::RESOURCE_LOADER_QUEUE_LIMIT = 1000 |
const uint32_t tram::RESOURCE_LOADER_REQUEST_LIMIT = 1750 |
const uint32_t tram::RIGIDBODY_LIMIT = 500 |
const uint32_t tram::SCRIPTABLE_ENTITY_TYPE_LIMIT = 50 |
const uint32_t tram::SIGNAL_TYPE_LIMIT = 100 |
const size_t tram::SYSTEM_LIMIT = 128 |
const float tram::TICK_RATE = 1.0f / 60.0f |
const uint32_t tram::UID_CHARACTER_LIMIT = 20000 |
const uint32_t tram::UID_LIMIT = 2000 |
const uint32_t tram::WORLDCELL_LIMIT = 250 |
const uint32_t tram::WORLDCELL_TRANSITION_LIMIT = 250 |