RigsofRods
Soft-body Physics Simulation
Data Structures | Namespaces | Typedefs | Enumerations
SimData.h File Reference

Core data structures for simulation; Everything affected by by either physics, network or user interaction is here. More...

#include "ForwardDeclarations.h"
#include "SimConstants.h"
#include "BitFlags.h"
#include "CmdKeyInertia.h"
#include "InputEngine.h"
#include <memory>
#include <Ogre.h>
#include <OgreUTFString.h>
#include <rapidjson/document.h>
+ Include dependency graph for SimData.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  RoR::node_t
 Physics: A vertex in the softbody structure. More...
 
struct  RoR::beam_t
 Simulation: An edge in the softbody structure. More...
 
struct  RoR::shock_t
 
struct  RoR::collcab_rate_t
 
struct  RoR::soundsource_t
 
struct  RoR::wheel_t
 
struct  RoR::wheeldetacher_t
 
struct  RoR::hook_t
 
struct  RoR::ropable_t
 
struct  RoR::rope_t
 
struct  RoR::tie_t
 
struct  RoR::wing_t
 
struct  RoR::commandbeam_state_t
 
struct  RoR::commandbeam_t
 
struct  RoR::command_t
 
struct  RoR::hydrobeam_t
 
struct  RoR::rotator_t
 
struct  RoR::flare_t
 
struct  RoR::exhaust_t
 
struct  RoR::cparticle_t
 
struct  RoR::PropAnimKeyState
 User input state for animated props with 'source:event'. More...
 
class  RoR::CmdKeyArray
 For backwards compatibility of the 'triggers' feature, the commandkey array must support negative indices of any size without breaking memory. More...
 
struct  RoR::UniqueCommandKeyPair
 UI helper for displaying command control keys to user. More...
 
struct  RoR::collision_box_t
 
struct  RoR::ground_model_t
 Surface friction properties. More...
 
struct  RoR::FreeForce
 Global force affecting particular (base) node of particular (base) actor; added ad-hoc by scripts. More...
 
struct  RoR::FreeForceRequest
 Common for ADD and MODIFY requests; tailored for use with AngelScript thru GameScript::pushMessage(). More...
 
struct  RoR::authorinfo_t
 
struct  RoR::ActorSpawnRequest
 
struct  RoR::ActorModifyRequest
 
struct  RoR::ActorLinkingRequest
 Estabilishing a physics linkage between 2 actors modifies a global linkage table and triggers immediate update of every actor's linkage tables, so it has to be done sequentially on main thread. More...
 

Namespaces

 RoR
 

Typedefs

typedef std::vector< collision_box_t * > RoR::CollisionBoxPtrVec
 

Enumerations

enum  RoR::CollisionEventFilter : short {
  RoR::EVENT_NONE = 0, RoR::EVENT_ALL, RoR::EVENT_AVATAR, RoR::EVENT_TRUCK,
  RoR::EVENT_TRUCK_WHEELS, RoR::EVENT_AIRPLANE, RoR::EVENT_BOAT
}
 Specified in terrain object (.ODEF) file, syntax: 'event <type> <filter>'. More...
 
enum  RoR::ExtCameraMode { RoR::ExtCameraMode::INVALID = -1, RoR::ExtCameraMode::CLASSIC = 0, RoR::ExtCameraMode::CINECAM = 1, RoR::ExtCameraMode::NODE = 2 }
 
enum  RoR::BeamType : short { RoR::BEAM_NORMAL, RoR::BEAM_HYDRO, RoR::BEAM_VIRTUAL }
 
enum  RoR::HookState { RoR::UNLOCKED, RoR::PRELOCK, RoR::LOCKED }
 
enum  RoR::ActorType {
  RoR::NOT_DRIVEABLE = 0, RoR::TRUCK = 1, RoR::AIRPLANE = 2, RoR::BOAT = 3,
  RoR::MACHINE = 4, RoR::AI = 5
}
 < Aka 'Driveable' More...
 
enum  RoR::SpecialBeam : short {
  RoR::NOSHOCK, RoR::SHOCK1, RoR::SHOCK2, RoR::SHOCK3,
  RoR::TRIGGER, RoR::SUPPORTBEAM, RoR::ROPE
}
 
