RigsofRods
Soft-body Physics Simulation
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
ActorSpawner.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 2013-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 
28 #pragma once
29 
30 #include "Application.h"
31 #include "RigDef_Parser.h"
32 #include "SimData.h"
33 #include "FlexFactory.h"
34 #include "FlexObj.h"
35 
36 #include <OgreString.h>
37 #include <string>
38 
39 namespace RoR {
40 
43 
71 {
72  friend class RoR::FlexFactory; // Needs to use `ComposeName()` and `SetupNewEntity()`
73 
74 public:
75 
77  {
78  size_t num_nodes = 0;
79  size_t num_beams = 0;
80  size_t num_shocks = 0;
81  size_t num_rotators = 0;
82  size_t num_wings = 0;
83  size_t num_airbrakes = 0;
84  size_t num_fixes = 0;
85  // ... more to come ...
86  };
87 
88  enum struct Message
89  {
90  TYPE_INFO,
92  TYPE_ERROR,
93  };
94 
97  void ConfigureSections(Ogre::String const & sectionconfig, RigDef::DocumentPtr def);
98  void ConfigureAddonParts(TuneupDefPtr& tuneup_def);
101  static void SetupDefaultSoundSources(ActorPtr const& actor);
103 
106  ActorPtr GetActor() { return m_actor; }
108  std::string GetSubmeshGroundmodelName();
110 
111 private:
112 
114  {
115  enum class MirrorPropType
116  {
117  MPROP_NONE,
118  MPROP_LEFT,
119  MPROP_RIGHT,
120  };
121 
123  material_flare_def(nullptr),
124  video_camera_def(nullptr),
125  mirror_prop_type(MirrorPropType::MPROP_NONE),
126  mirror_prop_scenenode(nullptr)
127  {}
128 
129  CustomMaterial(Ogre::MaterialPtr& mat):
130  material(mat),
131  material_flare_def(nullptr),
132  video_camera_def(nullptr),
133  mirror_prop_type(MirrorPropType::MPROP_NONE),
134  mirror_prop_scenenode(nullptr)
135  {}
136 
137  Ogre::MaterialPtr material;
141  Ogre::SceneNode* mirror_prop_scenenode;
142  };
143 
144  struct Exception: public std::runtime_error
145  {
146  Exception(Ogre::String const & message):runtime_error(message) {}
147  };
148 
151  // PLEASE maintain alphabetical order
152  void ProcessAirbrake(RigDef::Airbrake & def);
153  void ProcessAnimator(RigDef::Animator & def);
155  void ProcessAuthor(RigDef::Author & def);
156  void ProcessAxle(RigDef::Axle & def);
157  void ProcessBeam(RigDef::Beam & def);
158  void ProcessBrakes(RigDef::Brakes & def);
160  void ProcessCamera(RigDef::Camera & def);
161  void ProcessCinecam(RigDef::Cinecam & def);
164  void ProcessCommand(RigDef::Command2 & def);
165  void ProcessContacter(RigDef::Node::Ref & node_ref);
167  void ProcessDescription(Ogre::String const& line);
168  void ProcessEngine(RigDef::Engine & def);
170  void ProcessEngturbo(RigDef::Engturbo & def);
171  void ProcessExhaust(RigDef::Exhaust & def);
173  void ProcessFixedNode(RigDef::Node::Ref node_ref); // 'fixes'
174  void ProcessFlare2(RigDef::Flare2 & def);
175  void ProcessFlare3(RigDef::Flare3 & def);
179  void ProcessFusedrag(RigDef::Fusedrag & def);
180  void ProcessGlobals(RigDef::Globals & def);
182  void ProcessHelp(RigDef::Help & def);
183  void ProcessHook(RigDef::Hook & def);
184  void ProcessHydro(RigDef::Hydro & def);
186  void ProcessLockgroup(RigDef::Lockgroup & lockgroup);
190  void ProcessMinimass(RigDef::Minimass & def);
191  void ProcessNode(RigDef::Node & def);
192  void ProcessParticle(RigDef::Particle & def);
194  void ProcessProp(RigDef::Prop & def);
196  void ProcessRopable(RigDef::Ropable & def);
197  void ProcessRope(RigDef::Rope & def);
198  void ProcessRotator(RigDef::Rotator & def);
199  void ProcessRotator2(RigDef::Rotator2 & def);
201  void ProcessShock(RigDef::Shock & def);
202  void ProcessShock2(RigDef::Shock2 & def);
203  void ProcessShock3(RigDef::Shock3 & def);
208  void ProcessSubmesh(RigDef::Submesh & def);
209  void ProcessTie(RigDef::Tie & def);
213  void ProcessTrigger(RigDef::Trigger & def);
214  void ProcessTurbojet(RigDef::Turbojet & def);
217  void ProcessWheel(RigDef::Wheel & def);
218  void ProcessWheel2(RigDef::Wheel2 & def);
219  void ProcessWing(RigDef::Wing & def);
221 
224 
225  void BuildAeroEngine(
226  NodeNum_t ref_node_index,
227  NodeNum_t back_node_index,
228  NodeNum_t blade_1_node_index,
229  NodeNum_t blade_2_node_index,
230  NodeNum_t blade_3_node_index,
231  NodeNum_t blade_4_node_index,
232  NodeNum_t couplenode_index,
233  bool is_turboprops,
234  Ogre::String const & airfoil,
235  float power,
236  float pitch);
237 
239 
240  void _ProcessKeyInertia(
241  RigDef::Inertia & inertia,
242  RigDef::Inertia & inertia_defaults,
243  RoR::CmdKeyInertia& contract_key,
244  RoR::CmdKeyInertia& extend_key);
245 
247  void BuildWheelBeams(
248  unsigned int num_rays,
249  NodeNum_t base_node_index,
250  node_t *axis_node_1,
251  node_t *axis_node_2,
252  float tyre_spring,
253  float tyre_damping,
254  float rim_spring,
255  float rim_damping,
256  std::shared_ptr<RigDef::BeamDefaults> beam_defaults,
257  RigDef::Node::Ref const & rigidity_node_id,
258  float max_extension = 0.f);
259 
261  unsigned int AddWheelBeam(
262  node_t *node_1,
263  node_t *node_2,
264  float spring,
265  float damping,
266  std::shared_ptr<RigDef::BeamDefaults> beam_defaults,
267  float max_contraction = -1.f,
268  float max_extension = -1.f,
269  BeamType type = BEAM_NORMAL);
270 
275  WheelID_t wheel_id,
276  unsigned int num_rays,
277  node_t *axis_node_1,
278  node_t *axis_node_2,
279  node_t *reference_arm_node,
280  unsigned int reserve_nodes,
281  unsigned int reserve_beams,
282  float wheel_radius,
283  RigDef::WheelPropulsion propulsion,
284  RigDef::WheelBraking braking,
285  std::shared_ptr<RigDef::NodeDefaults> node_defaults,
286  float wheel_mass,
287  float wheel_width = -1.f);
288 
290  std::pair<unsigned int, bool> AddNode(RigDef::Node::Id & id);
291  void InitNode(node_t & node, Ogre::Vector3 const & position);
292  void InitNode(unsigned int node_index, Ogre::Vector3 const & position);
293  void InitNode(node_t & node, Ogre::Vector3 const & position, std::shared_ptr<RigDef::NodeDefaults> node_defaults);
294  beam_t& AddBeam(node_t & node_1, node_t & node_2, std::shared_ptr<RigDef::BeamDefaults> & defaults, int detacher_group);
295  unsigned int AddWheelRimBeam(RigDef::Wheel2 & wheel_2_def, node_t *node_1, node_t *node_2);
296  unsigned int AddTyreBeam(RigDef::Wheel2 & wheel_2_def, node_t *node_1, node_t *node_2);
297  unsigned int _SectionWheels2AddBeam(RigDef::Wheel2 & wheel_2_def, node_t *node_1, node_t *node_2);
299  WheelID_t AddWheel2(RigDef::Wheel2 & wheel_2_def); // 'wheels2'
300  void GetWheelAxisNodes(RigDef::BaseWheel& def, node_t*& out_node_1, node_t*& out_node_2);
301  void AddExhaust(NodeNum_t emitter_node_idx, NodeNum_t direction_node_idx);
302  RailGroup* CreateRail(std::vector<RigDef::Node::Range> & node_ranges);
303  void InitializeRig();
304  void FinalizeRig();
306 
309  void CalcMemoryRequirements(ActorMemoryRequirements& req, RigDef::Document::Module* module_def);
312  void WashCalculator();
313  void AdjustNodeBuoyancy(node_t & node, RigDef::Node & node_def, std::shared_ptr<RigDef::NodeDefaults> defaults);
314  void AdjustNodeBuoyancy(node_t & node, std::shared_ptr<RigDef::NodeDefaults> defaults);
315  void InitBeam(beam_t & beam, node_t *node_1, node_t *node_2);
316  void CalculateBeamLength(beam_t & beam);
317  void SetBeamStrength(beam_t & beam, float strength);
318  void SetBeamSpring(beam_t & beam, float spring);
319  void SetBeamDamping(beam_t & beam, float damping);
320  void SetBeamDeformationThreshold(beam_t & beam, std::shared_ptr<RigDef::BeamDefaults> beam_defaults);
321  void ValidateRotator(int id, int axis1, int axis2, NodeNum_t *nodes1, NodeNum_t *nodes2);
322 
324  std::string ComposeName(const std::string& object, int number = -1);
325 
329  bool AssignWheelToAxle(int & _out_axle_wheel, node_t *axis_node_1, node_t *axis_node_2);
330 
331  // GetFree*(): Gets a free slot; checks limits, sets it's array position and updates 'free_node' index.
332  node_t& GetFreeNode();
333  beam_t& GetFreeBeam();
334  node_t& GetAndInitFreeNode(Ogre::Vector3 const & position);
335  beam_t& GetAndInitFreeBeam(node_t & node_1, node_t & node_2);
337 
338  float ComputeWingArea(
339  Ogre::Vector3 const & ref,
340  Ogre::Vector3 const & x,
341  Ogre::Vector3 const & y,
342  Ogre::Vector3 const & aref);
343 
347  std::vector<RigDef::Node::Range> & node_ranges,
348  std::vector<NodeNum_t> & out_node_indices);
350 
353  node_t* GetBeamNodePointer(RigDef::Node::Ref const & node_ref);
354  NodeNum_t FindNodeIndex(RigDef::Node::Ref & node_ref, bool silent = false);
355  NodeNum_t ResolveNodeRef(RigDef::Node::Ref const & node_ref);
356  node_t* GetNodePointer(RigDef::Node::Ref const & node_ref);
358  beam_t& GetBeam(unsigned int index);
359  beam_t* FindBeamInRig(NodeNum_t node_a, NodeNum_t node_b);
362 
365  bool CheckAxleLimit(unsigned int count);
366  bool CheckSubmeshLimit(unsigned int count);
367  bool CheckTexcoordLimit(unsigned int count);
368  bool CheckCabLimit(unsigned int count);
369  bool CheckCameraRailLimit(unsigned int count);
370  static bool CheckSoundScriptLimit(ActorPtr const& vehicle, unsigned int count);
371  bool CheckAeroEngineLimit(unsigned int count);
372  bool CheckScrewpropLimit(unsigned int count);
374 
377  void CreateBeamVisuals(beam_t const& beam, int beam_index, bool visible, std::shared_ptr<RigDef::BeamDefaults> const& beam_defaults, std::string material_override="");
378  void CreateWheelSkidmarks(WheelID_t wheel_index);
379  void FinalizeGfxSetup();
380  Ogre::MaterialPtr FindOrCreateCustomizedMaterial(const std::string& mat_lookup_name, const std::string& mat_lookup_rg);
381  Ogre::MaterialPtr CreateSimpleMaterial(Ogre::ColourValue color);
382  Ogre::ParticleSystem* CreateParticleSystem(std::string const & name, std::string const & template_name);
383  RigDef::MaterialFlareBinding* FindFlareBindingForMaterial(std::string const & material_name);
384  RigDef::VideoCamera* FindVideoCameraByMaterial(std::string const & material_name);
386  void CreateMirrorPropVideoCam(Ogre::MaterialPtr custom_mat, CustomMaterial::MirrorPropType type, Ogre::SceneNode* prop_scenenode);
387  void SetupNewEntity(Ogre::Entity* e, Ogre::ColourValue simple_color);
388  Ogre::MaterialPtr InstantiateManagedMaterial(Ogre::String const & rg_name, Ogre::String const & source_name, Ogre::String const & clone_name);
389  void CreateCabVisual();
390  void CreateMaterialFlare(int flare_index, Ogre::MaterialPtr mat);
391  std::string GetCurrentElementMediaRG();
392  void AssignManagedMaterialTexture(Ogre::TextureUnitState* tus, const std::string & mm_name, int media_id, const std::string& tex_name);
393 
395  void CreateWheelVisuals(
396  WheelID_t wheel_id,
397  NodeNum_t node_base_index,
398  unsigned int def_num_rays,
399  Ogre::String const& face_material_name,
400  Ogre::String const& face_material_rg,
401  Ogre::String const& band_material_name,
402  Ogre::String const& band_material_rg,
403  bool separate_rim,
404  float rim_ratio = 1.f
405  );
406 
408  WheelID_t wheel_id,
409  NodeNum_t node_base_index,
410  NodeNum_t axis_node_1,
411  NodeNum_t axis_node_2,
412  int num_rays,
413  float radius,
414  WheelSide side,
415  std::string rim_mesh_name,
416  std::string rim_mesh_rg,
417  std::string tire_mesh_name,
418  std::string tire_mesh_rg);
419 
421  WheelID_t wheel_id,
422  NodeNum_t base_node_index,
423  NodeNum_t axis_node_1_index,
424  NodeNum_t axis_node_2_index,
425  unsigned int num_rays,
426  WheelSide side,
427  Ogre::String mesh_name,
428  Ogre::String mesh_rg,
429  Ogre::String material_name,
430  Ogre::String material_rg,
431  float rim_radius);
433 
436  static void AddSoundSource(ActorPtr const& vehicle, SoundScriptInstancePtr sound_script, NodeNum_t node_index, int type = -2);
437  static void AddSoundSourceInstance(ActorPtr const& vehicle, Ogre::String const & sound_script_name, int node_index, int type = -2);
439 
442  void AddMessage(Message type, Ogre::String const & text);
444  void HandleException();
446 
448  {
449  // Minimum node mass
451  };
452 
457  std::list<std::shared_ptr<RigDef::Document::Module>>
459  Ogre::Vector3 m_spawn_position;
465 
469  std::string m_cab_material_name;
470  std::string m_help_material_name;
471  float m_wing_area;
477  float m_fuse_y_max;
479  std::vector<CabTexcoord> m_oldstyle_cab_texcoords;
480  std::vector<CabSubmesh> m_oldstyle_cab_submeshes;
482  std::shared_ptr<RigDef::Document::Module> m_current_module;
483  std::map<Ogre::String, unsigned int> m_named_nodes;
485 
489  std::map<std::string, CustomMaterial> m_material_substitutions;
490  std::map<std::string, Ogre::MaterialPtr> m_managed_materials;
492  Ogre::MaterialPtr m_cab_trans_material;
493  Ogre::MaterialPtr m_simple_material_base;
497  // Grouping nodes for diagnostics:
498  Ogre::SceneNode* m_actor_grouping_scenenode = nullptr;
499  Ogre::SceneNode* m_wheels_parent_scenenode = nullptr;
500  Ogre::SceneNode* m_props_parent_scenenode = nullptr;
501  Ogre::SceneNode* m_flexbodies_parent_scenenode = nullptr;
502  Ogre::SceneNode* m_flares_parent_scenenode = nullptr;
503  Ogre::SceneNode* m_particles_parent_scenenode = nullptr;
504 };
506 
508 
509 } // namespace RoR
RoR::ActorSpawner::ProcessWing
void ProcessWing(RigDef::Wing &def)
Definition: ActorSpawner.cpp:918
RoR::ActorSpawner::m_current_module
std::shared_ptr< RigDef::Document::Module > m_current_module
For resolving addonparts.
Definition: ActorSpawner.h:482
RoR::ActorSpawner::CustomMaterial::MirrorPropType::MPROP_RIGHT
@ MPROP_RIGHT
RoR::ActorSpawner::CheckSubmeshLimit
bool CheckSubmeshLimit(unsigned int count)
Definition: ActorSpawner.cpp:6168
RigDef::Wheel
Definition: RigDef_File.h:1446
RoR::ActorSpawner::ActorMemoryRequirements::num_rotators
size_t num_rotators
Definition: ActorSpawner.h:81
RoR::ActorSpawner::ProcessHook
void ProcessHook(RigDef::Hook &def)
Definition: ActorSpawner.cpp:3213
RigDef::GuiSettings
Definition: RigDef_File.h:949
RoR::ActorSpawner::AddSoundSource
static void AddSoundSource(ActorPtr const &vehicle, SoundScriptInstancePtr sound_script, NodeNum_t node_index, int type=-2)
Definition: ActorSpawner.cpp:1184
RoR::ActorSpawner::ProcessHydro
void ProcessHydro(RigDef::Hydro &def)
Definition: ActorSpawner.cpp:3928
y
float y
Definition: (ValueTypes) quaternion.h:6
RigDef::Node::Ref
Legacy parser resolved references on-the-fly and the condition to check named nodes was "are there an...
Definition: RigDef_Node.h:77
RoR::ActorSpawner::m_current_keyword
RigDef::Keyword m_current_keyword
For error reports.
Definition: ActorSpawner.h:481
RigDef::Prop
Definition: RigDef_File.h:1085
RoR::ActorSpawner::ProcessSubmesh
void ProcessSubmesh(RigDef::Submesh &def)
Definition: ActorSpawner.cpp:1332
RoR::ActorSpawner::ProcessGlobals
void ProcessGlobals(RigDef::Globals &def)
Definition: ActorSpawner.cpp:6128
RoR::ActorSpawner::m_custom_resource_group
std::string m_custom_resource_group
Definition: ActorSpawner.h:461
RoR::BeamType
BeamType
Definition: SimData.h:69
RoR::ActorSpawner::ProcessFlare2
void ProcessFlare2(RigDef::Flare2 &def)
Definition: ActorSpawner.cpp:2124
RoR::ActorSpawner::GetBeam
beam_t & GetBeam(unsigned int index)
Definition: ActorSpawner.cpp:6258
RoR::ActorSpawner::ProcessRope
void ProcessRope(RigDef::Rope &def)
Definition: ActorSpawner.cpp:2970
RoR::ActorSpawner::CheckCameraRailLimit
bool CheckCameraRailLimit(unsigned int count)
Definition: ActorSpawner.cpp:6217
RigDef::CollisionRange
Definition: RigDef_File.h:759
RoR::ActorSpawner::ProcessSoundSource
void ProcessSoundSource(RigDef::SoundSource &def)
Definition: ActorSpawner.cpp:1202
RigDef::Engturbo
Definition: RigDef_File.h:832
RoR::ActorSpawner::FindFlareBindingForMaterial
RigDef::MaterialFlareBinding * FindFlareBindingForMaterial(std::string const &material_name)
Returns NULL if none found.
Definition: ActorSpawner.cpp:6495
RoR::ActorSpawner::ConfigureSections
void ConfigureSections(Ogre::String const &sectionconfig, RigDef::DocumentPtr def)
Definition: ActorSpawner.cpp:90
RoR::ActorSpawner::AddWheel2
WheelID_t AddWheel2(RigDef::Wheel2 &wheel_2_def)
Definition: ActorSpawner.cpp:4912
RigDef::Author
Definition: RigDef_File.h:612
RoR::ActorSpawner::ActorMemoryRequirements::num_fixes
size_t num_fixes
Definition: ActorSpawner.h:84
RoR::ActorSpawner::ProcessMinimass
void ProcessMinimass(RigDef::Minimass &def)
Definition: ActorSpawner.cpp:1578
RoR::ActorSpawner::ProcessEngine
void ProcessEngine(RigDef::Engine &def)
Definition: ActorSpawner.cpp:5447
RoR::ActorSpawner::ProcessGuiSettings
void ProcessGuiSettings(RigDef::GuiSettings &def)
Definition: ActorSpawner.cpp:1238
RoR::ActorSpawner::m_file
RigDef::DocumentPtr m_file
Definition: ActorSpawner.h:456
RoR::ActorSpawner::m_fuse_z_min
float m_fuse_z_min
Definition: ActorSpawner.h:474
RoR::ActorSpawner::ProcessBrakes
void ProcessBrakes(RigDef::Brakes &def)
Definition: ActorSpawner.cpp:5395
RigDef::Flare3
Definition: RigDef_File.h:891
RoR::RailGroup
A series of RailSegment-s for SlideNode to slide along. Can be closed in a loop.
Definition: SlideNode.h:53
RoR::ActorSpawner::m_particles_parent_scenenode
Ogre::SceneNode * m_particles_parent_scenenode
this isn't used for moving/hiding things, just helps developers inspect the scene graph.
Definition: ActorSpawner.h:503
RigDef::RailGroup
Definition: RigDef_File.h:1126
RoR::ActorSpawner::m_actor_grouping_scenenode
Ogre::SceneNode * m_actor_grouping_scenenode
Topmost common parent; this isn't used for moving things, just helps developers inspect the scene gra...
Definition: ActorSpawner.h:498
RoR::ActorSpawner::ComposeName
std::string ComposeName(const std::string &object, int number=-1)
Creates name containing actor ID token, i.e. "Object#1 (filename.truck [Instance ID 1])".
Definition: ActorSpawner.cpp:697
RoR::ActorSpawner::ProcessExtCamera
void ProcessExtCamera(RigDef::ExtCamera &def)
Definition: ActorSpawner.cpp:1229
RoR::ActorSpawner::ProcessRotator
void ProcessRotator(RigDef::Rotator &def)
Definition: ActorSpawner.cpp:3479
RoR::ActorSpawner::ProcessHelp
void ProcessHelp(RigDef::Help &def)
Definition: ActorSpawner.cpp:5468
RoR::ActorSpawner::SetBeamDeformationThreshold
void SetBeamDeformationThreshold(beam_t &beam, std::shared_ptr< RigDef::BeamDefaults > beam_defaults)
Definition: ActorSpawner.cpp:5578
RoR::ActorSpawner::BuildWheelBeams
void BuildWheelBeams(unsigned int num_rays, NodeNum_t base_node_index, node_t *axis_node_1, node_t *axis_node_2, float tyre_spring, float tyre_damping, float rim_spring, float rim_damping, std::shared_ptr< RigDef::BeamDefaults > beam_defaults, RigDef::Node::Ref const &rigidity_node_id, float max_extension=0.f)
'wheels', 'meshwheels'
Definition: ActorSpawner.cpp:4792
RigDef::Camera
Definition: RigDef_File.h:726
RoR::ActorSpawner::AddExhaust
void AddExhaust(NodeNum_t emitter_node_idx, NodeNum_t direction_node_idx)
Definition: ActorSpawner.cpp:6043
RigDef::Hydro
Definition: RigDef_File.h:979
RoR::ActorSpawner::ProcessShock
void ProcessShock(RigDef::Shock &def)
Definition: ActorSpawner.cpp:4169
RigDef::CollisionBox
Definition: RigDef_File.h:754
RigDef::Ropable
Definition: RigDef_File.h:1132
RoR::ActorSpawner::ProcessLockgroup
void ProcessLockgroup(RigDef::Lockgroup &lockgroup)
Definition: ActorSpawner.cpp:3283
RoR::ActorSpawner::CreateWheelSkidmarks
void CreateWheelSkidmarks(WheelID_t wheel_index)
Definition: ActorSpawner.cpp:4905
RoR::BEAM_NORMAL
@ BEAM_NORMAL
Definition: SimData.h:71
RoR::ActorSpawner::m_simple_material_base
Ogre::MaterialPtr m_simple_material_base
Definition: ActorSpawner.h:493
RoR::ActorSpawner::ActorSpawnState
Definition: ActorSpawner.h:447
RoR::ActorSpawner::m_flexbodies_parent_scenenode
Ogre::SceneNode * m_flexbodies_parent_scenenode
this isn't used for moving/hiding things, just helps developers inspect the scene graph.
Definition: ActorSpawner.h:501
RoR::ActorSpawner::FindNodeIndex
NodeNum_t FindNodeIndex(RigDef::Node::Ref &node_ref, bool silent=false)
Definition: ActorSpawner.cpp:3077
RigDef::Airbrake
Definition: RigDef_File.h:458
RoR::ActorSpawner::ProcessCamera
void ProcessCamera(RigDef::Camera &def)
Definition: ActorSpawner.cpp:5498
RigDef::Flare2
Definition: RigDef_File.h:877
RigDef::Help
Definition: RigDef_File.h:955
RoR::ActorSpawner::ProcessContacter
void ProcessContacter(RigDef::Node::Ref &node_ref)
Definition: ActorSpawner.cpp:3473
RoR::ActorSpawner::SetCurrentKeyword
void SetCurrentKeyword(RigDef::Keyword keyword)
Definition: ActorSpawner.h:443
RoR::ActorSpawner::Message::TYPE_INFO
@ TYPE_INFO
RoR::ActorSpawner::ProcessMeshWheel2
void ProcessMeshWheel2(RigDef::MeshWheel2 &def)
Definition: ActorSpawner.cpp:4581
RigDef::Trigger
Definition: RigDef_File.h:1376
RoR::ActorSpawner::ProcessFusedrag
void ProcessFusedrag(RigDef::Fusedrag &def)
Definition: ActorSpawner.cpp:733
RoR::ActorSpawner::ProcessAirbrake
void ProcessAirbrake(RigDef::Airbrake &def)
Definition: ActorSpawner.cpp:873
RoR::ActorSpawner::ProcessTorqueCurve
void ProcessTorqueCurve(RigDef::TorqueCurve &def)
Definition: ActorSpawner.cpp:2865
RigDef::Pistonprop
Definition: RigDef_File.h:1074
RoR::ActorSpawner::CustomMaterial::mirror_prop_scenenode
Ogre::SceneNode * mirror_prop_scenenode
Definition: ActorSpawner.h:141
RoR::ActorSpawner::CustomMaterial
Definition: ActorSpawner.h:113
RigDef::Document::Module
Definition: RigDef_File.h:1486
RoR::ActorSpawner::ComputeWingArea
float ComputeWingArea(Ogre::Vector3 const &ref, Ogre::Vector3 const &x, Ogre::Vector3 const &y, Ogre::Vector3 const &aref)
Definition: ActorSpawner.cpp:1155
RoR::ActorSpawner::m_generate_wing_position_lights
bool m_generate_wing_position_lights
Definition: ActorSpawner.h:462
RoR::ActorSpawner::ConfigureAddonParts
void ConfigureAddonParts(TuneupDefPtr &tuneup_def)
Definition: ActorSpawner.cpp:109
RigDef::FlaregroupNoImport
Definition: RigDef_File.h:896
RigDef::FlexBodyWheel
Definition: RigDef_File.h:916
RoR::ActorSpawner::ActorMemoryRequirements::num_beams
size_t num_beams
Definition: ActorSpawner.h:79
RigDef::Particle
Definition: RigDef_File.h:1067
RoR::ActorSpawner::m_flex_factory
RoR::FlexFactory m_flex_factory
Definition: ActorSpawner.h:488
RoR::SimpleInertia
Designed to be run on main/rendering loop (FPS)
Definition: CmdKeyInertia.h:66
RigDef::CameraRail
Definition: RigDef_File.h:733
RoR::ActorSpawner::m_managed_materials
std::map< std::string, Ogre::MaterialPtr > m_managed_materials
Definition: ActorSpawner.h:490
RigDef::WheelPropulsion
WheelPropulsion
Definition: RigDef_File.h:251
RoR::ActorSpawner::SetBeamSpring
void SetBeamSpring(beam_t &beam, float spring)
Definition: ActorSpawner.cpp:6300
RoR::ActorSpawner::ValidateRotator
void ValidateRotator(int id, int axis1, int axis2, NodeNum_t *nodes1, NodeNum_t *nodes2)
Definition: ActorSpawner.cpp:6938
RoR::ActorSpawner::FindVideoCameraByMaterial
RigDef::VideoCamera * FindVideoCameraByMaterial(std::string const &material_name)
Returns NULL if none found.
Definition: ActorSpawner.cpp:6510
RoR::ActorSpawner::CalcMemoryRequirements
void CalcMemoryRequirements(ActorMemoryRequirements &req, RigDef::Document::Module *module_def)
Definition: ActorSpawner.cpp:154
RoR::FlexFactory
Definition: FlexFactory.h:163
RigDef::Hook
Definition: RigDef_File.h:960
RefCountingObjectPtr< TuneupDef >
RigDef::AntiLockBrakes
Definition: RigDef_File.h:600
RoR::ActorSpawner::_ProcessKeyInertia
void _ProcessKeyInertia(RigDef::Inertia &inertia, RigDef::Inertia &inertia_defaults, RoR::CmdKeyInertia &contract_key, RoR::CmdKeyInertia &extend_key)
Definition: ActorSpawner.cpp:3583
RoR::ActorSpawner::GetAndInitFreeNode
node_t & GetAndInitFreeNode(Ogre::Vector3 const &position)
Definition: ActorSpawner.cpp:6293
RoR::ActorSpawner::_ProcessSimpleInertia
void _ProcessSimpleInertia(RigDef::Inertia &def, RoR::SimpleInertia &obj)
Definition: ActorSpawner.cpp:3558
RoR::ActorSpawner::ProcessAxle
void ProcessAxle(RigDef::Axle &def)
Definition: ActorSpawner.cpp:2686
RoR::ActorSpawner::ProcessEngturbo
void ProcessEngturbo(RigDef::Engturbo &def)
Definition: ActorSpawner.cpp:5405
RoR::ActorSpawner
Processes a RigDef::Document (parsed from 'truck' file format) into a simulated gameplay object (Acto...
Definition: ActorSpawner.h:70
RoR::ActorSpawner::m_cab_trans_material
Ogre::MaterialPtr m_cab_trans_material
Definition: ActorSpawner.h:492
RoR::ActorSpawnRequest
Definition: SimData.h:813
RoR::ActorSpawner::ProcessEngoption
void ProcessEngoption(RigDef::Engoption &def)
Definition: ActorSpawner.cpp:5417
RigDef::Brakes
Definition: RigDef_File.h:704
RigDef::Command2
Definition: RigDef_File.h:764
RoR::ActorSpawner::ActorMemoryRequirements::num_shocks
size_t num_shocks
Definition: ActorSpawner.h:80
RoR::ActorSpawner::CheckCabLimit
bool CheckCabLimit(unsigned int count)
Definition: ActorSpawner.cpp:6205
RigDef::SoundSource2
Definition: RigDef_File.h:1290
RoR::ActorSpawner::ActorMemoryRequirements::num_airbrakes
size_t num_airbrakes
Definition: ActorSpawner.h:83
RoR::ActorSpawner::ProcessShock3
void ProcessShock3(RigDef::Shock3 &def)
Definition: ActorSpawner.cpp:4010
RoR::ActorSpawner::GetActor
ActorPtr GetActor()
Definition: ActorSpawner.h:106
RoR::ActorSpawner::AddMessage
void AddMessage(Message type, Ogre::String const &text)
Maintenance.
Definition: ActorSpawner.cpp:5776
RoR::ActorSpawner::ProcessAnimator
void ProcessAnimator(RigDef::Animator &def)
Definition: ActorSpawner.cpp:3740
RoR::ActorSpawner::CustomMaterial::MirrorPropType::MPROP_NONE
@ MPROP_NONE
RoR::ActorSpawner::SetupNewEntity
void SetupNewEntity(Ogre::Entity *e, Ogre::ColourValue simple_color)
Full texture and material setup.
Definition: ActorSpawner.cpp:6733
RoR::ActorSpawner::ProcessFlaregroupNoImport
void ProcessFlaregroupNoImport(RigDef::FlaregroupNoImport &def)
Definition: ActorSpawner.cpp:2359
RoR::ActorSpawner::InstantiateManagedMaterial
Ogre::MaterialPtr InstantiateManagedMaterial(Ogre::String const &rg_name, Ogre::String const &source_name, Ogre::String const &clone_name)
Definition: ActorSpawner.cpp:2394
RoR::beam_t
Simulation: An edge in the softbody structure.
Definition: SimData.h:330
RoR::ActorSpawner::ProcessShock2
void ProcessShock2(RigDef::Shock2 &def)
Definition: ActorSpawner.cpp:4088
RoR::ActorSpawner::FindOrCreateCustomizedMaterial
Ogre::MaterialPtr FindOrCreateCustomizedMaterial(const std::string &mat_lookup_name, const std::string &mat_lookup_rg)
Definition: ActorSpawner.cpp:6526
RoR::ActorSpawner::m_oldstyle_renderdash
RoR::Renderdash * m_oldstyle_renderdash
Definition: ActorSpawner.h:494
RoR::ActorSpawner::CreateVideoCamera
void CreateVideoCamera(RigDef::VideoCamera *def)
Definition: ActorSpawner.cpp:7033
RoR::ActorSpawner::ResolveNodeRef
NodeNum_t ResolveNodeRef(RigDef::Node::Ref const &node_ref)
Definition: ActorSpawner.cpp:5807
RoR::ActorSpawner::CheckAeroEngineLimit
bool CheckAeroEngineLimit(unsigned int count)
Definition: ActorSpawner.cpp:6229
RoR::ActorSpawner::ProcessMeshWheel
void ProcessMeshWheel(RigDef::MeshWheel &def)
Definition: ActorSpawner.cpp:4525
DEFAULT_MINIMASS
static const float DEFAULT_MINIMASS
minimum node mass in Kg
Definition: SimConstants.h:54
RoR::ActorSpawner::ProcessRopable
void ProcessRopable(RigDef::Ropable &def)
Definition: ActorSpawner.cpp:2920
RigDef::Engoption
Definition: RigDef_File.h:817
RoR::NodeNum_t
uint16_t NodeNum_t
Node position within Actor::ar_nodes; use RoR::NODENUM_INVALID as empty value.
Definition: ForwardDeclarations.h:54
RigDef::Shock2
Definition: RigDef_File.h:1205
SimData.h
Core data structures for simulation; Everything affected by by either physics, network or user intera...
RoR::ActorSpawner::ActorMemoryRequirements
Definition: ActorSpawner.h:76
RoR::ActorSpawner::AddTyreBeam
unsigned int AddTyreBeam(RigDef::Wheel2 &wheel_2_def, node_t *node_1, node_t *node_2)
Definition: ActorSpawner.cpp:5283
RoR::ActorSpawner::m_oldstyle_cab_texcoords
std::vector< CabTexcoord > m_oldstyle_cab_texcoords
Definition: ActorSpawner.h:479
RoR::ActorSpawner::ProcessTurboprop2
void ProcessTurboprop2(RigDef::Turboprop2 &def)
Definition: ActorSpawner.cpp:826
RoR::ActorSpawner::TranslateBrakingDef
wheel_t::BrakeCombo TranslateBrakingDef(RigDef::WheelBraking def)
Definition: ActorSpawner.cpp:4494
RoR::ActorSpawner::AddWheel
WheelID_t AddWheel(RigDef::Wheel &wheel)
Definition: ActorSpawner.cpp:4849
RoR::ActorSpawner::ProcessAuthor
void ProcessAuthor(RigDef::Author &def)
Definition: ActorSpawner.cpp:5473
RoR::ActorSpawner::CheckTexcoordLimit
bool CheckTexcoordLimit(unsigned int count)
Definition: ActorSpawner.cpp:6180
keyword
static int keyword
Definition: Bench_TruckParser_IdentifyKeyword.cpp:1448
RoR::ActorSpawner::CreateParticleSystem
Ogre::ParticleSystem * CreateParticleSystem(std::string const &name, std::string const &template_name)
Definition: ActorSpawner.cpp:7262
RigDef::Keyword
Keyword
Definition: RigDef_File.h:65
RoR::ActorSpawner::m_props_parent_scenenode
Ogre::SceneNode * m_props_parent_scenenode
this isn't used for moving/hiding things, just helps developers inspect the scene graph.
Definition: ActorSpawner.h:500
RoR::ActorSpawner::ConfigureAssetPacks
void ConfigureAssetPacks(ActorPtr actor, RigDef::DocumentPtr def)
Definition: ActorSpawner.cpp:143
RigDef::Wheel2
Definition: RigDef_File.h:1455
RoR::ActorSpawner::ProcessSpeedLimiter
void ProcessSpeedLimiter(RigDef::SpeedLimiter &def)
Definition: ActorSpawner.cpp:2859
RigDef::TractionControl
Definition: RigDef_File.h:1354
RoR::ActorSpawner::m_help_material_name
std::string m_help_material_name
Definition: ActorSpawner.h:470
RoR::ActorSpawner::CustomMaterial::CustomMaterial
CustomMaterial(Ogre::MaterialPtr &mat)
Definition: ActorSpawner.h:129
RoR::ActorSpawner::CustomMaterial::video_camera_def
RigDef::VideoCamera * video_camera_def
Definition: ActorSpawner.h:139
RoR::ActorSpawner::GetWheelAxisNodes
void GetWheelAxisNodes(RigDef::BaseWheel &def, node_t *&out_node_1, node_t *&out_node_2)
Definition: ActorSpawner.cpp:4507
RoR::WheelID_t
int WheelID_t
Index to Actor::ar_wheels, use RoR::WHEELID_INVALID as empty value.
Definition: ForwardDeclarations.h:58
RoR::ActorSpawner::ProcessFlare3
void ProcessFlare3(RigDef::Flare3 &def)
Definition: ActorSpawner.cpp:2113
RigDef::Cinecam
Definition: RigDef_File.h:743
RoR::ActorSpawner::ProcessNewActor
void ProcessNewActor(ActorPtr actor, ActorSpawnRequest rq, RigDef::DocumentPtr def)
Definition: ActorSpawnerFlow.cpp:59
RoR::ActorSpawner::ProcessFlexbody
void ProcessFlexbody(RigDef::Flexbody &def)
Definition: ActorSpawner.cpp:1514
RoR::ActorSpawner::Message
Message
Definition: ActorSpawner.h:88
RoR::ActorSpawner::CreateCabVisual
void CreateCabVisual()
Definition: ActorSpawner.cpp:7285
RoR::ActorSpawner::FinalizeRig
void FinalizeRig()
Definition: ActorSpawner.cpp:408
RoR::ActorSpawner::ProcessFixedNode
void ProcessFixedNode(RigDef::Node::Ref node_ref)
Definition: ActorSpawner.cpp:1270
RoR::ActorSpawner::HandleException
void HandleException()
Definition: ActorSpawner.cpp:7239
RoR::ActorSpawner::GetAndInitFreeBeam
beam_t & GetAndInitFreeBeam(node_t &node_1, node_t &node_2)
Definition: ActorSpawner.cpp:6285
RoR::ActorSpawner::ProcessScrewprop
void ProcessScrewprop(RigDef::Screwprop &def)
Definition: ActorSpawner.cpp:715
RoR::ActorSpawner::m_material_substitutions
std::map< std::string, CustomMaterial > m_material_substitutions
Maps original material names (shared) to their actor-specific substitutes; There's 1 substitute per 1...
Definition: ActorSpawner.h:489
RigDef::MeshWheel
Definition: RigDef_File.h:1050
RigDef::ManagedMaterial
Definition: RigDef_File.h:1028
RoR::ActorSpawner::AddWheelBeam
unsigned int AddWheelBeam(node_t *node_1, node_t *node_2, float spring, float damping, std::shared_ptr< RigDef::BeamDefaults > beam_defaults, float max_contraction=-1.f, float max_extension=-1.f, BeamType type=BEAM_NORMAL)
'wheels', 'meshwheels', 'meshwheels2'
Definition: ActorSpawner.cpp:5247
RoR::ActorSpawner::m_actor
ActorPtr m_actor
Definition: ActorSpawner.h:455
RigDef::InterAxle
Definition: RigDef_File.h:1006
RigDef::BaseWheel
Definition: RigDef_File.h:409
RoR::ActorSpawner::m_named_nodes
std::map< Ogre::String, unsigned int > m_named_nodes
Definition: ActorSpawner.h:483
RoR::ActorSpawner::Message::TYPE_WARNING
@ TYPE_WARNING
RoR::ActorSpawner::FinalizeGfxSetup
void FinalizeGfxSetup()
Definition: ActorSpawner.cpp:6791
Application.h
Central state/object manager and communications hub.
RoR::ActorSpawner::ProcessBeam
void ProcessBeam(RigDef::Beam &def)
Definition: ActorSpawner.cpp:5528
RoR::ActorSpawner::AddNode
std::pair< unsigned int, bool > AddNode(RigDef::Node::Id &id)
Definition: ActorSpawner.cpp:5871
RoR::ActorSpawner::AddWheelRimBeam
unsigned int AddWheelRimBeam(RigDef::Wheel2 &wheel_2_def, node_t *node_1, node_t *node_2)
Definition: ActorSpawner.cpp:5274
RoR::ActorSpawner::m_fuse_z_max
float m_fuse_z_max
Definition: ActorSpawner.h:475
RoR::ActorSpawner::CustomMaterial::MirrorPropType
MirrorPropType
Definition: ActorSpawner.h:115
RigDef::Keyword::INVALID
@ INVALID
RoR::ActorSpawner::ProcessCollisionRange
void ProcessCollisionRange(RigDef::CollisionRange &def)
Definition: ActorSpawner.cpp:2662
RoR::node_t
Physics: A vertex in the softbody structure.
Definition: SimData.h:286
RigDef::Submesh
Definition: RigDef_File.h:1306
RoR::ActorSpawner::GetCurrentElementMediaRG
std::string GetCurrentElementMediaRG()
Where to load media from (the addonpart's bundle or vehicle's bundle?)
Definition: ActorSpawner.cpp:7422
RoR::ActorSpawner::ActorSpawnState::global_minimass
float global_minimass
'minimass' - used where 'set_default_minimass' is not applied.
Definition: ActorSpawner.h:450
RoR::ActorSpawner::AdjustNodeBuoyancy
void AdjustNodeBuoyancy(node_t &node, RigDef::Node &node_def, std::shared_ptr< RigDef::NodeDefaults > defaults)
For user-defined nodes.
Definition: ActorSpawner.cpp:4781
RoR::ActorSpawner::ProcessNode
void ProcessNode(RigDef::Node &def)
Definition: ActorSpawner.cpp:5915
RigDef::Inertia
Definition: RigDef_File.h:442
RoR::wheel_t::BrakeCombo
BrakeCombo
Wheels are braked by three mechanisms: A footbrake, a handbrake/parkingbrake, and directional brakes ...
Definition: SimData.h:423
RoR::ActorSpawner::m_managedmat_placeholder_template
Ogre::MaterialPtr m_managedmat_placeholder_template
An 'error marker' material (bright magenta) to generate managedmaterial placeholders from.
Definition: ActorSpawner.h:491
RoR::ActorSpawner::m_wing_area
float m_wing_area
Definition: ActorSpawner.h:471
RigDef::Shock
Definition: RigDef_File.h:1187
RoR::CmdKeyInertia
Designed to be run in physics loop (2khz)
Definition: CmdKeyInertia.h:45
RoR::ActorSpawner::CreateMirrorPropVideoCam
void CreateMirrorPropVideoCam(Ogre::MaterialPtr custom_mat, CustomMaterial::MirrorPropType type, Ogre::SceneNode *prop_scenenode)
Definition: ActorSpawner.cpp:7168
RoR::ActorSpawner::ProcessSlidenode
void ProcessSlidenode(RigDef::SlideNode &def)
Definition: ActorSpawner.cpp:3004
RoR::ActorSpawner::m_fuse_y_max
float m_fuse_y_max
Definition: ActorSpawner.h:477
RoR::ActorSpawner::ProcessRailGroup
void ProcessRailGroup(RigDef::RailGroup &def)
Definition: ActorSpawner.cpp:2997
RoR::Renderdash
'renderdash' is a name of a classic Render-To-Texture animated material with gauges and other dashboa...
Definition: Renderdash.h:34
RoR::ActorSpawner::m_flares_parent_scenenode
Ogre::SceneNode * m_flares_parent_scenenode
this isn't used for moving/hiding things, just helps developers inspect the scene graph.
Definition: ActorSpawner.h:502
RoR::ActorSpawner::CustomMaterial::MirrorPropType::MPROP_LEFT
@ MPROP_LEFT
RigDef::MaterialFlareBinding
Definition: RigDef_File.h:1038
RoR::ActorSpawner::SetBeamStrength
void SetBeamStrength(beam_t &beam, float strength)
Definition: ActorSpawner.cpp:3923
RigDef::SpeedLimiter
Definition: RigDef_File.h:1298
RoR::ActorSpawner::CheckSoundScriptLimit
static bool CheckSoundScriptLimit(ActorPtr const &vehicle, unsigned int count)
Definition: ActorSpawner.cpp:6193
RoR::ActorSpawner::ProcessDescription
void ProcessDescription(Ogre::String const &line)
Definition: ActorSpawner.cpp:847
RoR::ActorSpawner::m_cab_material_name
std::string m_cab_material_name
Original name defined in truckfile/globals.
Definition: ActorSpawner.h:469
RoR::ActorSpawner::ProcessInterAxle
void ProcessInterAxle(RigDef::InterAxle &def)
Definition: ActorSpawner.cpp:2752
RigDef::Lockgroup
Definition: RigDef_File.h:1013
RoR::ActorSpawner::ProcessParticle
void ProcessParticle(RigDef::Particle &def)
Definition: ActorSpawner.cpp:2890
RoR::ActorSpawner::ProcessCollisionBox
void ProcessCollisionBox(RigDef::CollisionBox &def)
Definition: ActorSpawner.cpp:2637
RigDef::Animator
Definition: RigDef_File.h:557
RoR::ActorSpawner::m_state
ActorSpawnState m_state
Definition: ActorSpawner.h:468
RoR::ActorSpawner::ActorMemoryRequirements::num_nodes
size_t num_nodes
Definition: ActorSpawner.h:78
RoR::ActorSpawner::Exception::Exception
Exception(Ogre::String const &message)
Definition: ActorSpawner.h:146
RigDef::Flexbody
Definition: RigDef_File.h:902
RoR::ActorSpawner::ProcessTie
void ProcessTie(RigDef::Tie &def)
Definition: ActorSpawner.cpp:2932
RoR::ActorSpawner::CreateMeshWheelVisuals
void CreateMeshWheelVisuals(WheelID_t wheel_id, NodeNum_t base_node_index, NodeNum_t axis_node_1_index, NodeNum_t axis_node_2_index, unsigned int num_rays, WheelSide side, Ogre::String mesh_name, Ogre::String mesh_rg, Ogre::String material_name, Ogre::String material_rg, float rim_radius)
Definition: ActorSpawner.cpp:4646
RoR::ActorSpawner::UpdateCollcabContacterNodes
void UpdateCollcabContacterNodes()
Definition: ActorSpawner.cpp:6470
RigDef::VideoCamera
Definition: RigDef_File.h:1424
RigDef::TransferCase
Definition: RigDef_File.h:1367
RoR::ActorSpawner::SetBeamDamping
void SetBeamDamping(beam_t &beam, float damping)
Definition: ActorSpawner.cpp:6305
RoR::ActorSpawner::m_curr_mirror_prop_scenenode
Ogre::SceneNode * m_curr_mirror_prop_scenenode
Definition: ActorSpawner.h:496
RigDef::Turboprop2
Definition: RigDef_File.h:1414
RoR::ActorSpawner::CheckAxleLimit
bool CheckAxleLimit(unsigned int count)
Definition: ActorSpawner.cpp:6156
RoR::ActorSpawner::CollectNodesFromRanges
bool CollectNodesFromRanges(std::vector< RigDef::Node::Range > &node_ranges, std::vector< NodeNum_t > &out_node_indices)
Parses list of node-ranges into list of individual nodes.
Definition: ActorSpawner.cpp:3089
RoR::ActorSpawner::ProcessSoundSource2
void ProcessSoundSource2(RigDef::SoundSource2 &def)
Definition: ActorSpawner.cpp:1160
RoR::ActorSpawner::ProcessAntiLockBrakes
void ProcessAntiLockBrakes(RigDef::AntiLockBrakes &def)
Definition: ActorSpawner.cpp:5363
RoR::ActorSpawner::BuildWheelObjectAndNodes
void BuildWheelObjectAndNodes(WheelID_t wheel_id, unsigned int num_rays, node_t *axis_node_1, node_t *axis_node_2, node_t *reference_arm_node, unsigned int reserve_nodes, unsigned int reserve_beams, float wheel_radius, RigDef::WheelPropulsion propulsion, RigDef::WheelBraking braking, std::shared_ptr< RigDef::NodeDefaults > node_defaults, float wheel_mass, float wheel_width=-1.f)
Sets up wheel and builds nodes for sections 'wheels', 'meshwheels' and 'meshwheels2'.
Definition: ActorSpawner.cpp:4694
RoR::ActorSpawner::ProcessWheel
void ProcessWheel(RigDef::Wheel &def)
Definition: ActorSpawner.cpp:5311
RoR::ActorSpawner::ProcessCameraRail
void ProcessCameraRail(RigDef::CameraRail &def)
Definition: ActorSpawner.cpp:1214
RoR::ActorSpawner::AddSoundSourceInstance
static void AddSoundSourceInstance(ActorPtr const &vehicle, Ogre::String const &sound_script_name, int node_index, int type=-2)
Definition: ActorSpawner.cpp:1177
RoR::ActorSpawner::WashCalculator
void WashCalculator()
Definition: ActorSpawner.cpp:617
RoR::ActorSpawner::m_airplane_left_light
int m_airplane_left_light
Definition: ActorSpawner.h:472
RoR::ActorSpawner::ProcessExhaust
void ProcessExhaust(RigDef::Exhaust &def)
Definition: ActorSpawner.cpp:1276
RoR::ActorSpawner::CustomMaterial::mirror_prop_type
MirrorPropType mirror_prop_type
Definition: ActorSpawner.h:140
RigDef::Tie
Definition: RigDef_File.h:1320
RigDef::Node::Id
Abstract node ID (numbered or named) Node name is always available.
Definition: RigDef_Node.h:44
RigDef::WheelDetacher
Definition: RigDef_File.h:1463
RigDef::Rotator
Definition: RigDef_File.h:1148
RoR::Message
Unified game event system - all requests and state changes are reported using a message.
Definition: GameContext.h:51
RoR::ActorSpawner::GetNodePointer
node_t * GetNodePointer(RigDef::Node::Ref const &node_ref)
Definition: ActorSpawner.cpp:5846
RoR::ActorSpawner::ProcessProp
void ProcessProp(RigDef::Prop &def)
Resource group override is used with addonparts.
Definition: ActorSpawner.cpp:1584
RigDef::Fusedrag
Definition: RigDef_File.h:925
RigDef::Engine
Definition: RigDef_File.h:806
RoR::ActorSpawner::Message::TYPE_ERROR
@ TYPE_ERROR
RigDef_Parser.h
Checks the rig-def file syntax and loads data to memory.
RoR::ActorSpawner::ProcessPistonprop
void ProcessPistonprop(RigDef::Pistonprop &def)
Definition: ActorSpawner.cpp:852
RoR::ActorSpawner::m_fuse_y_min
float m_fuse_y_min
Definition: ActorSpawner.h:476
RoR::ActorSpawner::CreateWheelVisuals
void CreateWheelVisuals(WheelID_t wheel_id, NodeNum_t node_base_index, unsigned int def_num_rays, Ogre::String const &face_material_name, Ogre::String const &face_material_rg, Ogre::String const &band_material_name, Ogre::String const &band_material_rg, bool separate_rim, float rim_ratio=1.f)
Definition: ActorSpawner.cpp:5134
RoR::ActorSpawner::GetFreeShock
shock_t & GetFreeShock()
Definition: ActorSpawner.cpp:6278
RoR::ActorSpawner::ProcessTurbojet
void ProcessTurbojet(RigDef::Turbojet &def)
Definition: ActorSpawner.cpp:658
RoR::ActorSpawner::CalculateBeamLength
void CalculateBeamLength(beam_t &beam)
Definition: ActorSpawner.cpp:5760
RoR::ActorSpawner::m_spawn_position
Ogre::Vector3 m_spawn_position
Definition: ActorSpawner.h:459
RoR::ActorSpawner::ProcessCruiseControl
void ProcessCruiseControl(RigDef::CruiseControl &def)
Definition: ActorSpawner.cpp:2847
RigDef::Rotator2
Definition: RigDef_File.h:1162
RoR::ActorSpawner::InitializeRig
void InitializeRig()
Definition: ActorSpawner.cpp:252
RoR::ActorSpawner::CreateRail
RailGroup * CreateRail(std::vector< RigDef::Node::Range > &node_ranges)
Definition: ActorSpawner.cpp:3149
RoR::ActorSpawner::m_first_wing_index
int m_first_wing_index
Definition: ActorSpawner.h:478
RigDef::Shock3
Definition: RigDef_File.h:1231
RigDef::Exhaust
Definition: RigDef_File.h:852
RoR::ActorSpawner::m_wheels_parent_scenenode
Ogre::SceneNode * m_wheels_parent_scenenode
this isn't used for moving/hiding things, just helps developers inspect the scene graph.
Definition: ActorSpawner.h:499
RoR::ActorSpawner::CustomMaterial::material_flare_def
RigDef::MaterialFlareBinding * material_flare_def
Definition: ActorSpawner.h:138
RoR::ActorSpawner::m_apply_simple_materials
bool m_apply_simple_materials
Definition: ActorSpawner.h:460
RigDef::Axle
Definition: RigDef_File.h:621
RoR::ActorSpawner::GetFreeNode
node_t & GetFreeNode()
Definition: ActorSpawner.cpp:6263
RoR::ActorSpawner::ProcessRotator2
void ProcessRotator2(RigDef::Rotator2 &def)
Definition: ActorSpawner.cpp:3515
RoR::ActorSpawner::CreateMaterialFlare
void CreateMaterialFlare(int flare_index, Ogre::MaterialPtr mat)
Definition: ActorSpawner.cpp:7401
RoR::ActorSpawner::CreateFlexBodyWheelVisuals
void CreateFlexBodyWheelVisuals(WheelID_t wheel_id, NodeNum_t node_base_index, NodeNum_t axis_node_1, NodeNum_t axis_node_2, int num_rays, float radius, WheelSide side, std::string rim_mesh_name, std::string rim_mesh_rg, std::string tire_mesh_name, std::string tire_mesh_rg)
Definition: ActorSpawner.cpp:5182
RoR::ActorSpawner::CreateBeamVisuals
void CreateBeamVisuals(beam_t const &beam, int beam_index, bool visible, std::shared_ptr< RigDef::BeamDefaults > const &beam_defaults, std::string material_override="")
Definition: ActorSpawner.cpp:5704
RoR::ActorSpawner::ActorMemoryRequirements::num_wings
size_t num_wings
Definition: ActorSpawner.h:82
RoR::ActorSpawner::SetupDefaultSoundSources
static void SetupDefaultSoundSources(ActorPtr const &actor)
Definition: ActorSpawner.cpp:6310
RoR::ActorSpawner::AssignWheelToAxle
bool AssignWheelToAxle(int &_out_axle_wheel, node_t *axis_node_1, node_t *axis_node_2)
Finds wheel with given axle nodes and returns it's index.
Definition: ActorSpawner.cpp:2670
RoR::ActorSpawner::m_curr_mirror_prop_type
CustomMaterial::MirrorPropType m_curr_mirror_prop_type
Definition: ActorSpawner.h:495
RoR::ActorSpawner::BuildAeroEngine
void BuildAeroEngine(NodeNum_t ref_node_index, NodeNum_t back_node_index, NodeNum_t blade_1_node_index, NodeNum_t blade_2_node_index, NodeNum_t blade_3_node_index, NodeNum_t blade_4_node_index, NodeNum_t couplenode_index, bool is_turboprops, Ogre::String const &airfoil, float power, float pitch)
Definition: ActorSpawner.cpp:771
RoR::ActorSpawner::_SectionWheels2AddBeam
unsigned int _SectionWheels2AddBeam(RigDef::Wheel2 &wheel_2_def, node_t *node_1, node_t *node_2)
Definition: ActorSpawner.cpp:5295
RigDef::Node
Definition: RigDef_Node.h:39
RigDef::DocumentPtr
std::shared_ptr< Document > DocumentPtr
Definition: ForwardDeclarations.h:272
RoR::ActorSpawner::ProcessCommand
void ProcessCommand(RigDef::Command2 &def)
Definition: ActorSpawner.cpp:3639
FlexObj.h
RigDef::SoundSource
Definition: RigDef_File.h:1284
RoR::WheelSide
WheelSide
Used by rig-def/addonpart/tuneup formats to specify wheel rim mesh orientation.
Definition: GfxData.h:115
RoR::ActorSpawner::GetNodeIndexOrThrow
NodeNum_t GetNodeIndexOrThrow(RigDef::Node::Ref const &id)
Definition: ActorSpawner.cpp:5486
RoR::ActorSpawner::m_memory_requirements
ActorMemoryRequirements m_memory_requirements
Definition: ActorSpawner.h:463
RoR::ActorSpawner::GetSubmeshGroundmodelName
std::string GetSubmeshGroundmodelName()
Definition: ActorSpawner.cpp:1318
RoR::ActorSpawner::m_airplane_right_light
int m_airplane_right_light
Definition: ActorSpawner.h:473
RoR::ActorSpawner::AddBeam
beam_t & AddBeam(node_t &node_1, node_t &node_2, std::shared_ptr< RigDef::BeamDefaults > &defaults, int detacher_group)
Definition: ActorSpawner.cpp:3898
RoR::ActorSpawner::ProcessWheelDetacher
void ProcessWheelDetacher(RigDef::WheelDetacher &def)
Definition: ActorSpawner.cpp:5316
RoR::ActorSpawner::InitBeam
void InitBeam(beam_t &beam, node_t *node_1, node_t *node_2)
Definition: ActorSpawner.cpp:5767
FlexFactory.h
RoR::ActorSpawner::AssignManagedMaterialTexture
void AssignManagedMaterialTexture(Ogre::TextureUnitState *tus, const std::string &mm_name, int media_id, const std::string &tex_name)
Helper for ProcessManagedMaterial()
Definition: ActorSpawner.cpp:7437
RoR::ActorSpawner::CustomMaterial::CustomMaterial
CustomMaterial()
Definition: ActorSpawner.h:122
RigDef::Minimass
Definition: RigDef_File.h:1044
RigDef::Turbojet
Definition: RigDef_File.h:1401
RoR::ActorSpawner::ProcessFlexBodyWheel
void ProcessFlexBodyWheel(RigDef::FlexBodyWheel &def)
Definition: ActorSpawner.cpp:4225
RoR::ActorSpawner::FindBeamInRig
beam_t * FindBeamInRig(NodeNum_t node_a, NodeNum_t node_b)
Definition: ActorSpawner.cpp:3195
RoR::ActorSpawner::ProcessTractionControl
void ProcessTractionControl(RigDef::TractionControl &def)
Definition: ActorSpawner.cpp:5330
RoR::ActorSpawner::GetBeamNodePointer
node_t * GetBeamNodePointer(RigDef::Node::Ref const &node_ref)
Definition: ActorSpawner.cpp:5518
RoR::ActorSpawner::CreateSimpleMaterial
Ogre::MaterialPtr CreateSimpleMaterial(Ogre::ColourValue color)
Definition: ActorSpawner.cpp:6722
RigDef::Beam
Definition: RigDef_File.h:627
RigDef::Screwprop
Definition: RigDef_File.h:1169
RoR::ActorSpawner::GetMemoryRequirements
ActorMemoryRequirements const & GetMemoryRequirements()
Definition: ActorSpawner.h:107
RoR::ActorSpawner::GetFreeBeam
beam_t & GetFreeBeam()
Definition: ActorSpawner.cpp:6271
RoR::ActorSpawner::ProcessTrigger
void ProcessTrigger(RigDef::Trigger &def)
Definition: ActorSpawner.cpp:3294
RigDef::CruiseControl
Definition: RigDef_File.h:790
RigDef::WheelBraking
WheelBraking
Definition: RigDef_File.h:242
RigDef::Wing
Definition: RigDef_File.h:1469
RoR
Definition: AppContext.h:36
RoR::ActorSpawner::m_selected_modules
std::list< std::shared_ptr< RigDef::Document::Module > > m_selected_modules
Definition: ActorSpawner.h:458
x
float x
Definition: (ValueTypes) quaternion.h:5
RoR::ActorSpawner::ProcessTransferCase
void ProcessTransferCase(RigDef::TransferCase &def)
Definition: ActorSpawner.cpp:2809
RoR::ActorSpawner::GetNodePointerOrThrow
node_t * GetNodePointerOrThrow(RigDef::Node::Ref const &node_ref)
Definition: ActorSpawner.cpp:5859
RigDef::Globals
Definition: RigDef_File.h:937
RigDef::ExtCamera
Definition: RigDef_File.h:859
RigDef::Rope
Definition: RigDef_File.h:1139
RoR::ActorSpawner::ProcessCinecam
void ProcessCinecam(RigDef::Cinecam &def)
Definition: ActorSpawner.cpp:6078
RoR::ActorSpawner::CustomMaterial::material
Ogre::MaterialPtr material
Definition: ActorSpawner.h:137
RoR::ActorSpawner::InitNode
void InitNode(node_t &node, Ogre::Vector3 const &position)
Definition: ActorSpawner.cpp:6109
RigDef::SlideNode
Definition: RigDef_File.h:1264
RigDef::MeshWheel2
Definition: RigDef_File.h:1053
RoR::ActorSpawner::ProcessManagedMaterial
void ProcessManagedMaterial(RigDef::ManagedMaterial &def)
Definition: ActorSpawner.cpp:2408
RigDef::TorqueCurve
Definition: RigDef_File.h:1337
RoR::ActorSpawner::Exception
Definition: ActorSpawner.h:144
RoR::ActorSpawner::ProcessWheel2
void ProcessWheel2(RigDef::Wheel2 &def)
Definition: ActorSpawner.cpp:5306
RoR::ActorSpawner::m_oldstyle_cab_submeshes
std::vector< CabSubmesh > m_oldstyle_cab_submeshes
Definition: ActorSpawner.h:480
RoR::shock_t
Definition: SimData.h:368
RoR::ActorSpawner::CheckScrewpropLimit
bool CheckScrewpropLimit(unsigned int count)
Definition: ActorSpawner.cpp:6241