Trax3 3.1.0
trax track library
Loading...
Searching...
No Matches
Simulator.h
1// trax track library
2// AD 2023
3//
4// "A monkey needs dance, so do you"
5//
6// Johnossi
7//
8//
9// Copyright (c) 2025 Trend Redaktions- und Verlagsgesellschaft mbH
10// Copyright (c) 2019 Marc-Michael Horstmann
11//
12// Permission is hereby granted to any person obtaining a copy of this software
13// and associated source code (the "Software"), to use, view, and study the
14// Software for personal or internal business purposes, subject to the following
15// conditions:
16//
17// 1. Redistribution, modification, sublicensing, or commercial use of the
18// Software is NOT permitted without prior written consent from the copyright
19// holder.
20//
21// 2. The Software is provided "AS IS", without warranty of any kind, express
22// or implied.
23//
24// 3. All copies of the Software must retain this license notice.
25//
26// For further information, please contact: horstmann.marc@trendverlag.de
27
28#pragma once
29
47
48#include "trax/Configuration.h"
49#include "trax/Units.h"
50
51#include "spat/Frame.h"
52#include "spat/Box.h"
53
54#include <memory>
55
56namespace trax{
57
59 struct Simulator{
60
61 enum class Type{
62 none = 0,
63 Standard,
64 PhysX,
65 PhysX_VisualDebugger,
66 Unknown,
67 };
68
70 static dclspc std::unique_ptr<Simulator> Make( Type type ) noexcept;
71
72
74 virtual const char* TypeName() const noexcept = 0;
75
76
81 virtual const char* GetVersionString() const = 0;
82
83
84 virtual ~Simulator() = default;
85 };
86}
Namespace of all the trax track libraries classes and methods.
Definition Collection.h:17
Interface for the physics simulator.
Definition Simulator.h:59
virtual const char * GetVersionString() const =0
static dclspc std::unique_ptr< Simulator > Make(Type type) noexcept
Makes a Simulator object.
virtual const char * TypeName() const noexcept=0