enum  RoR::BlinkType { RoR::BLINK_NONE, RoR::BLINK_LEFT, RoR::BLINK_RIGHT, RoR::BLINK_WARN }
 < Turn signal More...
 
enum  RoR::HydroFlags {
  RoR::HYDRO_FLAG_SPEED = BITMASK(1), RoR::HYDRO_FLAG_DIR = BITMASK(2), RoR::HYDRO_FLAG_AILERON = BITMASK(3), RoR::HYDRO_FLAG_RUDDER = BITMASK(4),
  RoR::HYDRO_FLAG_ELEVATOR = BITMASK(5), RoR::HYDRO_FLAG_REV_AILERON = BITMASK(6), RoR::HYDRO_FLAG_REV_RUDDER = BITMASK(7), RoR::HYDRO_FLAG_REV_ELEVATOR = BITMASK(8)
}
 
enum  RoR::AnimFlags {
  RoR::ANIM_FLAG_AIRSPEED = BITMASK(1), RoR::ANIM_FLAG_VVI = BITMASK(2), RoR::ANIM_FLAG_ALTIMETER = BITMASK(3), RoR::ANIM_FLAG_AOA = BITMASK(4),
  RoR::ANIM_FLAG_FLAP = BITMASK(5), RoR::ANIM_FLAG_AIRBRAKE = BITMASK(6), RoR::ANIM_FLAG_ROLL = BITMASK(7), RoR::ANIM_FLAG_PITCH = BITMASK(8),
  RoR::ANIM_FLAG_THROTTLE = BITMASK(9), RoR::ANIM_FLAG_RPM = BITMASK(10), RoR::ANIM_FLAG_ACCEL = BITMASK(11), RoR::ANIM_FLAG_BRAKE = BITMASK(12),
  RoR::ANIM_FLAG_CLUTCH = BITMASK(13), RoR::ANIM_FLAG_TACHO = BITMASK(14), RoR::ANIM_FLAG_SPEEDO = BITMASK(15), RoR::ANIM_FLAG_PBRAKE = BITMASK(16),
  RoR::ANIM_FLAG_TURBO = BITMASK(17), RoR::ANIM_FLAG_SHIFTER = BITMASK(18), RoR::ANIM_FLAG_AETORQUE = BITMASK(19), RoR::ANIM_FLAG_AEPITCH = BITMASK(20),
  RoR::ANIM_FLAG_AESTATUS = BITMASK(21), RoR::ANIM_FLAG_TORQUE = BITMASK(22), RoR::ANIM_FLAG_HEADING = BITMASK(23), RoR::ANIM_FLAG_DIFFLOCK = BITMASK(24),
  RoR::ANIM_FLAG_STEERING = BITMASK(25), RoR::ANIM_FLAG_EVENT = BITMASK(26), RoR::ANIM_FLAG_AILERONS = BITMASK(27), RoR::ANIM_FLAG_ARUDDER = BITMASK(28),
  RoR::ANIM_FLAG_BRUDDER = BITMASK(29), RoR::ANIM_FLAG_BTHROTTLE = BITMASK(30), RoR::ANIM_FLAG_PERMANENT = BITMASK(31), RoR::ANIM_FLAG_ELEVATORS = BITMASK(32)
}
 
enum  RoR::AnimModes {
  RoR::ANIM_MODE_ROTA_X = BITMASK(1), RoR::ANIM_MODE_ROTA_Y = BITMASK(2), RoR::ANIM_MODE_ROTA_Z = BITMASK(3), RoR::ANIM_MODE_OFFSET_X = BITMASK(4),
  RoR::ANIM_MODE_OFFSET_Y = BITMASK(5), RoR::ANIM_MODE_OFFSET_Z = BITMASK(6), RoR::ANIM_MODE_AUTOANIMATE = BITMASK(7), RoR::ANIM_MODE_NOFLIP = BITMASK(8),
  RoR::ANIM_MODE_BOUNCE = BITMASK(9)
}
 
