Rigs of Rods 2023.09
Soft-body Physics Simulation
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
RigDef::Serializer Class Reference

Serializes the RigDef::File data structure to string. More...

#include <RigDef_Serializer.h>

Public Member Functions

 Serializer (RigDef::DocumentPtr rig_def)
 
void Serialize ()
 
std::string GetOutput () const
 

Protected Member Functions

std::string RigidityNodeToStr (Node::Ref node)
 
std::string NodeOptionsToStr (BitMask_t options)
 
void ExportBaseMeshWheel (BaseMeshWheel &def)
 
void ExportDocComment (Document::Module *module, RigDef::Keyword keyword, ptrdiff_t vectorpos)
 
void ResetPresets ()
 
void UpdatePresets (BeamDefaults *beam, NodeDefaults *node, DefaultMinimass *minimass)
 

Protected Attributes

std::stringstream m_stream
 
RigDef::DocumentPtr m_rig_def
 
int m_float_width
 
int m_bool_width
 
int m_node_id_width
 
int m_command_key_width
 
int m_inertia_function_width
 
std::string m_dataline_indentstr = ""
 a node or a beam line for example
 
std::string m_setdefaults_indentstr = ""
 'set_beam_defaults' for example
 
BeamDefaultsm_current_beam_defaults = nullptr
 
NodeDefaultsm_current_node_defaults = nullptr
 
DefaultMinimassm_current_default_minimass = nullptr
 

Private Member Functions

void SerializeModule (std::shared_ptr< RigDef::Document::Module > m)
 
void ProcessAuthors (Document::Module *module)
 
void ProcessGlobals (Document::Module *module)
 
void ProcessDescription (Document::Module *module)
 
void ProcessGuid (Document::Module *module)
 
void ProcessFileinfo (Document::Module *module)
 
void WriteFlags ()
 
void ProcessHelp (Document::Module *module)
 
void ProcessCinecam (Document::Module *)
 
void ProcessNodes (Document::Module *)
 
void ProcessNode (Node &node)
 
void ProcessNodeDefaults (NodeDefaults *node_defaults)
 
void ProcessDefaultMinimass (DefaultMinimass *default_minimass)
 
void ProcessBeams (Document::Module *)
 
void ProcessBeamDefaults (BeamDefaults *beam_defaults)
 
void ProcessBeam (Beam &beam)
 
void ProcessShocks (Document::Module *)
 
void ProcessShocks2 (Document::Module *)
 
void ProcessShocks3 (Document::Module *)
 
void ProcessShock (Shock &def)
 
void ProcessShock2 (Shock2 &def)
 
void ProcessShock3 (Shock3 &def)
 
void ProcessHydros (Document::Module *)
 
void ProcessHydro (Hydro &def)
 
void ProcessRotators (Document::Module *module)
 
void ProcessRotators2 (Document::Module *module)
 
void ProcessCommands2 (Document::Module *)
 
void ProcessCommand2 (Command2 &def)
 
void ProcessSlideNodes (Document::Module *module)
 
void ProcessRopes (Document::Module *module)
 
void ProcessFixes (Document::Module *module)
 
void ProcessTies (Document::Module *module)
 
void ProcessCameras (Document::Module *module)
 
void ProcessEngine (Document::Module *module)
 
void ProcessEngoption (Document::Module *module)
 
void ProcessBrakes (Document::Module *module)
 
void ProcessAntiLockBrakes (Document::Module *module)
 
void ProcessTractionControl (Document::Module *module)
 
void ProcessTorqueCurve (Document::Module *module)
 
void ProcessCruiseControl (Document::Module *module)
 
void ProcessSpeedLimiter (Document::Module *module)
 
void ProcessAxles (Document::Module *module)
 
void ProcessTransferCase (Document::Module *module)
 
void ProcessInterAxles (Document::Module *module)
 
void ProcessMeshWheels (Document::Module *module)
 
