RigsofRods  2023.09
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 {
113 };
117 {
118  return (dv == DEBUGVIEWTYPE_LAST) ? DEBUGVIEWTYPE_FIRST : static_cast<DebugViewType>(static_cast<int>(dv) + 1);
119 }
120 
122 {
129 };
130 
131 struct PropAnim
132 {
133  float animratio = 0;
136 
143  float animOpt3 = 0;
144  float animOpt5 = 0;
145  float lower_limit = 0;
146  float upper_limit = 0;
147 
148  // Only for SHIFTER
149  float shifterSmooth = 0.f;
150  float shifterStep = 0.f;
151  float shifterTarget = 0.f;
152 };
153 
155 struct Prop
156 {
161  Ogre::Vector3 pp_offset = Ogre::Vector3::ZERO;
162  Ogre::Vector3 pp_offset_orig = Ogre::Vector3::ZERO;
163  Ogre::Vector3 pp_rota = Ogre::Vector3::ZERO;
164  Ogre::Quaternion pp_rot = Ogre::Quaternion::IDENTITY;
165  Ogre::SceneNode* pp_scene_node = nullptr;
166  MeshObject* pp_mesh_obj = nullptr;
167  std::string pp_media[2];
168  std::vector<PropAnim> pp_animations;
169 
174 
176  // Special prop - steering wheel
178  Ogre::Vector3 pp_wheel_pos = Ogre::Vector3::ZERO;
179  Ogre::SceneNode* pp_wheel_scene_node = nullptr;
181 
182  // Special prop - beacon
183  char pp_beacon_type = 0;
184  Ogre::BillboardSet* pp_beacon_bbs[4] = {};
185  Ogre::SceneNode* pp_beacon_scene_node[4] = {};
186  Ogre::Light* pp_beacon_light[4] = {};
187  float pp_beacon_rot_rate[4] = {};
188  float pp_beacon_rot_angle[4] = {};
189 
190  // Special prop - aero engine
192  bool pp_aero_propeller_blade = false;
193  bool pp_aero_propeller_spin = false;
194 
195  void setPropMeshesVisible(bool visible)
196  {
197  if (pp_mesh_obj)
198  pp_mesh_obj->setVisible(visible);
199  if (pp_wheel_mesh_obj)
200  pp_wheel_mesh_obj->setVisible(visible);
201  if (pp_beacon_scene_node[0])
202  pp_beacon_scene_node[0]->setVisible(visible);
203  if (pp_beacon_scene_node[1])
204  pp_beacon_scene_node[1]->setVisible(visible);
205  if (pp_beacon_scene_node[2])
206  pp_beacon_scene_node[2]->setVisible(visible);
207  if (pp_beacon_scene_node[3])
208  pp_beacon_scene_node[3]->setVisible(visible);
209  }
210 };
211 
215 {
222  Ogre::Quaternion vcam_rotation;
223  Ogre::Vector3 vcam_pos_offset = Ogre::Vector3::ZERO;
224  std::string vcam_mat_name_orig;
225  Ogre::MaterialPtr vcam_material;
226  std::string vcam_off_tex_name;
227  Ogre::Camera* vcam_ogre_camera = nullptr;
228  Ogre::RenderTexture* vcam_render_target = nullptr;
229  Ogre::TexturePtr vcam_render_tex;
230  Ogre::SceneNode* vcam_debug_node = nullptr;
231  Ogre::RenderWindow* vcam_render_window = nullptr;
232  Ogre::SceneNode* vcam_prop_scenenode = nullptr;
233 };
234 
236 struct NodeGfx
237 {
238  NodeGfx(NodeNum_t node_idx):
239  nx_node_idx(node_idx),
240  nx_no_particles(false), // Bitfields can't be initialized in-class :(
241  nx_may_get_wet(false),
242  nx_is_hot(false),
243  nx_no_sparks(true),
244  nx_under_water_prev(false)
245  {}
246 
247  float nx_wet_time_sec = -1;
249 
250  // Bit flags
252  bool nx_may_get_wet:1;
253  bool nx_is_hot:1;
255  bool nx_no_sparks:1;
256 
257 };
258 
260 struct BeamGfx
261 {
262  BeamGfx();
263  ~BeamGfx();
264 
265  // We don't keep pointer to the Ogre::Entity - we rely on the SceneNode keeping it attached all the time.
266  Ogre::SceneNode* rod_scenenode = nullptr;
267  uint16_t rod_beam_index = 0;
268  float rod_diameter = 0.f;
269 
273  bool rod_is_visible = false;
274 };
275 
278 {
280 
283 
284  // We don't keep pointer to the Ogre::Entity - we rely on the SceneNode keeping it attached all the time.
285  Ogre::SceneNode* fbx_scenenode = nullptr;
287  bool fbx_is_visible = false;
288 };
289 
292 {
293  // AngelScript `dictionary` converts all primitives to `double` or `int64`, see 'scriptdictionary.cpp', function `Set()`
294 
295  /*FreeBeamGfxID_t*/int64_t fbr_id = FREEBEAMGFXID_INVALID;
296 
297  /*FreeForceID_t*/ int64_t fbr_freeforce_primary = FREEFORCEID_INVALID;
298  /*FreeForceID_t*/ int64_t fbr_freeforce_secondary = FREEFORCEID_INVALID;
299 
300  std::string fbr_mesh_name = "beam.mesh";
301  std::string fbr_material_name = "tracks/beam";
303 };
304 
305 struct WheelGfx
306 {
308  Flexable* wx_flex_mesh = nullptr;
309  Ogre::SceneNode* wx_scenenode = nullptr;
311  std::string wx_rim_mesh_name;
312 };
313 
315 {
316  Ogre::MeshPtr abx_mesh;
317  Ogre::SceneNode* abx_scenenode;
318  Ogre::Entity* abx_entity;
319  Ogre::Vector3 abx_offset;
323 };
324 
325 struct FlareMaterial // materialflares
326 {
328  Ogre::MaterialPtr mat_instance;
329  Ogre::ColourValue emissive_color;
330 };
331 
332 struct Exhaust
333 {
336  Ogre::SceneNode *smokeNode = nullptr;
337  Ogre::ParticleSystem* smoker = nullptr;
338  std::string particleSystemName;
339 };
340 
341 struct CParticle
342 {
345  Ogre::SceneNode *snode = nullptr;
346  Ogre::ParticleSystem* psys = nullptr;
347 };
348 
350 
351 } // namespace RoR
RoR::Exhaust::emitterNode
NodeNum_t emitterNode
Definition: GfxData.h:334
RoR::AirbrakeGfx::abx_ref_node
NodeNum_t abx_ref_node
Definition: GfxData.h:320
RoR::VideoCamera::vcam_rotation
Ogre::Quaternion vcam_rotation
Definition: GfxData.h:222
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:546
RoR::PropAnim::upper_limit
float upper_limit
The upper limit for the animation.
Definition: GfxData.h:146
RoR::WheelGfx::wx_side
WheelSide wx_side
Definition: GfxData.h:310
RoR::BeamGfx::rod_diameter
float rod_diameter
meters
Definition: GfxData.h:268
RoR::PROP_ANIM_MODE_OFFSET_X
const PropAnimMode_t PROP_ANIM_MODE_OFFSET_X
Definition: GfxData.h:85
RoR::SHIFTERLIN
@ SHIFTERLIN
Definition: GfxData.h:127
RoR::Prop::pp_camera_mode_orig
CameraMode_t pp_camera_mode_orig
Dynamic visibility mode {0 and higher = cinecam index}.
Definition: GfxData.h:173
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:300
RoR::BeamGfx
Visuals of softbody beam (beam_t struct); Partially updated along with SimBuffer.
Definition: GfxData.h:260
RoR::VideoCamera::vcam_material
Ogre::MaterialPtr vcam_material
Definition: GfxData.h:225
RoR::AirbrakeGfx::abx_mesh
Ogre::MeshPtr abx_mesh
Definition: GfxData.h:316
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:610
RoR::Prop::pp_beacon_rot_angle
float pp_beacon_rot_angle[4]
Radians.
Definition: GfxData.h:188
RoR::Prop::pp_offset
Ogre::Vector3 pp_offset
Definition: GfxData.h:161
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:145
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:229
RoR::DebugViewType::DEBUGVIEW_NONE
@ DEBUGVIEW_NONE
RoR::PropAnim::animMode
PropAnimMode_t animMode
Definition: GfxData.h:135
RoR::FlareMaterial::flare_index
int flare_index
Definition: GfxData.h:327
RoR::PropAnim::animFlags
PropAnimFlag_t animFlags
Definition: GfxData.h:134
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:125
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:251
RoR::DebugViewType::DEBUGVIEW_ROTATORS
@ DEBUGVIEW_ROTATORS
RoR::FreeBeamGfx::fbx_freeforce_primary
FreeForceID_t fbx_freeforce_primary
Required.
Definition: GfxData.h:281
RoR::DebugViewType
DebugViewType
Definition: GfxData.h:101
RoR::WheelGfx::wx_scenenode
Ogre::SceneNode * wx_scenenode
Definition: GfxData.h:309
RoR::FreeBeamGfxRequest::fbr_material_name
std::string fbr_material_name
Definition: GfxData.h:301
RoR::Exhaust
Definition: GfxData.h:332
RoR::Prop::pp_id
PropID_t pp_id
Definition: GfxData.h:157
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:216
RoR::PropAnimMode_t
BitMask_t PropAnimMode_t
Definition: GfxData.h:80
RoR::VideoCamera::vcam_node_center
NodeNum_t vcam_node_center
Definition: GfxData.h:217
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:162
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:224
DEFAULT_BEAM_DIAMETER
static const float DEFAULT_BEAM_DIAMETER
5 centimeters default beam width
Definition: SimConstants.h:52
RoR::DEBUGVIEWTYPE_FIRST
constexpr DebugViewType DEBUGVIEWTYPE_FIRST
Definition: GfxData.h:114
RoR::CParticle
Definition: GfxData.h:341
RoR::WheelGfx
Definition: GfxData.h:305
RoR::DebugViewType::DEBUGVIEW_SUBMESH
@ DEBUGVIEW_SUBMESH
RoR::VideoCamera::vcam_render_target
Ogre::RenderTexture * vcam_render_target
Definition: GfxData.h:228
RoR::NodeGfx::NodeGfx
NodeGfx(NodeNum_t node_idx)
Definition: GfxData.h:238
RoR::Prop::pp_rot
Ogre::Quaternion pp_rot
Definition: GfxData.h:164
RoR::FreeBeamGfxRequest
Used by MSG_EDI_[ADD/MODIFY]_FREEBEAMGFX_REQUESTED; tailored for use with AngelScript thru GameScript...
Definition: GfxData.h:291
RoR::NodeGfx::nx_no_sparks
bool nx_no_sparks
User-defined attr;.
Definition: GfxData.h:255
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:218
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:183
RoR::VideoCamera::vcam_debug_node
Ogre::SceneNode * vcam_debug_node
Definition: GfxData.h:230
RoR::PROP_ANIM_FLAG_ALTIMETER
const PropAnimFlag_t PROP_ANIM_FLAG_ALTIMETER
Definition: GfxData.h:46
RoR::SHIFTERSEQ
@ SHIFTERSEQ
Definition: GfxData.h:126
RoR::Prop::pp_wheel_pos
Ogre::Vector3 pp_wheel_pos
Definition: GfxData.h:178
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:193
RoR::FreeBeamGfxRequest::fbr_diameter
double fbr_diameter
meters
Definition: GfxData.h:302
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:133
RoR::BeamGfx::rod_target_actor
ActorPtr rod_target_actor
Definition: GfxData.h:272
RoR::VideoCamera::vcam_render_window
Ogre::RenderWindow * vcam_render_window
Definition: GfxData.h:231
RoR::FreeBeamGfx
Visuals of a 'freebeam' (a pair of HALFBEAM_ freeforces)
Definition: GfxData.h:277
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:150
RoR::Prop::pp_wheel_scene_node
Ogre::SceneNode * pp_wheel_scene_node
Definition: GfxData.h:179
RoR::CParticle::snode
Ogre::SceneNode * snode
Definition: GfxData.h:345
RoR::Prop::pp_node_ref
NodeNum_t pp_node_ref
Definition: GfxData.h:158
RoR::PropAnim
Definition: GfxData.h:131
RoR::VideoCamState::VCSTATE_ENABLED_OFFLINE
@ VCSTATE_ENABLED_OFFLINE
RoR::Prop::pp_node_y
NodeNum_t pp_node_y
Definition: GfxData.h:160
RoR::DebugViewType::DEBUGVIEW_SLIDENODES
@ DEBUGVIEW_SLIDENODES
RoR::Prop::pp_wheel_mesh_obj
MeshObject * pp_wheel_mesh_obj
Definition: GfxData.h:177
RoR::CParticle::psys
Ogre::ParticleSystem * psys
Definition: GfxData.h:346
RoR::FREEFORCEID_INVALID
static const FreeForceID_t FREEFORCEID_INVALID
Definition: ForwardDeclarations.h:68
RoR::FreeBeamGfx::fbx_scenenode
Ogre::SceneNode * fbx_scenenode
Definition: GfxData.h:285
RoR::AirbrakeGfx::abx_x_node
NodeNum_t abx_x_node
Definition: GfxData.h:321
RoR::VideoCamState::VCSTATE_INVALID
@ VCSTATE_INVALID
RoR::BeamGfx::rod_node1
NodeNum_t rod_node1
Node index - may change during simulation!
Definition: GfxData.h:270
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:336
RoR::SHIFTER_INVALID
@ SHIFTER_INVALID
Definition: GfxData.h:123
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:308
RoR::NextDebugViewType
DebugViewType NextDebugViewType(DebugViewType dv)
Definition: GfxData.h:116
RoR::NodeGfx
Gfx attributes/state of a softbody node.
Definition: GfxData.h:236
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:186
RoR::VideoCamera::vcam_off_tex_name
std::string vcam_off_tex_name
Used when videocamera is offline.
Definition: GfxData.h:226
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:124
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:344
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:227
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:318
RoR::AUTOSHIFTERLIN
@ AUTOSHIFTERLIN
Definition: GfxData.h:128
RoR::CameraMode_t
int CameraMode_t
Definition: Application.h:567
RoR::FreeBeamGfx::fbx_diameter
float fbx_diameter
meters
Definition: GfxData.h:286
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:155
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:297
RoR::AirbrakeGfx
Definition: GfxData.h:314
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:273
RoR::VideoCamera::vcam_node_lookat
NodeNum_t vcam_node_lookat
Only for VCAM_ROLE_TRACK_CAM.
Definition: GfxData.h:221
RoR::PropAnim::shifterTarget
float shifterTarget
Definition: GfxData.h:151
RoR::PropAnim::shifterSmooth
float shifterSmooth
Definition: GfxData.h:149
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:248
RoR::FlareMaterial::mat_instance
Ogre::MaterialPtr mat_instance
Definition: GfxData.h:328
RoR::VideoCamera
An Ogre::Camera mounted on the actor and rendering into either in-scene texture or external window.
Definition: GfxData.h:214
RoR::AirbrakeGfx::abx_scenenode
Ogre::SceneNode * abx_scenenode
Definition: GfxData.h:317
RoR::VideoCamState::VCSTATE_DISABLED
@ VCSTATE_DISABLED
RoR::DebugViewType::DEBUGVIEW_SHOCKS
@ DEBUGVIEW_SHOCKS
RoR::CParticle::emitterNode
NodeNum_t emitterNode
Definition: GfxData.h:343
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:163
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:232
RoR::BeamGfx::rod_scenenode
Ogre::SceneNode * rod_scenenode
Definition: GfxData.h:266
RoR::PropAnim::animOpt5
float animOpt5
Definition: GfxData.h:144
RoR::NodeGfx::nx_may_get_wet
bool nx_may_get_wet
Attr; enables water drip and vapour.
Definition: GfxData.h:252
RoR::VideoCamera::vcam_node_alt_pos
NodeNum_t vcam_node_alt_pos
Definition: GfxData.h:220
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:167
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:253
RoR::DebugViewType::DEBUGVIEW_NODES
@ DEBUGVIEW_NODES
RoR::PropAnim::animOpt3
float animOpt3
MULTIPURPOSE.
Definition: GfxData.h:143
RoR::CAMERA_MODE_ALWAYS_VISIBLE
static CameraMode_t CAMERA_MODE_ALWAYS_VISIBLE
Definition: Application.h:569
RoR::FreeBeamGfx::fbx_is_visible
bool fbx_is_visible
Definition: GfxData.h:287
RoR::Prop::pp_animations
std::vector< PropAnim > pp_animations
Definition: GfxData.h:168
RoR::Prop::setPropMeshesVisible
void setPropMeshesVisible(bool visible)
Definition: GfxData.h:195
RoR::FreeBeamGfxRequest::fbr_id
int64_t fbr_id
ID of the freebeam gfx, use GfxScene::GetFreeBeamGfxNextId()
Definition: GfxData.h:295
RoR::Prop::pp_camera_mode_active
CameraMode_t pp_camera_mode_active
Dynamic visibility mode {0 and higher = cinecam index}.
Definition: GfxData.h:172
RoR::BeamGfx::rod_node2
NodeNum_t rod_node2
Node index - may change during simulation!
Definition: GfxData.h:271
RoR::VideoCamState::VCSTATE_ENABLED_ONLINE
@ VCSTATE_ENABLED_ONLINE
RoR::VideoCamRole
VideoCamRole
Definition: Application.h:594
RoR::VideoCamera::vcam_node_dir_z
NodeNum_t vcam_node_dir_z
Definition: GfxData.h:219
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:307
RoR::Prop::pp_aero_propeller_blade
bool pp_aero_propeller_blade
Special - single blade mesh.
Definition: GfxData.h:192
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:335
RoR::PROP_ANIM_FLAG_BRUDDER
const PropAnimFlag_t PROP_ANIM_FLAG_BRUDDER
Definition: GfxData.h:72
RoR::FlareMaterial
Definition: GfxData.h:325
RoR::BeamGfx::rod_beam_index
uint16_t rod_beam_index
Definition: GfxData.h:267
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:223
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:311
RoR::Prop::pp_mesh_obj
MeshObject * pp_mesh_obj
Optional; NULL if removed via tuneup/addonpart.
Definition: GfxData.h:166
RoR::FreeBeamGfx::fbx_freeforce_secondary
FreeForceID_t fbx_freeforce_secondary
Not required for fixed-end beams.
Definition: GfxData.h:282
BitMask_t
uint32_t BitMask_t
Definition: BitFlags.h:7
RoR::DEBUGVIEWTYPE_LAST
constexpr DebugViewType DEBUGVIEWTYPE_LAST
Definition: GfxData.h:115
RoR::Prop::pp_beacon_rot_rate
float pp_beacon_rot_rate[4]
Radians per second.
Definition: GfxData.h:187
RoR::AirbrakeGfx::abx_y_node
NodeNum_t abx_y_node
Definition: GfxData.h:322
RoR::AirbrakeGfx::abx_offset
Ogre::Vector3 abx_offset
Definition: GfxData.h:319
RoR::Exhaust::particleSystemName
std::string particleSystemName
Name in .particle file ~ for display in Tuning UI.
Definition: GfxData.h:338
RoR::Prop::pp_wheel_rot_degree
float pp_wheel_rot_degree
Definition: GfxData.h:180
RoR::Prop::pp_beacon_bbs
Ogre::BillboardSet * pp_beacon_bbs[4]
Definition: GfxData.h:184
RoR::Prop::pp_scene_node
Ogre::SceneNode * pp_scene_node
The pivot scene node (parented to root-node).
Definition: GfxData.h:165
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:329
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:159
RoR::Exhaust::smoker
Ogre::ParticleSystem * smoker
This remains nullptr if removed via addonpart_unwanted_exhaust or Tuning UI.
Definition: GfxData.h:337
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:247
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:185
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:298
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::DebugViewType::DEBUGVIEW_BUOYANCY
@ DEBUGVIEW_BUOYANCY
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:254
RoR::FreeBeamGfx::fbx_id
FreeBeamGfxID_t fbx_id
ID of the freebeam gfx, use GfxScene::GetFreeBeamGfxNextId()
Definition: GfxData.h:279
RoR::Prop::pp_aero_engine_idx
int pp_aero_engine_idx
Special - a turboprop/pistonprop reference.
Definition: GfxData.h:191
RoR::ShifterPropAnim
ShifterPropAnim
< PropAnim::animOpt3 values for PROP_ANIM_FLAG_SHIFTER
Definition: GfxData.h:121