RigsofRods
Soft-body Physics Simulation
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
GfxActor.h
Go to the documentation of this file.
1 /*
2  This source file is part of Rigs of Rods
3  Copyright 2005-2012 Pierre-Michel Ricordel
4  Copyright 2007-2012 Thomas Fischer
5  Copyright 2016-2020 Petr Ohlidal
6 
7  For more information, see http://www.rigsofrods.org/
8 
9  Rigs of Rods is free software: you can redistribute it and/or modify
10  it under the terms of the GNU General Public License version 3, as
11  published by the Free Software Foundation.
12 
13  Rigs of Rods is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License
19  along with Rigs of Rods. If not, see <http://www.gnu.org/licenses/>.
20 */
21 
26 
27 #pragma once
28 
29 #include "AutoPilot.h"
30 #include "Differentials.h"
31 #include "ForwardDeclarations.h"
32 #include "GfxData.h"
33 #include "RigDef_Prerequisites.h"
34 #include "SimBuffers.h"
35 #include "SurveyMapEntity.h"
36 #include "ThreadPool.h" // class Task
37 
38 #include <OgreAxisAlignedBox.h>
39 #include <OgreColourValue.h>
40 #include <OgreMaterial.h>
41 #include <OgreQuaternion.h>
42 #include <OgreTexture.h>
43 #include <OgreVector3.h>
44 #include <string>
45 #include <vector>
46 
47 namespace RoR {
48 
51 
52 class GfxActor
53 {
54  friend class ActorSpawner; // The factory
55 
56 public:
57 
58  GfxActor(ActorPtr actor, ActorSpawner* spawner, std::string ogre_resource_group,
59  RoR::Renderdash* renderdash);
60 
61  ~GfxActor();
62 
63  // Adding elements
64 
65  void RegisterCabMaterial(Ogre::MaterialPtr mat, Ogre::MaterialPtr mat_trans);
66  void RegisterCabMesh(Ogre::Entity* ent, Ogre::SceneNode* snode, FlexObj* flexobj);
67  void SortFlexbodies();
68 
69  // Retrieving elements
70 
71  std::vector<FlexBody*>& GetFlexbodies() { return m_flexbodies; };
72  std::vector<Prop>& getProps() { return m_props; }
73  std::vector<CParticle>& getCParticles() { return m_cparticles; }
74  std::vector<Exhaust>& getExhausts() { return m_exhausts; }
75  std::vector<VideoCamera>& getVideoCameras() { return m_videocameras; }
76 
77  // Visual changes
78 
79  void SetMaterialFlareOn(int flare_index, bool state_on);
80  void SetCabLightsActive(bool state_on);
81  void SetVideoCamState(VideoCamState state);
82  void ScaleActor(Ogre::Vector3 relpos, float ratio);
83  void ToggleDebugView();
84  void CycleDebugViews();
85  void ResetFlexbodies();
86  void SetRenderdashActive(bool active);
87  void SetBeaconsEnabled(bool beacon_light_is_active);
88  void SetDebugView(DebugViewType dv);
89  void SetNodeHot(NodeNum_t nodenum, bool value);
90  void RemoveBeam(int beam_index);
91 
92  // Visibility
93 
94  void SetRodsVisible(bool visible);
95  void SetFlexbodyVisible (bool visible);
96  void SetWheelsVisible(bool value);
97  void SetAllMeshesVisible(bool value);
98  void SetWingsVisible(bool visible);
99  void SetCastShadows(bool value);
100  void SetFlexbodiesVisible(bool visible);
101  void SetPropsVisible(bool visible);
102  void SetAeroEnginesVisible(bool visible);
103 
104  // Visual updates
105 
106  void UpdateVideoCameras(float dt);
107  void UpdateParticles(float dt);
108  void UpdateRods();
109  void UpdateWheelVisuals();
110  void UpdateFlexbodies();
111  void UpdateDebugView();
112  void UpdateCabMesh();
113  void UpdateWingMeshes();
114  void UpdateBeaconFlare(Prop & prop, float dt, bool is_player_actor);
115  void UpdateProps(float dt, bool is_player_actor);
116  void UpdatePropAnimations(float dt);
117  void UpdateAirbrakes();
118  void UpdateCParticles();
119  void UpdateExhausts();
120  void UpdateAeroEngines();
121  void UpdateNetLabels(float dt);
122  void UpdateFlares(float dt, bool is_player);
123  void UpdateRenderdashRTT ();
124 
125  // SimBuffers
126 
127  void UpdateSimDataBuffer();
130 
131  // Internal updates
132 
133  void FinishWheelUpdates();
134  void FinishFlexbodyTasks();
135 
136  // Helpers
137 
138  bool IsActorLive() const;
139  bool IsActorInitialized() const { return m_initialized; }
140  void InitializeActor() { m_initialized = true; }
141  void CalculateDriverPos(Ogre::Vector3& out_pos, Ogre::Quaternion& out_rot);
142  int GetActorId() const;
143  int GetActorState() const;
146  Ogre::String GetResourceGroup() { return m_custom_resource_group; }
147  ActorPtr GetActor(); // Watch out for multithreading with this!
148  Ogre::MaterialPtr& GetCabTransMaterial() { return m_cab_mat_visual_trans; }
149  Ogre::TexturePtr GetHelpTex() { return m_help_tex; }
150  Ogre::MaterialPtr GetHelpMat() { return m_help_mat; }
151  bool HasDriverSeatProp() const { return m_driverseat_prop_index != -1; }
152  void CalcPropAnimation(PropAnim& anim, float& cstate, int& div, float dt);
154  WheelSide getWheelSide(WheelID_t wheel_id) { return (wheel_id >= 0 && (size_t)wheel_id < m_wheels.size()) ? m_wheels[wheel_id].wx_side : WheelSide::INVALID; }
155  std::string getWheelRimMeshName(WheelID_t wheel_id) { return (wheel_id >= 0 && (size_t)wheel_id < m_wheels.size()) ? m_wheels[wheel_id].wx_rim_mesh_name : ""; }
156  const ActorPtr& getOwningActor() { return m_actor; }
157  int countBeaconProps() const;
158 
159 private:
160 
161  static Ogre::Quaternion SpecialGetRotationTo(const Ogre::Vector3& src, const Ogre::Vector3& dest);
162  float UpdateSmoothShift(PropAnim& anim, float dt, float new_target_cstate); // Helper for `CalcPropAnimation()`
163 
164  // Static info
168  Ogre::SceneNode* m_gfx_beams_parent_scenenode = nullptr;
169 
170  // Game state
171  bool m_initialized = false;
175  bool m_beaconlight_active = true; // 'true' will trigger SetBeaconsEnabled(false) on the first buffer update
179 
180  // Threaded tasks
181  std::vector<std::shared_ptr<Task>> m_flexwheel_tasks;
182  std::vector<std::shared_ptr<Task>> m_flexbody_tasks;
183 
184  // Elements
185  std::vector<NodeGfx> m_gfx_nodes;
186  std::vector<BeamGfx> m_gfx_beams;
187  std::vector<AirbrakeGfx> m_gfx_airbrakes;
188  std::vector<Prop> m_props;
189  std::vector<FlexBody*> m_flexbodies;
190  std::vector<WheelGfx> m_wheels;
191  std::vector<VideoCamera> m_videocameras;
192  std::vector<FlareMaterial> m_flare_materials;
194  std::vector<CParticle> m_cparticles;
195  std::vector<Exhaust> m_exhausts;
196 
197  // Particles
199  DustPool* m_particles_dust = nullptr; // dust, vapour and tyre smoke
204 
205  // Cab mesh ('submesh' in truck fileformat)
206  FlexObj* m_cab_mesh = nullptr;
207  Ogre::SceneNode* m_cab_scene_node = nullptr;
208  Ogre::Entity* m_cab_entity = nullptr;
209  Ogre::MaterialPtr m_cab_mat_visual;
210  Ogre::MaterialPtr m_cab_mat_visual_trans;
211  Ogre::MaterialPtr m_cab_mat_template_plain;
212  Ogre::MaterialPtr m_cab_mat_template_emissive;
213 
214  // GUI
215  Ogre::MaterialPtr m_help_mat;
216  Ogre::TexturePtr m_help_tex;
218 
220 };
221 
223 
224 } // Namespace RoR
RoR::GfxActor::SetDebugView
void SetDebugView(DebugViewType dv)
Definition: GfxActor.cpp:1577
RoR::GfxActor::m_gfx_nodes
std::vector< NodeGfx > m_gfx_nodes
Definition: GfxActor.h:185
RoR::GfxActor::UpdateAirbrakes
void UpdateAirbrakes()
Definition: GfxActor.cpp:2012
RoR::GfxActor::RemoveBeam
void RemoveBeam(int beam_index)
Definition: GfxActor.cpp:3438
RoR::GfxActor::GfxActor
GfxActor(ActorPtr actor, ActorSpawner *spawner, std::string ogre_resource_group, RoR::Renderdash *renderdash)
Definition: GfxActor.cpp:61
ForwardDeclarations.h
Global forward declarations.
RoR::GfxActor::UpdateSimDataBuffer
void UpdateSimDataBuffer()
Copies sim. data from Actor to GfxActor for later update.
Definition: GfxActor.cpp:1776
RoR::GfxActor::UpdateParticles
void UpdateParticles(float dt)
Definition: GfxActor.cpp:591
RoR::NodeSB
Definition: SimBuffers.h:67
RoR::DustPool
Definition: DustPool.h:33
RoR::GfxActor::m_surveymap_entity
SurveyMapEntity m_surveymap_entity
Definition: GfxActor.h:217
RoR::GfxActor::m_cab_entity
Ogre::Entity * m_cab_entity
Definition: GfxActor.h:208
RoR::GfxActor::CalculateDriverPos
void CalculateDriverPos(Ogre::Vector3 &out_pos, Ogre::Quaternion &out_rot)
Definition: GfxActor.cpp:2111
RoR::GfxActor::m_prop_anim_crankfactor_prev
float m_prop_anim_crankfactor_prev
Definition: GfxActor.h:176
RoR::GfxActor::HasDriverSeatProp
bool HasDriverSeatProp() const
Definition: GfxActor.h:151
RoR::GfxActor::m_exhausts
std::vector< Exhaust > m_exhausts
Definition: GfxActor.h:195
RoR::GfxActor::SetFlexbodyVisible
void SetFlexbodyVisible(bool visible)
Definition: GfxActor.cpp:3223
RoR::GfxActor::UpdateDebugView
void UpdateDebugView()
Definition: GfxActor.cpp:723
RoR::GfxActor::m_videocameras
std::vector< VideoCamera > m_videocameras
Definition: GfxActor.h:191
RoR::GfxActor::GetSimNodeBuffer
NodeSB * GetSimNodeBuffer()
Definition: GfxActor.h:129
RoR::DebugViewType::DEBUGVIEW_NONE
@ DEBUGVIEW_NONE
RigDef_Prerequisites.h
RoR::GfxActor::ToggleDebugView
void ToggleDebugView()
Definition: GfxActor.cpp:1569
RoR::GfxActor::m_cab_scene_node
Ogre::SceneNode * m_cab_scene_node
Definition: GfxActor.h:207
RoR::GfxActor::RegisterCabMaterial
void RegisterCabMaterial(Ogre::MaterialPtr mat, Ogre::MaterialPtr mat_trans)
Definition: GfxActor.cpp:405
ThreadPool.h
RoR::GfxActor::UpdateRods
void UpdateRods()
Definition: GfxActor.cpp:1647
RoR::GfxActor::CycleDebugViews
void CycleDebugViews()
Definition: GfxActor.cpp:1595
AutoPilot.h
RoR::GfxActor::GetActor
ActorPtr GetActor()
Definition: GfxActor.cpp:336
RoR::GfxActor::countBeaconProps
int countBeaconProps() const
Definition: GfxActor.cpp:3414
RoR::DebugViewType
DebugViewType
Definition: GfxData.h:101
RoR::GfxActor::getVideoCameras
std::vector< VideoCamera > & getVideoCameras()
Definition: GfxActor.h:75
RoR::GfxActor::m_particles_drip
DustPool * m_particles_drip
Definition: GfxActor.h:198
SurveyMapEntity.h
RoR::GfxActor::m_prop_anim_prev_gear
int m_prop_anim_prev_gear
Definition: GfxActor.h:178
RoR::FlexObj
A visual mesh, forming a chassis for softbody actor At most one instance is created per actor.
Definition: FlexObj.h:59
RoR::GfxActor::UpdateCabMesh
void UpdateCabMesh()
Definition: GfxActor.cpp:1952
RoR::GfxActor::FinishFlexbodyTasks
void FinishFlexbodyTasks()
Definition: GfxActor.cpp:3231
Differentials.h
RoR::GfxActor::SortFlexbodies
void SortFlexbodies()
Definition: GfxActor.cpp:3187
RoR::GfxActor::m_simbuf
ActorSB m_simbuf
Definition: GfxActor.h:219
RefCountingObjectPtr< Actor >
RoR::GfxActor::m_flare_materials
std::vector< FlareMaterial > m_flare_materials
Definition: GfxActor.h:192
RoR::GfxActor::SetVideoCamState
void SetVideoCamState(VideoCamState state)
Definition: GfxActor.cpp:442
RoR::GfxActor::getSurveyMapEntity
SurveyMapEntity & getSurveyMapEntity()
Definition: GfxActor.h:153
RoR::GfxActor::SetNodeHot
void SetNodeHot(NodeNum_t nodenum, bool value)
Definition: GfxActor.cpp:3427
RoR::ActorSpawner
Processes a RigDef::Document (parsed from 'truck' file format) into a simulated gameplay object (Acto...
Definition: ActorSpawner.h:70
RoR::GfxActor::GetHelpMat
Ogre::MaterialPtr GetHelpMat()
Definition: GfxActor.h:150
RoR::GfxActor::m_driverseat_prop_index
int m_driverseat_prop_index
Definition: GfxActor.h:167
RoR::GfxActor::m_initialized
bool m_initialized
Definition: GfxActor.h:171
RoR::GfxActor::getCParticles
std::vector< CParticle > & getCParticles()
Definition: GfxActor.h:73
RoR::GfxActor::FinishWheelUpdates
void FinishWheelUpdates()
Definition: GfxActor.cpp:1978
RoR::PropAnim
Definition: GfxData.h:138
RoR::GfxActor::UpdatePropAnimations
void UpdatePropAnimations(float dt)
Definition: GfxActor.cpp:2972
RoR::GfxActor::m_cab_mat_visual_trans
Ogre::MaterialPtr m_cab_mat_visual_trans
Definition: GfxActor.h:210
RoR::GfxActor::GetVideoCamState
VideoCamState GetVideoCamState() const
Definition: GfxActor.h:144
RoR::GfxActor::UpdateProps
void UpdateProps(float dt, bool is_player_actor)
Definition: GfxActor.cpp:2303
RoR::GfxActor::m_help_mat
Ogre::MaterialPtr m_help_mat
Definition: GfxActor.h:215
RoR::GfxActor::m_flexbodies
std::vector< FlexBody * > m_flexbodies
Definition: GfxActor.h:189
RoR::GfxActor::m_gfx_beams_parent_scenenode
Ogre::SceneNode * m_gfx_beams_parent_scenenode
Definition: GfxActor.h:168
RoR::GfxActor::m_debug_view
DebugViewType m_debug_view
Definition: GfxActor.h:173
RoR::NodeNum_t
uint16_t NodeNum_t
Node position within Actor::ar_nodes; use RoR::NODENUM_INVALID as empty value.
Definition: ForwardDeclarations.h:54
RoR::GfxActor::UpdateAeroEngines
void UpdateAeroEngines()
Definition: GfxActor.cpp:2083
RoR::GfxActor::UpdateRenderdashRTT
void UpdateRenderdashRTT()
Definition: GfxActor.cpp:2406
RoR::GfxActor::GetHelpTex
Ogre::TexturePtr GetHelpTex()
Definition: GfxActor.h:149
RoR::GfxActor::UpdateSmoothShift
float UpdateSmoothShift(PropAnim &anim, float dt, float new_target_cstate)
Definition: GfxActor.cpp:2483
RoR::GfxActor::GetActorState
int GetActorState() const
Definition: GfxActor.cpp:2010
RoR::GfxActor::SetCabLightsActive
void SetCabLightsActive(bool state_on)
Definition: GfxActor.cpp:421
RoR::GfxActor::SetWheelsVisible
void SetWheelsVisible(bool value)
Definition: GfxActor.cpp:1993
RoR::GfxActor::m_vidcam_state
VideoCamState m_vidcam_state
Definition: GfxActor.h:172
RoR::GfxActor::m_cab_mesh
FlexObj * m_cab_mesh
Definition: GfxActor.h:206
RoR::WheelID_t
int WheelID_t
Index to Actor::ar_wheels, use RoR::WHEELID_INVALID as empty value.
Definition: ForwardDeclarations.h:58
RoR::GfxActor::m_cab_mat_template_plain
Ogre::MaterialPtr m_cab_mat_template_plain
Definition: GfxActor.h:211
RoR::GfxActor::SetWingsVisible
void SetWingsVisible(bool visible)
Definition: GfxActor.cpp:3391
RoR::GfxActor::SetRodsVisible
void SetRodsVisible(bool visible)
Definition: GfxActor.cpp:1755
RoR::GfxActor::SetFlexbodiesVisible
void SetFlexbodiesVisible(bool visible)
RoR::GfxActor::m_custom_resource_group
std::string m_custom_resource_group
Definition: GfxActor.h:166
RoR::Prop
A mesh attached to vehicle frame via 3 nodes.
Definition: GfxData.h:162
RoR::GfxActor::m_wheels
std::vector< WheelGfx > m_wheels
Definition: GfxActor.h:190
RoR::GfxActor::m_actor
ActorPtr m_actor
Definition: GfxActor.h:165
RoR::GfxActor::m_particles_dust
DustPool * m_particles_dust
Definition: GfxActor.h:199
RoR::GfxActor::UpdateVideoCameras
void UpdateVideoCameras(float dt)
Definition: GfxActor.cpp:470
RoR::GfxActor::GetActorId
int GetActorId() const
Definition: GfxActor.cpp:2009
RoR::Renderdash
'renderdash' is a name of a classic Render-To-Texture animated material with gauges and other dashboa...
Definition: Renderdash.h:34
RoR::GfxActor::ScaleActor
void ScaleActor(Ogre::Vector3 relpos, float ratio)
Definition: GfxActor.cpp:1714
RoR::GfxActor::m_particles_clump
DustPool * m_particles_clump
Definition: GfxActor.h:203
RoR::GfxActor::SpecialGetRotationTo
static Ogre::Quaternion SpecialGetRotationTo(const Ogre::Vector3 &src, const Ogre::Vector3 &dest)
Definition: GfxActor.cpp:1670
RoR::GfxActor::m_beaconlight_active
bool m_beaconlight_active
Definition: GfxActor.h:175
RoR::GfxActor::getWheelRimMeshName
std::string getWheelRimMeshName(WheelID_t wheel_id)
Definition: GfxActor.h:155
RoR::GfxActor::m_prop_anim_shift_timer
float m_prop_anim_shift_timer
Definition: GfxActor.h:177
RoR::GfxActor::RegisterCabMesh
void RegisterCabMesh(Ogre::Entity *ent, Ogre::SceneNode *snode, FlexObj *flexobj)
Definition: GfxActor.cpp:3370
RoR::GfxActor::m_help_tex
Ogre::TexturePtr m_help_tex
Definition: GfxActor.h:216
RoR::GfxActor::GetFlexbodies
std::vector< FlexBody * > & GetFlexbodies()
Definition: GfxActor.h:71
RoR::GfxActor::SetAeroEnginesVisible
void SetAeroEnginesVisible(bool visible)
Definition: GfxActor.cpp:2387
RoR::GfxActor::m_cab_mat_visual
Ogre::MaterialPtr m_cab_mat_visual
Updated in-place from templates.
Definition: GfxActor.h:209
RoR::GfxActor::m_last_debug_view
DebugViewType m_last_debug_view
Definition: GfxActor.h:174
RoR::VideoCamState::VCSTATE_ENABLED_ONLINE
@ VCSTATE_ENABLED_ONLINE
RoR::GfxActor::SetCastShadows
void SetCastShadows(bool value)
Definition: GfxActor.cpp:3334
RoR::GfxActor::SetBeaconsEnabled
void SetBeaconsEnabled(bool beacon_light_is_active)
Definition: GfxActor.cpp:2414
RoR::WheelSide::INVALID
@ INVALID
RoR::DebugViewType::DEBUGVIEW_SKELETON
@ DEBUGVIEW_SKELETON
RoR::GfxActor::getProps
std::vector< Prop > & getProps()
Definition: GfxActor.h:72
RoR::GfxActor::SetRenderdashActive
void SetRenderdashActive(bool active)
Definition: GfxActor.cpp:2398
RoR::GfxActor::UpdateCParticles
void UpdateCParticles()
Definition: GfxActor.cpp:2040
RoR::GfxActor::UpdateWingMeshes
void UpdateWingMeshes()
Definition: GfxActor.cpp:3404
GfxData.h
RoR::GfxActor::IsActorLive
bool IsActorLive() const
Should the visuals be updated for this actor?
Definition: GfxActor.cpp:1947
RoR::GfxActor::m_cparticles
std::vector< CParticle > m_cparticles
Definition: GfxActor.h:194
RoR::GfxActor::m_flexwheel_tasks
std::vector< std::shared_ptr< Task > > m_flexwheel_tasks
Definition: GfxActor.h:181
RoR::GfxActor::CalcPropAnimation
void CalcPropAnimation(PropAnim &anim, float &cstate, int &div, float dt)
Definition: GfxActor.cpp:2507
RoR::ActorSB
Definition: SimBuffers.h:110
RoR::VideoCamState
VideoCamState
Definition: GfxData.h:93
RoR::GfxActor::m_particles_sparks
DustPool * m_particles_sparks
Definition: GfxActor.h:202
RoR::GfxActor
Definition: GfxActor.h:52
RoR::GfxActor::SetMaterialFlareOn
void SetMaterialFlareOn(int flare_index, bool state_on)
Definition: GfxActor.cpp:341
RoR::GfxActor::UpdateBeaconFlare
void UpdateBeaconFlare(Prop &prop, float dt, bool is_player_actor)
Definition: GfxActor.cpp:2142
RoR::GfxActor::GetDebugView
DebugViewType GetDebugView() const
Definition: GfxActor.h:145
RoR::GfxActor::UpdateFlares
void UpdateFlares(float dt, bool is_player)
Definition: GfxActor.cpp:3262
RoR::WheelSide
WheelSide
Used by rig-def/addonpart/tuneup formats to specify wheel rim mesh orientation.
Definition: GfxData.h:115
RoR::ActorSB::simbuf_nodes
std::vector< NodeSB > simbuf_nodes
Definition: SimBuffers.h:134
SimBuffers.h
RoR::GfxActor::SetAllMeshesVisible
void SetAllMeshesVisible(bool value)
Definition: GfxActor.cpp:3377
RoR::GfxActor::m_particles_ripple
DustPool * m_particles_ripple
Definition: GfxActor.h:201
RoR::GfxActor::m_gfx_beams
std::vector< BeamGfx > m_gfx_beams
Definition: GfxActor.h:186
RoR::GfxActor::getExhausts
std::vector< Exhaust > & getExhausts()
Definition: GfxActor.h:74
RoR::GfxActor::UpdateFlexbodies
void UpdateFlexbodies()
Definition: GfxActor.cpp:3192
RoR::GfxActor::ResetFlexbodies
void ResetFlexbodies()
Definition: GfxActor.cpp:3215
RoR::SurveyMapEntity
Definition: SurveyMapEntity.h:35
RoR::GfxActor::UpdateWheelVisuals
void UpdateWheelVisuals()
Definition: GfxActor.cpp:1960
RoR::GfxActor::UpdateNetLabels
void UpdateNetLabels(float dt)
Definition: GfxActor.cpp:2091
RoR::GfxActor::GetResourceGroup
Ogre::String GetResourceGroup()
Definition: GfxActor.h:146
RoR::GfxActor::getOwningActor
const ActorPtr & getOwningActor()
Definition: GfxActor.h:156
RoR::GfxActor::GetSimDataBuffer
ActorSB & GetSimDataBuffer()
Definition: GfxActor.h:128
RoR::GfxActor::m_particles_splash
DustPool * m_particles_splash
Definition: GfxActor.h:200
RoR
Definition: AppContext.h:36
RoR::GfxActor::m_gfx_airbrakes
std::vector< AirbrakeGfx > m_gfx_airbrakes
Definition: GfxActor.h:187
RoR::GfxActor::UpdateExhausts
void UpdateExhausts()
Definition: GfxActor.cpp:2057
RoR::GfxActor::GetCabTransMaterial
Ogre::MaterialPtr & GetCabTransMaterial()
Definition: GfxActor.h:148
RoR::GfxActor::getWheelSide
WheelSide getWheelSide(WheelID_t wheel_id)
Definition: GfxActor.h:154
RoR::GfxActor::m_flexbody_tasks
std::vector< std::shared_ptr< Task > > m_flexbody_tasks
Definition: GfxActor.h:182
RoR::GfxActor::m_cab_mat_template_emissive
Ogre::MaterialPtr m_cab_mat_template_emissive
Definition: GfxActor.h:212
RoR::GfxActor::SetPropsVisible
void SetPropsVisible(bool visible)
Definition: GfxActor.cpp:2379
RoR::GfxActor::m_props
std::vector< Prop > m_props
Definition: GfxActor.h:188
RoR::GfxActor::~GfxActor
~GfxActor()
Definition: GfxActor.cpp:85
RoR::GfxActor::m_renderdash
RoR::Renderdash * m_renderdash
Definition: GfxActor.h:193