void ProcessMeshWheels2 (Document::Module *module)
 
void ProcessWheels (Document::Module *module)
 
void ProcessWheels2 (Document::Module *module)
 
void ProcessFlexBodyWheels (Document::Module *module)
 
void ProcessAnimators (Document::Module *module)
 
void ProcessContacters (Document::Module *module)
 
void ProcessTriggers (Document::Module *module)
 
void ProcessLockgroups (Document::Module *module)
 
void ProcessHooks (Document::Module *module)
 
void ProcessRailGroups (Document::Module *module)
 
void ProcessRopables (Document::Module *module)
 
void ProcessParticles (Document::Module *module)
 
void ProcessCollisionBoxes (Document::Module *module)
 
void ProcessManagedMaterialsAndOptions (Document::Module *module)
 
void ProcessFlares2 (Document::Module *module)
 
void ProcessMaterialFlareBindings (Document::Module *module)
 
void ProcessPropsAndAnimations (Document::Module *module)
 
void ProcessFlexbodies (Document::Module *module)
 
void ProcessDirectiveAddAnimation (RigDef::Animation &anim)
 
void ProcessSubmesh (Document::Module *module)
 
void ProcessSubmeshGroundmodel (Document::Module *module)
 
void ProcessExhausts (Document::Module *module)
 
void ProcessGuiSettings (Document::Module *module)
 
void ProcessSetSkeletonSettings (Document::Module *module)
 
void ProcessVideocamera (Document::Module *module)
 
void ProcessExtCamera (Document::Module *module)
 
void ProcessSoundsources (Document::Module *module)
 
void ProcessSoundsources2 (Document::Module *module)
 
void ProcessCustomDashboardInputs (Document::Module *module)
 
void ProcessWings (Document::Module *module)
 
void ProcessAirbrakes (Document::Module *module)
 
void ProcessTurboprops (Document::Module *module)
 
void ProcessFusedrag (Document::Module *module)
 
void ProcessTurbojets (Document::Module *module)
 
void ProcessPistonprops (Document::Module *module)
 
void ProcessScrewprops (Document::Module *module)
 

Detailed Description

Serializes the RigDef::File data structure to string.

Author
Petr Ohlidal

Definition at line 37 of file RigDef_Serializer.h.

Constructor & Destructor Documentation

◆ Serializer()

Serializer::Serializer ( RigDef::DocumentPtr  rig_def)

Definition at line 41 of file RigDef_Serializer.cpp.

Member Function Documentation

◆ ExportBaseMeshWheel()

void Serializer::ExportBaseMeshWheel ( BaseMeshWheel def)
protected

Definition at line 1872 of file RigDef_Serializer.cpp.

◆ ExportDocComment()

void Serializer::ExportDocComment ( Document::Module module,
RigDef::Keyword  keyword,
ptrdiff_t  vectorpos 
)
protected

Definition at line 2696 of file RigDef_Serializer.cpp.

◆ GetOutput()

std::string RigDef::Serializer::GetOutput ( ) const
inline

Definition at line 42 of file RigDef_Serializer.h.

◆ NodeOptionsToStr()

std::string Serializer::NodeOptionsToStr ( BitMask_t  options)
protected

Definition at line 2514 of file RigDef_Serializer.cpp.

◆ ProcessAirbrakes()

void Serializer::ProcessAirbrakes ( Document::Module module)
private

Definition at line 304 of file RigDef_Serializer.cpp.

◆ ProcessAnimators()

void Serializer::ProcessAnimators ( Document::Module module)
private

Definition at line 1414 of file RigDef_Serializer.cpp.

◆ ProcessAntiLockBrakes()

void Serializer::ProcessAntiLockBrakes ( Document::Module module)
private

Definition at line 1680 of file RigDef_Serializer.cpp.

◆ ProcessAuthors()

void Serializer::ProcessAuthors ( Document::Module module)
private

Definition at line 2632 of file RigDef_Serializer.cpp.

