RigsofRods
Soft-body Physics Simulation
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
GfxData.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 
22 /*
23  @file
24  @brief Constants and data structures dedicated exclusively to visualization.
25  For simulation-related data structures, see 'physics/SimData.h'
26 */
27 
28 #pragma once
29 
30 #include "MeshObject.h"
31 #include "SimConstants.h"
32 
33 #include <Ogre.h>
34 #include <stdint.h>
35 #include <string>
36 
37 namespace RoR {
38 
41 
43 
79 
81 
91 
92 
93 enum class VideoCamState
94 {
99 };
100 
101 enum class DebugViewType
102 {
112 };
113 
115 {
122 };
123 
124 struct PropAnim
125 {
126  float animratio = 0;
129 
136  float animOpt3 = 0;
137  float animOpt5 = 0;
138  float lower_limit = 0;
139  float upper_limit = 0;
140 
141  // Only for SHIFTER
142  float shifterSmooth = 0.f;
143  float shifterStep = 0.f;
144  float shifterTarget = 0.f;
145 };
146 
148 struct Prop
149 {
154  Ogre::Vector3 pp_offset = Ogre::Vector3::ZERO;
155  Ogre::Vector3 pp_offset_orig = Ogre::Vector3::ZERO;
156  Ogre::Vector3 pp_rota = Ogre::Vector3::ZERO;
157  Ogre::Quaternion pp_rot = Ogre::Quaternion::IDENTITY;
158  Ogre::SceneNode* pp_scene_node = nullptr;
159  MeshObject* pp_mesh_obj = nullptr;
160  std::string pp_media[2];
161  std::vector<PropAnim> pp_animations;
162 
167 
169  // Special prop - steering wheel
171  Ogre::Vector3 pp_wheel_pos = Ogre::Vector3::ZERO;
172  Ogre::SceneNode* pp_wheel_scene_node = nullptr;
174 
175  // Special prop - beacon
176  char pp_beacon_type = 0;
177  Ogre::BillboardSet* pp_beacon_bbs[4] = {};
178  Ogre::SceneNode* pp_beacon_scene_node[4] = {};
179  Ogre::Light* pp_beacon_light[4] = {};
180  float pp_beacon_rot_rate[4] = {};
181  float pp_beacon_rot_angle[4] = {};
182 
183  // Special prop - aero engine
185  bool pp_aero_propeller_blade = false;
186  bool pp_aero_propeller_spin = false;
187 
188  void setPropMeshesVisible(bool visible)
189  {
190  if (pp_mesh_obj)
191  pp_mesh_obj->setVisible(visible);
192  if (pp_wheel_mesh_obj)
193  pp_wheel_mesh_obj->setVisible(visible);
194  if (pp_beacon_scene_node[0])
195  pp_beacon_scene_node[0]->setVisible(visible);
196  if (pp_beacon_scene_node[1])
197  pp_beacon_scene_node[1]->setVisible(visible);
198  if (pp_beacon_scene_node[2])
199  pp_beacon_scene_node[2]->setVisible(visible);
200  if (pp_beacon_scene_node[3])
201  pp_beacon_scene_node[3]->setVisible(visible);
202  }
203 };
204 
208 {
215  Ogre::Quaternion vcam_rotation;
216  Ogre::Vector3 vcam_pos_offset = Ogre::Vector3::ZERO;
217  std::string vcam_mat_name_orig;
218  Ogre::MaterialPtr vcam_material;
219  std::string vcam_off_tex_name;
220  Ogre::Camera* vcam_ogre_camera = nullptr;
221  Ogre::RenderTexture* vcam_render_target = nullptr;
222  Ogre::TexturePtr vcam_render_tex;
223  Ogre::SceneNode* vcam_debug_node = nullptr;
224  Ogre::RenderWindow* vcam_render_window = nullptr;
225  Ogre::SceneNode* vcam_prop_scenenode = nullptr;
226 };
227 
229 struct NodeGfx
230 {
231  NodeGfx(NodeNum_t node_idx):
232  nx_node_idx(node_idx),
233  nx_no_particles(false), // Bitfields can't be initialized in-class :(
234  nx_may_get_wet(false),
235  nx_is_hot(false),
236  nx_no_sparks(true),
237  nx_under_water_prev(false)
238  {}
239 
240  float nx_wet_time_sec = -1;
242 
243  // Bit flags
245  bool nx_may_get_wet:1;
246  bool nx_is_hot:1;
248  bool nx_no_sparks:1;
249 
250 };
251 
253 struct BeamGfx
254 {
255  BeamGfx();
256  ~BeamGfx();
257 
258  // We don't keep pointer to the Ogre::Entity - we rely on the SceneNode keeping it attached all the time.
259  Ogre::SceneNode* rod_scenenode = nullptr;
260  uint16_t rod_beam_index = 0;
261  float rod_diameter = 0.f;
262 
266  bool rod_is_visible = false;
267 };
268 
271 {
273 
276 
277  // We don't keep pointer to the Ogre::Entity - we rely on the SceneNode keeping it attached all the time.
278  Ogre::SceneNode* fbx_scenenode = nullptr;
280  bool fbx_is_visible = false;
281 };
282 
285 {
286  // AngelScript `dictionary` converts all primitives to `double` or `int64`, see 'scriptdictionary.cpp', function `Set()`
287 
288  /*FreeBeamGfxID_t*/int64_t fbr_id = FREEBEAMGFXID_INVALID;
289 
290  /*FreeForceID_t*/ int64_t fbr_freeforce_primary = FREEFORCEID_INVALID;
291  /*FreeForceID_t*/ int64_t fbr_freeforce_secondary = FREEFORCEID_INVALID;
292 
293  std::string fbr_mesh_name = "beam.mesh";
294  std::string fbr_material_name = "tracks/beam";
296 };
297 
298 struct WheelGfx
299 {
301  Flexable* wx_flex_mesh = nullptr;
302  Ogre::SceneNode* wx_scenenode = nullptr;
304  std::string wx_rim_mesh_name;
305 };
306 
308 {
309  Ogre::MeshPtr abx_mesh;
310  Ogre::SceneNode* abx_scenenode;
311  Ogre::Entity* abx_entity;
312  Ogre::Vector3 abx_offset;
316 };
317 
318 struct FlareMaterial // materialflares
319 {
321  Ogre::MaterialPtr mat_instance;
322  Ogre::ColourValue emissive_color;
323 };
324 
325 struct Exhaust
326 {
329  Ogre::SceneNode *smokeNode = nullptr;
330  Ogre::ParticleSystem* smoker = nullptr;
331  std::string particleSystemName;
332 };
333 
334 struct CParticle
335 {
338  Ogre::SceneNode *snode = nullptr;
339  Ogre::ParticleSystem* psys = nullptr;
340 };
341 
343 
344 } // namespace RoR
RoR::Exhaust::emitterNode
NodeNum_t emitterNode
Definition: GfxData.h:327
RoR::AirbrakeGfx::abx_ref_node
NodeNum_t abx_ref_node
Definition: GfxData.h:313
RoR::VideoCamera::vcam_rotation
Ogre::Quaternion vcam_rotation
Definition: GfxData.h:215
RoR::PROP_ANIM_FLAG_AIRSPEED
const PropAnimFlag_t PROP_ANIM_FLAG_AIRSPEED
Definition: GfxData.h:44
RoR::PROP_ANIM_FLAG_TORQUE
const PropAnimFlag_t PROP_ANIM_FLAG_TORQUE
Definition: GfxData.h:65
RoR::PROP_ANIM_FLAG_SHIFTER
const PropAnimFlag_t PROP_ANIM_FLAG_SHIFTER
'shifterman1, shifterman2, sequential, shifterlin, autoshifterlin'; animOpt3: see RoR::ShifterPropAni...
Definition: GfxData.h:61
RoR::WheelSide
WheelSide
Used by rig-def/addonpart/tuneup formats to specify wheel rim mesh orientation.
Definition: Application.h:542
RoR::PropAnim::upper_limit
float upper_limit
The upper limit for the animation.
Definition: GfxData.h:139
RoR::WheelGfx::wx_side
WheelSide wx_side
Definition: GfxData.h:303
RoR::BeamGfx::rod_diameter
float rod_diameter
meters
Definition: GfxData.h:261
RoR::PROP_ANIM_MODE_OFFSET_X
const PropAnimMode_t PROP_ANIM_MODE_OFFSET_X
Definition: GfxData.h:85
RoR::SHIFTERLIN
@ SHIFTERLIN
Definition: GfxData.h:120
RoR::Prop::pp_camera_mode_orig
CameraMode_t pp_camera_mode_orig
Dynamic visibility mode {0 and higher = cinecam index}.
Definition: GfxData.h:166
RoR::PROP_ANIM_FLAG_AIRBRAKE
const PropAnimFlag_t PROP_ANIM_FLAG_AIRBRAKE
Definition: GfxData.h:49
RoR::DebugViewType::DEBUGVIEW_BEAMS
@ DEBUGVIEW_BEAMS
RoR::PROP_ANIM_FLAG_AOA
const PropAnimFlag_t PROP_ANIM_FLAG_AOA
Definition: GfxData.h:47
RoR::FreeBeamGfxRequest::fbr_mesh_name
std::string fbr_mesh_name
Definition: GfxData.h:293
RoR::BeamGfx
Visuals of softbody beam (beam_t struct); Partially updated along with SimBuffer.
Definition: GfxData.h:253
RoR::VideoCamera::vcam_material
Ogre::MaterialPtr vcam_material
Definition: GfxData.h:218
RoR::AirbrakeGfx::abx_mesh
Ogre::MeshPtr abx_mesh
Definition: GfxData.h:309
RoR::PROP_ANIM_FLAG_BRAKE
const PropAnimFlag_t PROP_ANIM_FLAG_BRAKE
Definition: GfxData.h:55
RoR::VCAM_ROLE_INVALID
@ VCAM_ROLE_INVALID
Definition: Application.h:606
RoR::Prop::pp_beacon_rot_angle
float pp_beacon_rot_angle[4]
Radians.
Definition: GfxData.h:181
RoR::Prop::pp_offset
Ogre::Vector3 pp_offset
Definition: GfxData.h:154
RoR::PROP_ANIM_MODE_ROTA_Z
const PropAnimMode_t PROP_ANIM_MODE_ROTA_Z
Definition: GfxData.h:84
RoR::FreeBeamGfxID_t
int FreeBeamGfxID_t
Index into GfxScene::m_gfx_freebeams, use RoR::FREEBEAMGFXID_INVALID as empty value.
Definition: ForwardDeclarations.h:93
RoR::PropAnim::lower_limit
float lower_limit
The lower limit for the animation.
Definition: GfxData.h:138
RoR::PROP_ANIM_FLAG_DASHBOARD
const PropAnimFlag_t PROP_ANIM_FLAG_DASHBOARD
Used with dashboard system inputs, see enum DashData in file DashBoardManager.h.
Definition: GfxData.h:76
RoR::VideoCamera::vcam_render_tex
Ogre::TexturePtr vcam_render_tex
Definition: GfxData.h:222
RoR::DebugViewType::DEBUGVIEW_NONE
@ DEBUGVIEW_NONE
RoR::PropAnim::animMode
PropAnimMode_t animMode
Definition: GfxData.h:128
RoR::FlareMaterial::flare_index
int flare_index
Definition: GfxData.h:320
RoR::PropAnim::animFlags
PropAnimFlag_t animFlags
Definition: GfxData.h:127
RoR::PROP_ANIM_MODE_ROTA_X
const PropAnimMode_t PROP_ANIM_MODE_ROTA_X
Definition: GfxData.h:82
RoR::NODENUM_INVALID
static const NodeNum_t NODENUM_INVALID
Definition: ForwardDeclarations.h:55
RoR::SHIFTERMAN2
@ SHIFTERMAN2
Definition: GfxData.h:118
RoR::PROPID_INVALID
static const PropID_t PROPID_INVALID
Definition: ForwardDeclarations.h:62
RoR::NodeGfx::nx_no_particles
bool nx_no_particles
User-defined attr; disable all particles.
Definition: GfxData.h:244
RoR::DebugViewType::DEBUGVIEW_ROTATORS
@ DEBUGVIEW_ROTATORS
RoR::FreeBeamGfx::fbx_freeforce_primary
FreeForceID_t fbx_freeforce_primary
Required.
Definition: GfxData.h:274
RoR::DebugViewType
DebugViewType
Definition: GfxData.h:101
RoR::WheelGfx::wx_scenenode
Ogre::SceneNode * wx_scenenode
Definition: GfxData.h:302
RoR::FreeBeamGfxRequest::fbr_material_name
std::string fbr_material_name
Definition: GfxData.h:294
RoR::Exhaust
Definition: GfxData.h:325
RoR::Prop::pp_id
PropID_t pp_id
Definition: GfxData.h:150
RoR::Flexable
Definition: Flexable.h:34
SimConstants.h
RoR::FREEBEAMGFXID_INVALID
static const FreeBeamGfxID_t FREEBEAMGFXID_INVALID
Definition: ForwardDeclarations.h:94
RoR::VideoCamera::vcam_role
VideoCamRole vcam_role
Definition: GfxData.h:209
RoR::PropAnimMode_t
BitMask_t PropAnimMode_t
Definition: GfxData.h:80
RoR::VideoCamera::vcam_node_center
NodeNum_t vcam_node_center
Definition: GfxData.h:210
RoR::WheelSide::INVALID
@ INVALID
RoR::PROP_ANIM_MODE_NOFLIP
const PropAnimMode_t PROP_ANIM_MODE_NOFLIP
Definition: GfxData.h:89
MeshObject.h
RoR::Prop::pp_offset_orig
Ogre::Vector3 pp_offset_orig
Used with ANIM_FLAG_OFFSET*.
Definition: GfxData.h:155
RoR::VideoCamera::vcam_mat_name_orig
std::string vcam_mat_name_orig
For display in Tuning UI: Original material name from rig-def file, without per-actor stamping.
Definition: GfxData.h:217
DEFAULT_BEAM_DIAMETER
static const float DEFAULT_BEAM_DIAMETER
5 centimeters default beam width
Definition: SimConstants.h:52
RoR::CParticle
Definition: GfxData.h:334
RoR::WheelGfx
Definition: GfxData.h:298
RoR::DebugViewType::DEBUGVIEW_SUBMESH
@ DEBUGVIEW_SUBMESH
RoR::VideoCamera::vcam_render_target
Ogre::RenderTexture * vcam_render_target
Definition: GfxData.h:221
RoR::NodeGfx::NodeGfx
NodeGfx(NodeNum_t node_idx)
Definition: GfxData.h:231
RoR::Prop::pp_rot
Ogre::Quaternion pp_rot
Definition: GfxData.h:157
RoR::FreeBeamGfxRequest
Used by MSG_EDI_[ADD/MODIFY]_FREEBEAMGFX_REQUESTED; tailored for use with AngelScript thru GameScript...
Definition: GfxData.h:284
RoR::NodeGfx::nx_no_sparks
bool nx_no_sparks
User-defined attr;.
Definition: GfxData.h:248
RoR::PROP_ANIM_FLAG_PBRAKE
const PropAnimFlag_t PROP_ANIM_FLAG_PBRAKE
Definition: GfxData.h:59
RoR::VideoCamera::vcam_node_dir_y
NodeNum_t vcam_node_dir_y
Definition: GfxData.h:211
RoR::PROP_ANIM_FLAG_ARUDDER
const PropAnimFlag_t PROP_ANIM_FLAG_ARUDDER
Definition: GfxData.h:71
BITMASK
#define BITMASK(OFFSET)
Definition: BitFlags.h:10
RoR::PROP_ANIM_FLAG_RPM
const PropAnimFlag_t PROP_ANIM_FLAG_RPM
Definition: GfxData.h:53
RoR::Prop::pp_beacon_type
char pp_beacon_type
Special prop: beacon {0 = none, 'b' = user-specified, 'r' = red, 'p' = police lightbar,...
Definition: GfxData.h:176
RoR::VideoCamera::vcam_debug_node
Ogre::SceneNode * vcam_debug_node
Definition: GfxData.h:223
RoR::PROP_ANIM_FLAG_ALTIMETER
const PropAnimFlag_t PROP_ANIM_FLAG_ALTIMETER
Definition: GfxData.h:46
RoR::SHIFTERSEQ
@ SHIFTERSEQ
Definition: GfxData.h:119
RoR::Prop::pp_wheel_pos
Ogre::Vector3 pp_wheel_pos
Definition: GfxData.h:171
RoR::PROP_ANIM_MODE_ROTA_Y
const PropAnimMode_t PROP_ANIM_MODE_ROTA_Y
Definition: GfxData.h:83
RefCountingObjectPtr< Actor >
RoR::Prop::pp_aero_propeller_spin
bool pp_aero_propeller_spin
Special - blurred spinning propeller effect.
Definition: GfxData.h:186
RoR::FreeBeamGfxRequest::fbr_diameter
double fbr_diameter
meters
Definition: GfxData.h:295
RoR::PropAnim::animratio
float animratio
A coefficient for the animation, prop degree if used with mode: rotation and propoffset if used with ...
Definition: GfxData.h:126
RoR::BeamGfx::rod_target_actor
ActorPtr rod_target_actor
Definition: GfxData.h:265
RoR::VideoCamera::vcam_render_window
Ogre::RenderWindow * vcam_render_window
Definition: GfxData.h:224
RoR::FreeBeamGfx
Visuals of a 'freebeam' (a pair of HALFBEAM_ freeforces)
Definition: GfxData.h:270
RoR::PROP_ANIM_FLAG_STEERING
const PropAnimFlag_t PROP_ANIM_FLAG_STEERING
Definition: GfxData.h:68
RoR::PROP_ANIM_FLAG_GEAR
const PropAnimFlag_t PROP_ANIM_FLAG_GEAR
'gearreverse' (animOpt3=-1), 'gearneutral' (animOpt3=0), 'gear#' (animOpt3=#)
Definition: GfxData.h:78
RoR::PropAnim::shifterStep
float shifterStep
Definition: GfxData.h:143
RoR::Prop::pp_wheel_scene_node
Ogre::SceneNode * pp_wheel_scene_node
Definition: GfxData.h:172
RoR::CParticle::snode
Ogre::SceneNode * snode
Definition: GfxData.h:338
RoR::Prop::pp_node_ref
NodeNum_t pp_node_ref
Definition: GfxData.h:151
RoR::PropAnim
Definition: GfxData.h:124
RoR::VideoCamState::VCSTATE_ENABLED_OFFLINE
@ VCSTATE_ENABLED_OFFLINE
RoR::Prop::pp_node_y
NodeNum_t pp_node_y
Definition: GfxData.h:153
RoR::DebugViewType::DEBUGVIEW_SLIDENODES
@ DEBUGVIEW_SLIDENODES
RoR::Prop::pp_wheel_mesh_obj
MeshObject * pp_wheel_mesh_obj
Definition: GfxData.h:170
RoR::CParticle::psys
Ogre::ParticleSystem * psys
Definition: GfxData.h:339
RoR::FREEFORCEID_INVALID
static const FreeForceID_t FREEFORCEID_INVALID
Definition: ForwardDeclarations.h:68
RoR::FreeBeamGfx::fbx_scenenode
Ogre::SceneNode * fbx_scenenode
Definition: GfxData.h:278
RoR::AirbrakeGfx::abx_x_node
NodeNum_t abx_x_node
Definition: GfxData.h:314
RoR::VideoCamState::VCSTATE_INVALID
@ VCSTATE_INVALID
RoR::BeamGfx::rod_node1
NodeNum_t rod_node1
Node index - may change during simulation!
Definition: GfxData.h:263
RoR::PROP_ANIM_FLAG_AETORQUE
const PropAnimFlag_t PROP_ANIM_FLAG_AETORQUE
Definition: GfxData.h:62
RoR::Exhaust::smokeNode
Ogre::SceneNode * smokeNode
Definition: GfxData.h:329
RoR::SHIFTER_INVALID
@ SHIFTER_INVALID
Definition: GfxData.h:116
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::PROP_ANIM_FLAG_PERMANENT
const PropAnimFlag_t PROP_ANIM_FLAG_PERMANENT
Definition: GfxData.h:74
RoR::WheelGfx::wx_flex_mesh
Flexable * wx_flex_mesh
Definition: GfxData.h:301
RoR::NodeGfx
Gfx attributes/state of a softbody node.
Definition: GfxData.h:229
RoR::PROP_ANIM_MODE_AUTOANIMATE
const PropAnimMode_t PROP_ANIM_MODE_AUTOANIMATE
Definition: GfxData.h:88
RoR::WHEELID_INVALID
static const WheelID_t WHEELID_INVALID
Definition: ForwardDeclarations.h:59
RoR::Prop::pp_beacon_light
Ogre::Light * pp_beacon_light[4]
Definition: GfxData.h:179
RoR::VideoCamera::vcam_off_tex_name
std::string vcam_off_tex_name
Used when videocamera is offline.
Definition: GfxData.h:219
RoR::PROP_ANIM_FLAG_FLAP
const PropAnimFlag_t PROP_ANIM_FLAG_FLAP
Definition: GfxData.h:48
RoR::PROP_ANIM_FLAG_DIFFLOCK
const PropAnimFlag_t PROP_ANIM_FLAG_DIFFLOCK
Definition: GfxData.h:67
RoR::SHIFTERMAN1
@ SHIFTERMAN1
Definition: GfxData.h:117
RoR::WheelID_t
int WheelID_t
Index to Actor::ar_wheels, use RoR::WHEELID_INVALID as empty value.
Definition: ForwardDeclarations.h:58
RoR::CParticle::directionNode
NodeNum_t directionNode
Definition: GfxData.h:337
RoR::PROP_ANIM_FLAG_AESTATUS
const PropAnimFlag_t PROP_ANIM_FLAG_AESTATUS
Definition: GfxData.h:64
RoR::VideoCamera::vcam_ogre_camera
Ogre::Camera * vcam_ogre_camera
Definition: GfxData.h:220
RoR::FreeForceID_t
int FreeForceID_t
Unique sequentially generated ID of FreeForce; use ActorManager::GetFreeForceNextId().
Definition: ForwardDeclarations.h:67
RoR::AirbrakeGfx::abx_entity
Ogre::Entity * abx_entity
Definition: GfxData.h:311
RoR::AUTOSHIFTERLIN
@ AUTOSHIFTERLIN
Definition: GfxData.h:121
RoR::CameraMode_t
int CameraMode_t
Definition: Application.h:563
RoR::FreeBeamGfx::fbx_diameter
float fbx_diameter
meters
Definition: GfxData.h:279
RoR::PROP_ANIM_FLAG_SIGNALSTALK
const PropAnimFlag_t PROP_ANIM_FLAG_SIGNALSTALK
Turn indicator stalk position (-1=left, 0=off, 1=right)
Definition: GfxData.h:77
RoR::Prop
A mesh attached to vehicle frame via 3 nodes.
Definition: GfxData.h:148
MeshObject
Definition: MeshObject.h:35
RoR::PROP_ANIM_FLAG_VVI
const PropAnimFlag_t PROP_ANIM_FLAG_VVI
Definition: GfxData.h:45
RoR::FreeBeamGfxRequest::fbr_freeforce_primary
int64_t fbr_freeforce_primary
Required.
Definition: GfxData.h:290
RoR::AirbrakeGfx
Definition: GfxData.h:307
RoR::PROP_ANIM_MODE_OFFSET_Z
const PropAnimMode_t PROP_ANIM_MODE_OFFSET_Z
Definition: GfxData.h:87
RoR::PROP_ANIM_MODE_BOUNCE
const PropAnimMode_t PROP_ANIM_MODE_BOUNCE
Definition: GfxData.h:90
RoR::PROP_ANIM_FLAG_ACCEL
const PropAnimFlag_t PROP_ANIM_FLAG_ACCEL
Definition: GfxData.h:54
RoR::BeamGfx::rod_is_visible
bool rod_is_visible
Definition: GfxData.h:266
RoR::VideoCamera::vcam_node_lookat
NodeNum_t vcam_node_lookat
Only for VCAM_ROLE_TRACK_CAM.
Definition: GfxData.h:214
RoR::PropAnim::shifterTarget
float shifterTarget
Definition: GfxData.h:144
RoR::PropAnim::shifterSmooth
float shifterSmooth
Definition: GfxData.h:142
RoR::PROP_ANIM_FLAG_THROTTLE
const PropAnimFlag_t PROP_ANIM_FLAG_THROTTLE
Definition: GfxData.h:52
RoR::NodeGfx::nx_node_idx
NodeNum_t nx_node_idx
Definition: GfxData.h:241
RoR::FlareMaterial::mat_instance
Ogre::MaterialPtr mat_instance
Definition: GfxData.h:321
RoR::VideoCamera
An Ogre::Camera mounted on the actor and rendering into either in-scene texture or external window.
Definition: GfxData.h:207
RoR::AirbrakeGfx::abx_scenenode
Ogre::SceneNode * abx_scenenode
Definition: GfxData.h:310
RoR::VideoCamState::VCSTATE_DISABLED
@ VCSTATE_DISABLED
RoR::DebugViewType::DEBUGVIEW_SHOCKS
@ DEBUGVIEW_SHOCKS
RoR::CParticle::emitterNode
NodeNum_t emitterNode
Definition: GfxData.h:336
RoR::PROP_ANIM_FLAG_PITCH
const PropAnimFlag_t PROP_ANIM_FLAG_PITCH
Definition: GfxData.h:51
RoR::Prop::pp_rota
Ogre::Vector3 pp_rota
Definition: GfxData.h:156
RoR::PROP_ANIM_FLAG_TURBO
const PropAnimFlag_t PROP_ANIM_FLAG_TURBO
Definition: GfxData.h:60
RoR::VideoCamera::vcam_prop_scenenode
Ogre::SceneNode * vcam_prop_scenenode
Only for VCAM_ROLE_MIRROR_PROP_*.
Definition: GfxData.h:225
RoR::BeamGfx::rod_scenenode
Ogre::SceneNode * rod_scenenode
Definition: GfxData.h:259
RoR::PropAnim::animOpt5
float animOpt5
Definition: GfxData.h:137
RoR::NodeGfx::nx_may_get_wet
bool nx_may_get_wet
Attr; enables water drip and vapour.
Definition: GfxData.h:245
RoR::VideoCamera::vcam_node_alt_pos
NodeNum_t vcam_node_alt_pos
Definition: GfxData.h:213
RoR::PROP_ANIM_FLAG_HEADING
const PropAnimFlag_t PROP_ANIM_FLAG_HEADING
Definition: GfxData.h:66
RoR::Prop::pp_media
std::string pp_media[2]
Redundant, for Tuning UI. Media1 = prop mesh name, Media2 = steeringwheel mesh/beaconprop flare mat.
Definition: GfxData.h:160
RoR::PropAnimFlag_t
BitMask64_t PropAnimFlag_t
Definition: GfxData.h:42
RoR::NodeGfx::nx_is_hot
bool nx_is_hot
User-defined attr; emits vapour particles when in contact with water.
Definition: GfxData.h:246
RoR::DebugViewType::DEBUGVIEW_NODES
@ DEBUGVIEW_NODES
RoR::PropAnim::animOpt3
float animOpt3
MULTIPURPOSE.
Definition: GfxData.h:136
RoR::CAMERA_MODE_ALWAYS_VISIBLE
static CameraMode_t CAMERA_MODE_ALWAYS_VISIBLE
Definition: Application.h:565
RoR::FreeBeamGfx::fbx_is_visible
bool fbx_is_visible
Definition: GfxData.h:280
RoR::Prop::pp_animations
std::vector< PropAnim > pp_animations
Definition: GfxData.h:161
RoR::Prop::setPropMeshesVisible
void setPropMeshesVisible(bool visible)
Definition: GfxData.h:188
RoR::FreeBeamGfxRequest::fbr_id
int64_t fbr_id
ID of the freebeam gfx, use GfxScene::GetFreeBeamGfxNextId()
Definition: GfxData.h:288
RoR::Prop::pp_camera_mode_active
CameraMode_t pp_camera_mode_active
Dynamic visibility mode {0 and higher = cinecam index}.
Definition: GfxData.h:165
RoR::BeamGfx::rod_node2
NodeNum_t rod_node2
Node index - may change during simulation!
Definition: GfxData.h:264
RoR::VideoCamState::VCSTATE_ENABLED_ONLINE
@ VCSTATE_ENABLED_ONLINE
RoR::VideoCamRole
VideoCamRole
Definition: Application.h:590
RoR::VideoCamera::vcam_node_dir_z
NodeNum_t vcam_node_dir_z
Definition: GfxData.h:212
MeshObject::setVisible
void setVisible(bool b)
Definition: MeshObject.cpp:61
RoR::DebugViewType::DEBUGVIEW_SKELETON
@ DEBUGVIEW_SKELETON
RoR::WheelGfx::wx_wheel_id
WheelID_t wx_wheel_id
Definition: GfxData.h:300
RoR::Prop::pp_aero_propeller_blade
bool pp_aero_propeller_blade
Special - single blade mesh.
Definition: GfxData.h:185
RoR::DebugViewType::DEBUGVIEW_WHEELS
@ DEBUGVIEW_WHEELS
RoR::BeamGfx::BeamGfx
BeamGfx()
Definition: GfxData.cpp:28
RoR::PROP_ANIM_FLAG_AEPITCH
const PropAnimFlag_t PROP_ANIM_FLAG_AEPITCH
Definition: GfxData.h:63
RoR::PROP_ANIM_FLAG_ELEVATORS
const PropAnimFlag_t PROP_ANIM_FLAG_ELEVATORS
Definition: GfxData.h:75
RoR::Exhaust::directionNode
NodeNum_t directionNode
Definition: GfxData.h:328
RoR::PROP_ANIM_FLAG_BRUDDER
const PropAnimFlag_t PROP_ANIM_FLAG_BRUDDER
Definition: GfxData.h:72
RoR::FlareMaterial
Definition: GfxData.h:318
RoR::BeamGfx::rod_beam_index
uint16_t rod_beam_index
Definition: GfxData.h:260
RoR::PROP_ANIM_FLAG_SPEEDO
const PropAnimFlag_t PROP_ANIM_FLAG_SPEEDO
Definition: GfxData.h:58
RoR::VideoCamState
VideoCamState
Definition: GfxData.h:93
BITMASK64
#define BITMASK64(OFFSET)
Definition: BitFlags.h:11
RoR::VideoCamera::vcam_pos_offset
Ogre::Vector3 vcam_pos_offset
Definition: GfxData.h:216
RoR::WheelGfx::wx_rim_mesh_name
std::string wx_rim_mesh_name
Redundant, for Tuning UI. Only for 'meshwheels[2]' and 'flexbodywheels'.
Definition: GfxData.h:304
RoR::Prop::pp_mesh_obj
MeshObject * pp_mesh_obj
Optional; NULL if removed via tuneup/addonpart.
Definition: GfxData.h:159
RoR::FreeBeamGfx::fbx_freeforce_secondary
FreeForceID_t fbx_freeforce_secondary
Not required for fixed-end beams.
Definition: GfxData.h:275
BitMask_t
uint32_t BitMask_t
Definition: BitFlags.h:7
RoR::Prop::pp_beacon_rot_rate
float pp_beacon_rot_rate[4]
Radians per second.
Definition: GfxData.h:180
RoR::AirbrakeGfx::abx_y_node
NodeNum_t abx_y_node
Definition: GfxData.h:315
RoR::AirbrakeGfx::abx_offset
Ogre::Vector3 abx_offset
Definition: GfxData.h:312
RoR::Exhaust::particleSystemName
std::string particleSystemName
Name in .particle file ~ for display in Tuning UI.
Definition: GfxData.h:331
RoR::Prop::pp_wheel_rot_degree
float pp_wheel_rot_degree
Definition: GfxData.h:173
RoR::Prop::pp_beacon_bbs
Ogre::BillboardSet * pp_beacon_bbs[4]
Definition: GfxData.h:177
RoR::Prop::pp_scene_node
Ogre::SceneNode * pp_scene_node
The pivot scene node (parented to root-node).
Definition: GfxData.h:158
RoR::PROP_ANIM_FLAG_CLUTCH
const PropAnimFlag_t PROP_ANIM_FLAG_CLUTCH
Definition: GfxData.h:56
BitMask64_t
uint64_t BitMask64_t
Definition: BitFlags.h:8
RoR::FlareMaterial::emissive_color
Ogre::ColourValue emissive_color
Definition: GfxData.h:322
RoR::PROP_ANIM_FLAG_ROLL
const PropAnimFlag_t PROP_ANIM_FLAG_ROLL
Definition: GfxData.h:50
RoR::Prop::pp_node_x
NodeNum_t pp_node_x
Definition: GfxData.h:152
RoR::Exhaust::smoker
Ogre::ParticleSystem * smoker
This remains nullptr if removed via addonpart_unwanted_exhaust or Tuning UI.
Definition: GfxData.h:330
RoR
Definition: AppContext.h:36
RoR::NodeGfx::nx_wet_time_sec
float nx_wet_time_sec
'Wet' means "already out of water, producing dripping particles". Set to -1 when not 'wet'.
Definition: GfxData.h:240
RoR::PROP_ANIM_FLAG_AILERONS
const PropAnimFlag_t PROP_ANIM_FLAG_AILERONS
Definition: GfxData.h:70
RoR::Prop::pp_beacon_scene_node
Ogre::SceneNode * pp_beacon_scene_node[4]
Definition: GfxData.h:178
RoR::PropID_t
int PropID_t
Index to GfxActor::m_props, use RoR::PROPID_INVALID as empty value.
Definition: ForwardDeclarations.h:61
RoR::PROP_ANIM_FLAG_BTHROTTLE
const PropAnimFlag_t PROP_ANIM_FLAG_BTHROTTLE
Definition: GfxData.h:73
RoR::PROP_ANIM_FLAG_EVENT
const PropAnimFlag_t PROP_ANIM_FLAG_EVENT
Definition: GfxData.h:69
RoR::FreeBeamGfxRequest::fbr_freeforce_secondary
int64_t fbr_freeforce_secondary
Not required for fixed-end beams.
Definition: GfxData.h:291
RoR::BeamGfx::~BeamGfx
~BeamGfx()
Definition: GfxData.cpp:33
RoR::PROP_ANIM_MODE_OFFSET_Y
const PropAnimMode_t PROP_ANIM_MODE_OFFSET_Y
Definition: GfxData.h:86
RoR::PROP_ANIM_FLAG_TACHO
const PropAnimFlag_t PROP_ANIM_FLAG_TACHO
Definition: GfxData.h:57
RoR::NodeGfx::nx_under_water_prev
bool nx_under_water_prev
State.
Definition: GfxData.h:247
RoR::FreeBeamGfx::fbx_id
FreeBeamGfxID_t fbx_id
ID of the freebeam gfx, use GfxScene::GetFreeBeamGfxNextId()
Definition: GfxData.h:272
RoR::Prop::pp_aero_engine_idx
int pp_aero_engine_idx
Special - a turboprop/pistonprop reference.
Definition: GfxData.h:184
RoR::ShifterPropAnim
ShifterPropAnim
< PropAnim::animOpt3 values for PROP_ANIM_FLAG_SHIFTER
Definition: GfxData.h:114