RigsofRods  2023.09
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;
159 private:
160 
161  float UpdateSmoothShift(PropAnim& anim, float dt, float new_target_cstate); // Helper for `CalcPropAnimation()`
162 
163  // Static info
167  Ogre::SceneNode* m_gfx_beams_parent_scenenode = nullptr;
168 
169  // Game state
170  bool m_initialized = false;
174  bool m_beaconlight_active = true; // 'true' will trigger SetBeaconsEnabled(false) on the first buffer update
178 
179  // Threaded tasks
180  std::vector<std::shared_ptr<Task>> m_flexwheel_tasks;
181  std::vector<std::shared_ptr<Task>> m_flexbody_tasks;
182 
183  // Elements
184  std::vector<NodeGfx> m_gfx_nodes;
185  std::vector<BeamGfx> m_gfx_beams;
186  std::vector<AirbrakeGfx> m_gfx_airbrakes;
187  std::vector<Prop> m_props;
188  std::vector<FlexBody*> m_flexbodies;
189  std::vector<WheelGfx> m_wheels;
190  std::vector<VideoCamera> m_videocameras;
191  std::vector<FlareMaterial> m_flare_materials;
193  std::vector<CParticle> m_cparticles;
194  std::vector<Exhaust> m_exhausts;
195 
196  // Particles
198  DustPool* m_particles_dust = nullptr; // dust, vapour and tyre smoke
203 
204  // Cab mesh ('submesh' in truck fileformat)
205  FlexObj* m_cab_mesh = nullptr;
206  Ogre::SceneNode* m_cab_scene_node = nullptr;
207  Ogre::Entity* m_cab_entity = nullptr;
208  Ogre::MaterialPtr m_cab_mat_visual;
209  Ogre::MaterialPtr m_cab_mat_visual_trans;
210  Ogre::MaterialPtr m_cab_mat_template_plain;
211  Ogre::MaterialPtr m_cab_mat_template_emissive;
212 
213  // GUI
214  Ogre::MaterialPtr m_help_mat;
215  Ogre::TexturePtr m_help_tex;
217 
219 };
220 
222 
223 } // Namespace RoR
RoR::GfxActor::SetDebugView
void SetDebugView(DebugViewType dv)
Definition: GfxActor.cpp:1654
RoR::GfxActor::m_gfx_nodes
std::vector< NodeGfx > m_gfx_nodes
Definition: GfxActor.h:184
RoR::WheelSide
WheelSide
Used by rig-def/addonpart/tuneup formats to specify wheel rim mesh orientation.
Definition: Application.h:546
RoR::GfxActor::UpdateAirbrakes
void UpdateAirbrakes()
Definition: GfxActor.cpp:1997
RoR::GfxActor::RemoveBeam
void RemoveBeam(int beam_index)
Definition: GfxActor.cpp:3431
RoR::GfxActor::GfxActor
GfxActor(ActorPtr actor, ActorSpawner *spawner, std::string ogre_resource_group, RoR::Renderdash *renderdash)
Definition: GfxActor.cpp:62
ForwardDeclarations.h
Global forward declarations.
RoR::GfxActor::UpdateSimDataBuffer
void UpdateSimDataBuffer()
Copies sim. data from Actor to GfxActor for later update.
Definition: GfxActor.cpp:1761
RoR::GfxActor::UpdateParticles
void UpdateParticles(float dt)
Definition: GfxActor.cpp:592
RoR::NodeSB
Definition: SimBuffers.h:67
RoR::DustPool
Definition: DustPool.h:33
RoR::GfxActor::m_surveymap_entity
SurveyMapEntity m_surveymap_entity
Definition: GfxActor.h:216
RoR::GfxActor::m_cab_entity
Ogre::Entity * m_cab_entity
Definition: GfxActor.h:207
RoR::GfxActor::CalculateDriverPos
void CalculateDriverPos(Ogre::Vector3 &out_pos, Ogre::Quaternion &out_rot)
Definition: GfxActor.cpp:2097
RoR::GfxActor::m_prop_anim_crankfactor_prev
float m_prop_anim_crankfactor_prev
Definition: GfxActor.h:175
RoR::GfxActor::HasDriverSeatProp
bool HasDriverSeatProp() const
Definition: GfxActor.h:151
RoR::GfxActor::m_exhausts
std::vector< Exhaust > m_exhausts
Definition: GfxActor.h:194
RoR::GfxActor::SetFlexbodyVisible
void SetFlexbodyVisible(bool visible)
Definition: GfxActor.cpp:3209
RoR::GfxActor::UpdateDebugView
void UpdateDebugView()
Definition: GfxActor.cpp:724
RoR::GfxActor::m_videocameras
std::vector< VideoCamera > m_videocameras
Definition: GfxActor.h:190
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:1630
RoR::GfxActor::m_cab_scene_node
Ogre::SceneNode * m_cab_scene_node
Definition: GfxActor.h:206
RoR::GfxActor::RegisterCabMaterial
void RegisterCabMaterial(Ogre::MaterialPtr mat, Ogre::MaterialPtr mat_trans)
Definition: GfxActor.cpp:406
ThreadPool.h
RoR::GfxActor::UpdateRods
void UpdateRods()
Definition: GfxActor.cpp:1677
RoR::GfxActor::CycleDebugViews
void CycleDebugViews()
Definition: GfxActor.cpp:1668
AutoPilot.h
RoR::GfxActor::GetActor
ActorPtr GetActor()
Definition: GfxActor.cpp:337
RoR::GfxActor::countBeaconProps
int countBeaconProps() const
Definition: GfxActor.cpp:3407
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:197
SurveyMapEntity.h
RoR::WheelSide::INVALID
@ INVALID
RoR::GfxActor::m_prop_anim_prev_gear
int m_prop_anim_prev_gear
Definition: GfxActor.h:177
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:1937
RoR::GfxActor::FinishFlexbodyTasks
void FinishFlexbodyTasks()
Definition: GfxActor.cpp:3217
Differentials.h
RoR::GfxActor::SortFlexbodies
void SortFlexbodies()
Definition: GfxActor.cpp:3173
RoR::GfxActor::m_simbuf
ActorSB m_simbuf
Definition: GfxActor.h:218
RefCountingObjectPtr< Actor >
RoR::GfxActor::m_flare_materials
std::vector< FlareMaterial > m_flare_materials
Definition: GfxActor.h:191
RoR::GfxActor::SetVideoCamState
void SetVideoCamState(VideoCamState state)
Definition: GfxActor.cpp:443
RoR::GfxActor::getSurveyMapEntity
SurveyMapEntity & getSurveyMapEntity()
Definition: GfxActor.h:153
RoR::GfxActor::SetNodeHot
void SetNodeHot(NodeNum_t nodenum, bool value)
Definition: GfxActor.cpp:3420
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:166
RoR::GfxActor::m_initialized
bool m_initialized
Definition: GfxActor.h:170
RoR::GfxActor::getCParticles
std::vector< CParticle > & getCParticles()
Definition: GfxActor.h:73
RoR::GfxActor::FinishWheelUpdates
void FinishWheelUpdates()
Definition: GfxActor.cpp:1963
RoR::PropAnim
Definition: GfxData.h:131
RoR::GfxActor::UpdatePropAnimations
void UpdatePropAnimations(float dt)
Definition: GfxActor.cpp:2958
RoR::GfxActor::m_cab_mat_visual_trans
Ogre::MaterialPtr m_cab_mat_visual_trans
Definition: GfxActor.h:209
RoR::GfxActor::GetVideoCamState
VideoCamState GetVideoCamState() const
Definition: GfxActor.h:144
RoR::GfxActor::UpdateProps
void UpdateProps(float dt, bool is_player_actor)
Definition: GfxActor.cpp:2289
RoR::GfxActor::m_help_mat
Ogre::MaterialPtr m_help_mat
Definition: GfxActor.h:214
RoR::GfxActor::m_flexbodies
std::vector< FlexBody * > m_flexbodies
Definition: GfxActor.h:188
RoR::GfxActor::m_gfx_beams_parent_scenenode
Ogre::SceneNode * m_gfx_beams_parent_scenenode
Definition: GfxActor.h:167
RoR::GfxActor::m_debug_view
DebugViewType m_debug_view
Definition: GfxActor.h:172
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:2069
RoR::GfxActor::UpdateRenderdashRTT
void UpdateRenderdashRTT()
Definition: GfxActor.cpp:2392
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:2469
RoR::GfxActor::GetActorState
int GetActorState() const
Definition: GfxActor.cpp:1995
RoR::GfxActor::SetCabLightsActive
void SetCabLightsActive(bool state_on)
Definition: GfxActor.cpp:422
RoR::GfxActor::SetWheelsVisible
void SetWheelsVisible(bool value)
Definition: GfxActor.cpp:1978
RoR::GfxActor::m_vidcam_state
VideoCamState m_vidcam_state
Definition: GfxActor.h:171
RoR::GfxActor::m_cab_mesh
FlexObj * m_cab_mesh
Definition: GfxActor.h:205
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:210
RoR::GfxActor::SetWingsVisible
void SetWingsVisible(bool visible)
Definition: GfxActor.cpp:3384
RoR::GfxActor::SetRodsVisible
void SetRodsVisible(bool visible)
Definition: GfxActor.cpp:1740
RoR::GfxActor::SetFlexbodiesVisible
void SetFlexbodiesVisible(bool visible)
RoR::GfxActor::m_custom_resource_group
std::string m_custom_resource_group
Definition: GfxActor.h:165
RoR::GfxActor::IsDebugViewApplicable
bool IsDebugViewApplicable(DebugViewType dv)
Definition: GfxActor.cpp:1638
RoR::Prop
A mesh attached to vehicle frame via 3 nodes.
Definition: GfxData.h:155
RoR::GfxActor::m_wheels
std::vector< WheelGfx > m_wheels
Definition: GfxActor.h:189
RoR::GfxActor::m_actor
ActorPtr m_actor
Definition: GfxActor.h:164
RoR::GfxActor::m_particles_dust
DustPool * m_particles_dust
Definition: GfxActor.h:198
RoR::GfxActor::UpdateVideoCameras
void UpdateVideoCameras(float dt)
Definition: GfxActor.cpp:471
RoR::GfxActor::GetActorId
int GetActorId() const
Definition: GfxActor.cpp:1994
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:1700
RoR::GfxActor::m_particles_clump
DustPool * m_particles_clump
Definition: GfxActor.h:202
RoR::GfxActor::m_beaconlight_active
bool m_beaconlight_active
Definition: GfxActor.h:174
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:176
RoR::GfxActor::RegisterCabMesh
void RegisterCabMesh(Ogre::Entity *ent, Ogre::SceneNode *snode, FlexObj *flexobj)
Definition: GfxActor.cpp:3363
RoR::GfxActor::m_help_tex
Ogre::TexturePtr m_help_tex
Definition: GfxActor.h:215
RoR::GfxActor::GetFlexbodies
std::vector< FlexBody * > & GetFlexbodies()
Definition: GfxActor.h:71
RoR::GfxActor::SetAeroEnginesVisible
void SetAeroEnginesVisible(bool visible)
Definition: GfxActor.cpp:2373
RoR::GfxActor::m_cab_mat_visual
Ogre::MaterialPtr m_cab_mat_visual
Updated in-place from templates.
Definition: GfxActor.h:208
RoR::GfxActor::m_last_debug_view
DebugViewType m_last_debug_view
Definition: GfxActor.h:173
RoR::VideoCamState::VCSTATE_ENABLED_ONLINE
@ VCSTATE_ENABLED_ONLINE
RoR::GfxActor::SetCastShadows
void SetCastShadows(bool value)
Definition: GfxActor.cpp:3327
RoR::GfxActor::SetBeaconsEnabled
void SetBeaconsEnabled(bool beacon_light_is_active)
Definition: GfxActor.cpp:2400
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:2384
RoR::GfxActor::UpdateCParticles
void UpdateCParticles()
Definition: GfxActor.cpp:2025
RoR::GfxActor::UpdateWingMeshes
void UpdateWingMeshes()
Definition: GfxActor.cpp:3397
GfxData.h
RoR::GfxActor::IsActorLive
bool IsActorLive() const
Should the visuals be updated for this actor?
Definition: GfxActor.cpp:1932
RoR::GfxActor::m_cparticles
std::vector< CParticle > m_cparticles
Definition: GfxActor.h:193
RoR::GfxActor::m_flexwheel_tasks
std::vector< std::shared_ptr< Task > > m_flexwheel_tasks
Definition: GfxActor.h:180
RoR::GfxActor::CalcPropAnimation
void CalcPropAnimation(PropAnim &anim, float &cstate, int &div, float dt)
Definition: GfxActor.cpp:2493
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:201
RoR::GfxActor
Definition: GfxActor.h:52
RoR::GfxActor::SetMaterialFlareOn
void SetMaterialFlareOn(int flare_index, bool state_on)
Definition: GfxActor.cpp:342
RoR::GfxActor::UpdateBeaconFlare
void UpdateBeaconFlare(Prop &prop, float dt, bool is_player_actor)
Definition: GfxActor.cpp:2128
RoR::GfxActor::GetDebugView
DebugViewType GetDebugView() const
Definition: GfxActor.h:145
RoR::GfxActor::UpdateFlares
void UpdateFlares(float dt, bool is_player)
Definition: GfxActor.cpp:3248
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:3370
RoR::GfxActor::m_particles_ripple
DustPool * m_particles_ripple
Definition: GfxActor.h:200
RoR::GfxActor::m_gfx_beams
std::vector< BeamGfx > m_gfx_beams
Definition: GfxActor.h:185
RoR::GfxActor::getExhausts
std::vector< Exhaust > & getExhausts()
Definition: GfxActor.h:74
RoR::GfxActor::UpdateFlexbodies
void UpdateFlexbodies()
Definition: GfxActor.cpp:3178
RoR::GfxActor::ResetFlexbodies
void ResetFlexbodies()
Definition: GfxActor.cpp:3201
RoR::SurveyMapEntity
Definition: SurveyMapEntity.h:35
RoR::GfxActor::UpdateWheelVisuals
void UpdateWheelVisuals()
Definition: GfxActor.cpp:1945
RoR::GfxActor::UpdateNetLabels
void UpdateNetLabels(float dt)
Definition: GfxActor.cpp:2077
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:199
RoR
Definition: AppContext.h:36
RoR::GfxActor::m_gfx_airbrakes
std::vector< AirbrakeGfx > m_gfx_airbrakes
Definition: GfxActor.h:186
RoR::GfxActor::UpdateExhausts
void UpdateExhausts()
Definition: GfxActor.cpp:2042
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:181
RoR::GfxActor::m_cab_mat_template_emissive
Ogre::MaterialPtr m_cab_mat_template_emissive
Definition: GfxActor.h:211
RoR::GfxActor::SetPropsVisible
void SetPropsVisible(bool visible)
Definition: GfxActor.cpp:2365
RoR::GfxActor::m_props
std::vector< Prop > m_props
Definition: GfxActor.h:187
RoR::GfxActor::~GfxActor
~GfxActor()
Definition: GfxActor.cpp:86
RoR::GfxActor::m_renderdash
RoR::Renderdash * m_renderdash
Definition: GfxActor.h:192