◆ ProcessAxles()

void Serializer::ProcessAxles ( Document::Module module)
private

Definition at line 952 of file RigDef_Serializer.cpp.

◆ ProcessBeam()

void Serializer::ProcessBeam ( Beam beam)
private

Definition at line 2386 of file RigDef_Serializer.cpp.

◆ ProcessBeamDefaults()

void Serializer::ProcessBeamDefaults ( BeamDefaults beam_defaults)
private

Definition at line 2365 of file RigDef_Serializer.cpp.

◆ ProcessBeams()

void Serializer::ProcessBeams ( Document::Module module)
private

Definition at line 1981 of file RigDef_Serializer.cpp.

◆ ProcessBrakes()

void Serializer::ProcessBrakes ( Document::Module module)
private

Definition at line 1667 of file RigDef_Serializer.cpp.

◆ ProcessCameras()

void Serializer::ProcessCameras ( Document::Module module)
private

Definition at line 1929 of file RigDef_Serializer.cpp.

◆ ProcessCinecam()

void Serializer::ProcessCinecam ( Document::Module module)
private

Definition at line 1947 of file RigDef_Serializer.cpp.

◆ ProcessCollisionBoxes()

void Serializer::ProcessCollisionBoxes ( Document::Module module)
private

Definition at line 924 of file RigDef_Serializer.cpp.

◆ ProcessCommand2()

void Serializer::ProcessCommand2 ( Command2 def)
private

Definition at line 2145 of file RigDef_Serializer.cpp.

◆ ProcessCommands2()

void Serializer::ProcessCommands2 ( Document::Module module)
private

Definition at line 2117 of file RigDef_Serializer.cpp.

◆ ProcessContacters()

void Serializer::ProcessContacters ( Document::Module module)
private

Definition at line 1478 of file RigDef_Serializer.cpp.

◆ ProcessCruiseControl()

void Serializer::ProcessCruiseControl ( Document::Module module)
private

Definition at line 1036 of file RigDef_Serializer.cpp.

◆ ProcessCustomDashboardInputs()

void Serializer::ProcessCustomDashboardInputs ( Document::Module module)
private

Definition at line 421 of file RigDef_Serializer.cpp.

◆ ProcessDefaultMinimass()

void Serializer::ProcessDefaultMinimass ( DefaultMinimass default_minimass)
private

Definition at line 2536 of file RigDef_Serializer.cpp.

◆ ProcessDescription()

void Serializer::ProcessDescription ( Document::Module module)
private

Definition at line 2618 of file RigDef_Serializer.cpp.

◆ ProcessDirectiveAddAnimation()

void Serializer::ProcessDirectiveAddAnimation ( RigDef::Animation anim)
private

Definition at line 644 of file RigDef_Serializer.cpp.

◆ ProcessEngine()

void Serializer::ProcessEngine ( Document::Module module)
private

Definition at line 1698 of file RigDef_Serializer.cpp.

◆ ProcessEngoption()

void Serializer::ProcessEngoption ( Document::Module module)
private

Definition at line 1732 of file RigDef_Serializer.cpp.

◆ ProcessExhausts()

void Serializer::ProcessExhausts ( Document::Module module)
private

Definition at line 552 of file RigDef_Serializer.cpp.

◆ ProcessExtCamera()

void Serializer::ProcessExtCamera ( Document::Module module)
private

Definition at line 458 of file RigDef_Serializer.cpp.

◆ ProcessFileinfo()

void Serializer::ProcessFileinfo ( Document::Module module)
private

Definition at line 2595 of file RigDef_Serializer.cpp.

◆ ProcessFixes()

void Serializer::ProcessFixes ( Document::Module module)
private

Definition at line 1159 of file RigDef_Serializer.cpp.

◆ ProcessFlares2()

void Serializer::ProcessFlares2 ( Document::Module module)
private

Definition at line 839 of file RigDef_Serializer.cpp.

◆ ProcessFlexbodies()