enum  RoR::ShockFlags {
  RoR::SHOCK_FLAG_NORMAL = BITMASK(1), RoR::SHOCK_FLAG_LACTIVE = BITMASK(3), RoR::SHOCK_FLAG_RACTIVE = BITMASK(4), RoR::SHOCK_FLAG_ISSHOCK2 = BITMASK(5),
  RoR::SHOCK_FLAG_ISSHOCK3 = BITMASK(6), RoR::SHOCK_FLAG_SOFTBUMP = BITMASK(7), RoR::SHOCK_FLAG_ISTRIGGER = BITMASK(8), RoR::SHOCK_FLAG_TRG_BLOCKER = BITMASK(9),
  RoR::SHOCK_FLAG_TRG_CMD_SWITCH = BITMASK(10), RoR::SHOCK_FLAG_TRG_CMD_BLOCKER = BITMASK(11), RoR::SHOCK_FLAG_TRG_BLOCKER_A = BITMASK(12), RoR::SHOCK_FLAG_TRG_HOOK_UNLOCK = BITMASK(13),
  RoR::SHOCK_FLAG_TRG_HOOK_LOCK = BITMASK(14), RoR::SHOCK_FLAG_TRG_CONTINUOUS = BITMASK(15), RoR::SHOCK_FLAG_TRG_ENGINE = BITMASK(16)
}
 
enum  RoR::EngineTriggerType {
  RoR::TRG_ENGINE_CLUTCH = 0, RoR::TRG_ENGINE_BRAKE = 1, RoR::TRG_ENGINE_ACC = 2, RoR::TRG_ENGINE_RPM = 3,
  RoR::TRG_ENGINE_SHIFTUP = 4, RoR::TRG_ENGINE_SHIFTDOWN = 5
}
 
enum  RoR::FlareType : char {
  RoR::FlareType::NONE = 0, RoR::FlareType::HEADLIGHT = 'f', RoR::FlareType::HIGH_BEAM = 'h', RoR::FlareType::FOG_LIGHT = 'g',
  RoR::FlareType::TAIL_LIGHT = 't', RoR::FlareType::BRAKE_LIGHT = 'b', RoR::FlareType::REVERSE_LIGHT = 'R', RoR::FlareType::SIDELIGHT = 's',
  RoR::FlareType::BLINKER_LEFT = 'l', RoR::FlareType::BLINKER_RIGHT = 'r', RoR::FlareType::USER = 'u', RoR::FlareType::DASHBOARD = 'd'
}
 
enum  RoR::LocalizerType { RoR::LOCALIZER_VERTICAL, RoR::LOCALIZER_HORIZONTAL, RoR::LOCALIZER_NDB, RoR::LOCALIZER_VOR }
 
enum  RoR::ActorState {
  RoR::ActorState::LOCAL_SIMULATED, RoR::ActorState::NETWORKED_OK, RoR::ActorState::NETWORKED_HIDDEN, RoR::ActorState::LOCAL_REPLAY,
  RoR::ActorState::LOCAL_SLEEPING, RoR::ActorState::DISPOSED
}
 
enum  RoR::AeroEngineType { RoR::AeroEngineType::AE_UNKNOWN, RoR::AeroEngineType::AE_XPROP, RoR::AeroEngineType::AE_TURBOJET }
 
enum  RoR::FreeForceType { RoR::FreeForceType::DUMMY, RoR::FreeForceType::CONSTANT, RoR::FreeForceType::TOWARDS_COORDS, RoR::FreeForceType::TOWARDS_NODE }
 
enum  RoR::ActorLinkingRequestType {
  RoR::ActorLinkingRequestType::INVALID, RoR::ActorLinkingRequestType::LOAD_SAVEGAME, RoR::ActorLinkingRequestType::HOOK_LOCK, RoR::ActorLinkingRequestType::HOOK_UNLOCK,
  RoR::ActorLinkingRequestType::HOOK_TOGGLE, RoR::ActorLinkingRequestType::HOOK_MOUSE_TOGGLE, RoR::ActorLinkingRequestType::HOOK_RESET, RoR::ActorLinkingRequestType::TIE_TOGGLE,
  RoR::ActorLinkingRequestType::TIE_RESET, RoR::ActorLinkingRequestType::ROPE_TOGGLE, RoR::ActorLinkingRequestType::ROPE_RESET, RoR::ActorLinkingRequestType::SLIDENODE_TOGGLE
}
 

Detailed Description

Core data structures for simulation; Everything affected by by either physics, network or user interaction is here.

Author
Thomas Fischer
Date
30th of April 2010 Note that simulation state and gfx state is separated; For example, light states (on/off) are here while the actual lights (renderer objects) are in 'GfxData.h' :)

Definition in file SimData.h.