void Serializer::ProcessFlexbodies ( Document::Module module)
private

Definition at line 709 of file RigDef_Serializer.cpp.

◆ ProcessFlexBodyWheels()

void Serializer::ProcessFlexBodyWheels ( Document::Module module)
private

Definition at line 1606 of file RigDef_Serializer.cpp.

◆ ProcessFusedrag()

void Serializer::ProcessFusedrag ( Document::Module module)
private

Definition at line 254 of file RigDef_Serializer.cpp.

◆ ProcessGlobals()

void Serializer::ProcessGlobals ( Document::Module module)
private

Definition at line 2651 of file RigDef_Serializer.cpp.

◆ ProcessGuid()

void Serializer::ProcessGuid ( Document::Module module)
private

Definition at line 2610 of file RigDef_Serializer.cpp.

◆ ProcessGuiSettings()

void Serializer::ProcessGuiSettings ( Document::Module module)
private

Definition at line 537 of file RigDef_Serializer.cpp.

◆ ProcessHelp()

void Serializer::ProcessHelp ( Document::Module module)
private

Definition at line 1770 of file RigDef_Serializer.cpp.

◆ ProcessHooks()

void Serializer::ProcessHooks ( Document::Module module)
private

Definition at line 1290 of file RigDef_Serializer.cpp.

◆ ProcessHydro()

void Serializer::ProcessHydro ( Hydro def)
private

Definition at line 2187 of file RigDef_Serializer.cpp.

◆ ProcessHydros()

void Serializer::ProcessHydros ( Document::Module module)
private

Definition at line 2090 of file RigDef_Serializer.cpp.

◆ ProcessInterAxles()

void Serializer::ProcessInterAxles ( Document::Module module)
private

Definition at line 984 of file RigDef_Serializer.cpp.

◆ ProcessLockgroups()

void Serializer::ProcessLockgroups ( Document::Module module)
private

Definition at line 1328 of file RigDef_Serializer.cpp.

◆ ProcessManagedMaterialsAndOptions()

void Serializer::ProcessManagedMaterialsAndOptions ( Document::Module module)
private

Definition at line 869 of file RigDef_Serializer.cpp.

◆ ProcessMaterialFlareBindings()

void Serializer::ProcessMaterialFlareBindings ( Document::Module module)
private

Definition at line 822 of file RigDef_Serializer.cpp.

◆ ProcessMeshWheels()

void Serializer::ProcessMeshWheels ( Document::Module module)
private

Definition at line 1896 of file RigDef_Serializer.cpp.

◆ ProcessMeshWheels2()

void Serializer::ProcessMeshWheels2 ( Document::Module module)
private

Definition at line 1913 of file RigDef_Serializer.cpp.

◆ ProcessNode()

void Serializer::ProcessNode ( Node node)
private

Definition at line 2543 of file RigDef_Serializer.cpp.

◆ ProcessNodeDefaults()

void Serializer::ProcessNodeDefaults ( NodeDefaults node_defaults)
private

Definition at line 2495 of file RigDef_Serializer.cpp.

◆ ProcessNodes()

void Serializer::ProcessNodes ( Document::Module module)
private

Definition at line 2421 of file RigDef_Serializer.cpp.

◆ ProcessParticles()

void Serializer::ProcessParticles ( Document::Module module)
private

Definition at line 1086 of file RigDef_Serializer.cpp.

◆ ProcessPistonprops()

void Serializer::ProcessPistonprops ( Document::Module module)
private

Definition at line 174 of file RigDef_Serializer.cpp.

◆ ProcessPropsAndAnimations()

void Serializer::ProcessPropsAndAnimations ( Document::Module module)
private

Definition at line 763 of file RigDef_Serializer.cpp.

◆ ProcessRailGroups()

void Serializer::ProcessRailGroups ( Document::Module module)
private

Definition at line 1208 of file RigDef_Serializer.cpp.

◆ ProcessRopables()

void Serializer::ProcessRopables ( Document::Module module)
private

Definition at line 1109 of file RigDef_Serializer.cpp.

◆ ProcessRopes()

void Serializer::ProcessRopes ( Document::Module module)
private

Definition at line 1174 of file RigDef_Serializer.cpp.

◆ ProcessRotators()

void Serializer::ProcessRotators ( Document::Module module)
private

Definition at line 1494 of file RigDef_Serializer.cpp.

◆ ProcessRotators2()

void Serializer::ProcessRotators2 ( Document::Module module)
private

Definition at line 1543 of file RigDef_Serializer.cpp.

◆ ProcessScrewprops()

void Serializer::ProcessScrewprops ( Document::Module module)
private

Definition at line 231 of file RigDef_Serializer.cpp.

◆ ProcessSetSkeletonSettings()

void Serializer::ProcessSetSkeletonSettings ( Document::Module module)
private

Definition at line 526 of file RigDef_Serializer.cpp.

◆ ProcessShock()

void Serializer::ProcessShock ( Shock def)
private

Definition at line 2229 of file RigDef_Serializer.cpp.

◆ ProcessShock2()

void Serializer::ProcessShock2 ( Shock2 def)
private

Definition at line 2269 of file RigDef_Serializer.cpp.

◆ ProcessShock3()

void Serializer::ProcessShock3 ( Shock3 def)
private

Definition at line 2318 of file RigDef_Serializer.cpp.

◆ ProcessShocks()

void Serializer::ProcessShocks ( Document::Module module)
private

Definition at line 2008 of file RigDef_Serializer.cpp.

◆ ProcessShocks2()

void Serializer::ProcessShocks2 ( Document::Module module)
private

Definition at line 2035 of file RigDef_Serializer.cpp.

◆ ProcessShocks3()

void Serializer::ProcessShocks3 ( Document::Module module)
private

Definition at line 2062 of file RigDef_Serializer.cpp.

◆ ProcessSlideNodes()

void Serializer::ProcessSlideNodes ( Document::Module module)
private

Definition at line 1237 of file RigDef_Serializer.cpp.

◆ ProcessSoundsources()

void Serializer::ProcessSoundsources ( Document::Module module)
private

Definition at line 379 of file RigDef_Serializer.cpp.

◆ ProcessSoundsources2()

void Serializer::ProcessSoundsources2 ( Document::Module module)
private

Definition at line 399 of file RigDef_Serializer.cpp.

◆ ProcessSpeedLimiter()

void Serializer::ProcessSpeedLimiter ( Document::Module module)
private

Definition at line 1052 of file RigDef_Serializer.cpp.

◆ ProcessSubmesh()

void Serializer::ProcessSubmesh ( Document::Module module)
private

Definition at line 584 of file RigDef_Serializer.cpp.

◆ ProcessSubmeshGroundmodel()

void Serializer::ProcessSubmeshGroundmodel ( Document::Module module)
private

Definition at line 574 of file RigDef_Serializer.cpp.

◆ ProcessTies()

void Serializer::ProcessTies ( Document::Module module)
private

Definition at line 1131 of file RigDef_Serializer.cpp.

◆ ProcessTorqueCurve()

void Serializer::ProcessTorqueCurve ( Document::Module module)
private

Definition at line 1063 of file RigDef_Serializer.cpp.

◆ ProcessTractionControl()

void Serializer::ProcessTractionControl ( Document::Module module)
private

Definition at line 1647 of file RigDef_Serializer.cpp.

◆ ProcessTransferCase()

void Serializer::ProcessTransferCase ( Document::Module module)
private

Definition at line 1016 of file RigDef_Serializer.cpp.

◆ ProcessTriggers()

void Serializer::ProcessTriggers ( Document::Module module)
private

Definition at line 1353 of file RigDef_Serializer.cpp.

◆ ProcessTurbojets()

void Serializer::ProcessTurbojets ( Document::Module module)
private

Definition at line 203 of file RigDef_Serializer.cpp.

◆ ProcessTurboprops()

void Serializer::ProcessTurboprops ( Document::Module module)
private

Definition at line 277 of file RigDef_Serializer.cpp.

◆ ProcessVideocamera()

void Serializer::ProcessVideocamera ( Document::Module module)
private

Definition at line 483 of file RigDef_Serializer.cpp.

◆ ProcessWheels()

void Serializer::ProcessWheels ( Document::Module module)
private

Definition at line 1819 of file RigDef_Serializer.cpp.

◆ ProcessWheels2()

void Serializer::ProcessWheels2 ( Document::Module module)
private

Definition at line 1779 of file RigDef_Serializer.cpp.

◆ ProcessWings()

void Serializer::ProcessWings ( Document::Module module)
private

Definition at line 338 of file RigDef_Serializer.cpp.

◆ ResetPresets()

void Serializer::ResetPresets ( )
protected

Definition at line 2668 of file RigDef_Serializer.cpp.

◆ RigidityNodeToStr()

std::string RigDef::Serializer::RigidityNodeToStr ( Node::Ref  node)
inlineprotected

Definition at line 156 of file RigDef_Serializer.h.

◆ Serialize()

void Serializer::Serialize ( )

Definition at line 50 of file RigDef_Serializer.cpp.

◆ SerializeModule()

void Serializer::SerializeModule ( std::shared_ptr< RigDef::Document::Module m)
private

Definition at line 86 of file RigDef_Serializer.cpp.

◆ UpdatePresets()

void Serializer::UpdatePresets ( BeamDefaults beam,
NodeDefaults node,
DefaultMinimass minimass 
)
protected

Definition at line 2675 of file RigDef_Serializer.cpp.

◆ WriteFlags()

void Serializer::WriteFlags ( )
private

Definition at line 2555 of file RigDef_Serializer.cpp.

Field Documentation

◆ m_bool_width

int RigDef::Serializer::m_bool_width
protected

Definition at line 170 of file RigDef_Serializer.h.

◆ m_command_key_width

int RigDef::Serializer::m_command_key_width
protected

Definition at line 172 of file RigDef_Serializer.h.

◆ m_current_beam_defaults

BeamDefaults* RigDef::Serializer::m_current_beam_defaults = nullptr
protected

Definition at line 177 of file RigDef_Serializer.h.

◆ m_current_default_minimass

DefaultMinimass* RigDef::Serializer::m_current_default_minimass = nullptr
protected

Definition at line 179 of file RigDef_Serializer.h.

◆ m_current_node_defaults

NodeDefaults* RigDef::Serializer::m_current_node_defaults = nullptr
protected

Definition at line 178 of file RigDef_Serializer.h.

◆ m_dataline_indentstr

std::string RigDef::Serializer::m_dataline_indentstr = ""
protected

a node or a beam line for example

Definition at line 174 of file RigDef_Serializer.h.

◆ m_float_width

int RigDef::Serializer::m_float_width
protected

Definition at line 169 of file RigDef_Serializer.h.

◆ m_inertia_function_width

int RigDef::Serializer::m_inertia_function_width
protected

Definition at line 173 of file RigDef_Serializer.h.

◆ m_node_id_width

int RigDef::Serializer::m_node_id_width
protected

Definition at line 171 of file RigDef_Serializer.h.

◆ m_rig_def

RigDef::DocumentPtr RigDef::Serializer::m_rig_def
protected

Definition at line 167 of file RigDef_Serializer.h.

◆ m_setdefaults_indentstr

std::string RigDef::Serializer::m_setdefaults_indentstr = ""
protected

'set_beam_defaults' for example

Definition at line 175 of file RigDef_Serializer.h.

◆ m_stream

std::stringstream RigDef::Serializer::m_stream
protected

Definition at line 166 of file RigDef_Serializer.h.


The documentation for this class was generated from the following files: