Guest User

Life if Feudal - Client class functions part 1/4

a guest
Aug 10th, 2015
2,401
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 438.27 KB | None | 0 0
  1.  /*!
  2.  @brief Base class for almost all objects involved in the simulation.
  3.  
  4.  @ingroup Console
  5.   */
  6.  class  SimObject {
  7.    public:
  8.     /*! Dump the hierarchy of this object up to RootGroup to the console. */
  9.     virtual void dumpGroupHierarchy(()) {}
  10.     /*! Test whether the given method is defined on this object.
  11. @param The name of the method.
  12. @return True if the object implements the given method. */
  13.     virtual bool isMethod(( string methodName )) {}
  14.     /*! Test whether the object belongs directly or indirectly to the given group.
  15. @param group The SimGroup object.
  16. @return True if the object is a child of the given group or a child of a group that the given group is directly or indirectly a child to. */
  17.     virtual bool isChildOfGroup(( SimGroup group )) {}
  18.     /*! Get the name of the class namespace assigned to this object.
  19. @return The name of the 'class' namespace. */
  20.     virtual string getClassNamespace(()) {}
  21.     /*! Get the name of the superclass namespace assigned to this object.
  22. @return The name of the 'superClass' namespace. */
  23.     virtual string getSuperClassNamespace(()) {}
  24.     /*! Assign a class namespace to this object.
  25. @param name The name of the 'class' namespace for this object. */
  26.     virtual void setClassNamespace(( string name )) {}
  27.     /*! Assign a superclass namespace to this object.
  28. @param name The name of the 'superClass' namespace for this object. */
  29.     virtual void setSuperClassNamespace(( string name )) {}
  30.     /*! Get whether the object has been marked as expanded. (in editor)
  31. @return True if the object is marked expanded. */
  32.     virtual bool isExpanded(()) {}
  33.     /*! Set whether the object has been marked as expanded. (in editor)
  34. @param state True if the object is to be marked expanded; false if not. */
  35.     virtual void setIsExpanded(( bool state=true )) {}
  36.     /*! Returns the filename the object is attached to.
  37. @return The name of the file the object is associated with; usually the file the object was loaded from. */
  38.     virtual string getFilename(()) {}
  39.     /*! Sets the object's file name and path
  40. @param fileName The name of the file to associate this object with. */
  41.     virtual void setFilename(( string fileName )) {}
  42.     /*! Get the line number at which the object is defined in its file.
  43.  
  44. @return The line number of the object's definition in script.
  45. @see getFilename() */
  46.     virtual int getDeclarationLine(()) {}
  47.     /*! Copy fields from another object onto this one.  The objects must be of same type. Everything from the object will overwrite what's in this object; extra fields in this object will remain. This includes dynamic fields.
  48. @param fromObject The object from which to copy fields. */
  49.     virtual void assignFieldsFrom(( SimObject fromObject )) {}
  50.     /*! Assign a persistent ID to the object if it does not already have one. */
  51.     virtual void assignPersistentId(()) {}
  52.     /*! Get whether the object will be included in saves.
  53. @return True if the object will be saved; false otherwise. */
  54.     virtual bool getCanSave(()) {}
  55.     /*! Set whether the object will be included in saves.
  56. @param value If true, the object will be included in saves; if false, it will be excluded. */
  57.     virtual void setCanSave(( bool value=true )) {}
  58.     /*! Get whether this object may be renamed.
  59. @return True if this object can be renamed; false otherwise. */
  60.     virtual bool isNameChangeAllowed(()) {}
  61.     /*! Set whether this object can be renamed from its first name.
  62. @param value If true, renaming is allowed for this object; if false, trying to change the name of the object will generate a console error. */
  63.     virtual void setNameChangeAllowed(( bool value=true )) {}
  64.     /*! Create a copy of this object.
  65. @return An exact duplicate of this object. */
  66.     virtual string clone(()) {}
  67.     /*! Create a copy of this object and all its subobjects.
  68. @return An exact duplicate of this object and all objects it references. */
  69.     virtual string deepClone(()) {}
  70.     /*! Hide/unhide the object.
  71. @param value If true, the object will be hidden; if false, the object will be unhidden. */
  72.     virtual void setHidden(( bool value=true )) {}
  73.     /*! List the methods defined on this object.
  74. @return An ArrayObject populated with (name,description) pairs of all methods defined on the object. */
  75.     virtual string dumpMethodsArray(()) {}
  76.     /*! Dump a description of all fields and methods defined on this object to the console.
  77. @param detailed Whether to print detailed information about members. */
  78.     virtual void dump(( bool detailed=false )) {}
  79.     /*! Dump a description of all fields and methods defined on this object to the console.
  80. @param detailed Whether to print detailed information about members. */
  81.     virtual void dumpMethods(( bool detailed=false )) {}
  82.     /*! Dump a description of all fields and methods defined on this object to the console.
  83. @param detailed Whether to print detailed information about members. */
  84.     virtual void dumpFields(( bool detailed=false )) {}
  85.     /*! Dump a description of all fields and methods defined on this object to the console.
  86. @param detailed Whether to print detailed information about members. */
  87.     virtual void dumpFieldsStatic(( bool detailed=false )) {}
  88.     /*! Dump a description of all fields and methods defined on this object to the console.
  89. @param detailed Whether to print detailed information about members. */
  90.     virtual void dumpFieldsDynamic(( bool detailed=false )) {}
  91.     /*! Save out the object to the given file.
  92. @param fileName The name of the file to save to.@param selectedOnly If true, only objects marked as selected will be saved out.
  93. @param preAppendString Text which will be preprended directly to the object serialization.
  94. @param True on success, false on failure. */
  95.     virtual bool save(( string fileName, bool selectedOnly=false, string preAppendString="" )) {}
  96.     /*! Set the global name of the object.
  97. @param newName The new global name to assign to the object.
  98. @note If name changing is disallowed on the object, the method will fail with a console error. */
  99.     virtual void setName(( string newName )) {}
  100.     /*! Get the global name of the object.
  101. @return The global name assigned to the object. */
  102.     virtual string getName(()) {}
  103.     /*! Get the name of the C++ class which the object is an instance of.
  104. @return The name of the C++ class of the object. */
  105.     virtual string getClassName(()) {}
  106.     /*! Test whether the given field is defined on this object.
  107. @param fieldName The name of the field.
  108. @return True if the object implements the given field. */
  109.     virtual bool isField(( string fieldName )) {}
  110.     /*! Return the value of the given field on this object.
  111. @param fieldName The name of the field.  If it includes a field index, the index is parsed out.
  112. @param index Optional parameter to specify the index of an array field separately.
  113. @return The value of the given field or "" if undefined. */
  114.     virtual string getFieldValue(( string fieldName, int index=-1 )) {}
  115.     /*! Set the value of the given field on this object.
  116. @param fieldName The name of the field to assign to.  If it includes an array index, the index will be parsed out.
  117. @param value The new value to assign to the field.
  118. @param index Optional argument to specify an index for an array field.
  119. @return True. */
  120.     virtual bool setFieldValue(( string fieldName, string value, int index=-1 )) {}
  121.     /*! Get the console type code of the given field.
  122. @return The numeric type code for the underlying console type of the given field. */
  123.     virtual string getFieldType(( string fieldName )) {}
  124.     /*! Set the console type code for the given field.
  125. @param fieldName The name of the dynamic field to change to type for.
  126. @param type The name of the console type.
  127. @note This only works for dynamic fields.  Types of static fields cannot be changed. */
  128.     virtual void setFieldType(( string fieldName, string type )) {}
  129.     /*! Dynamically call a method on an object.
  130. @param method Name of method to call.
  131. @param args Zero or more arguments for the method.
  132. @return The result of the method call. */
  133.     virtual string call(( string method, string args... )) {}
  134.     /*! Set the internal name of the object.
  135. @param newInternalName The new internal name for the object. */
  136.     virtual void setInternalName(( string newInternalName )) {}
  137.     /*! Get the internal name of the object.
  138. @return The internal name of the object. */
  139.     virtual string getInternalName(()) {}
  140.     /*! Dump the native C++ class hierarchy of this object's C++ class to the console. */
  141.     virtual void dumpClassHierarchy(()) {}
  142.     /*! Test whether this object is a member of the specified class.
  143. @param className Name of a native C++ class.
  144. @return True if this object is an instance of the given C++ class or any of its super classes. */
  145.     virtual bool isMemberOfClass(( string className )) {}
  146.     /*! Test whether the namespace of this object is a direct or indirect child to the given namespace.
  147. @param name The name of a namespace.
  148. @return True if the given namespace name is within the namespace hierarchy of this object. */
  149.     virtual bool isInNamespaceHierarchy(( string name )) {}
  150.     /*! Get the underlying unique numeric ID of the object.
  151. @note Object IDs are unique only during single engine runs.
  152. @return The unique numeric ID of the object. */
  153.     virtual int getId(()) {}
  154.     /*! Get the group that this object is contained in.
  155. @note If not assigned to particular SimGroup, an object belongs to RootGroup.
  156. @return The SimGroup object to which the object belongs. */
  157.     virtual string getGroup(()) {}
  158.     /*! Delete and remove the object. */
  159.     virtual void delete(()) {}
  160.     /*! safe delete and remove the object. */
  161.     virtual void safeDeleteObject(()) {}
  162.     /*! Delay an invocation of a method.
  163. @param time The number of milliseconds after which to invoke the method.  This is a soft limit.
  164. @param method The method to call.
  165. @param args The arguments with which to call the method.
  166. @return The numeric ID of the created schedule.  Can be used to cancel the call.
  167.  */
  168.     virtual int schedule(( float time, string method, string args... )) {}
  169.     /*! Get the number of dynamic fields defined on the object.
  170. @return The number of dynamic fields defined on the object. */
  171.     virtual int getDynamicFieldCount(()) {}
  172.     /*! Get a value of a dynamic field by index.
  173. @param index The index of the dynamic field.
  174. @return The value of the dynamic field at the given index or "". */
  175.     virtual string getDynamicField(( int index )) {}
  176.     /*! Get the number of static fields on the object.
  177. @return The number of static fields defined on the object. */
  178.     virtual int getFieldCount(()) {}
  179.     /*! Retrieve the value of a static field by index.
  180. @param index The index of the static field.
  181. @return The value of the static field with the given index or "". */
  182.     virtual string getField(( int index )) {}
  183.  
  184.     /*! @name Ungrouped
  185.     @{ */
  186.     /*! */
  187.     /*!
  188.     Optional global name of this object.
  189.    
  190.      */
  191.     string Name;
  192.     /// @}
  193.  
  194.  
  195.     /*! @name Object
  196.     @{ */
  197.     /*! */
  198.     /*!
  199.     Optional name that may be used to lookup this object within a SimSet.
  200.    
  201.      */
  202.     string internalName;
  203.     /*!
  204.     Group hierarchy parent of the object.
  205.    
  206.      */
  207.     SimObject parentGroup;
  208.     /*!
  209.     Script class of object.
  210.    
  211.      */
  212.     string class;
  213.     /*!
  214.     Script super-class of object.
  215.    
  216.      */
  217.     string superClass;
  218.     /*!
  219.     Script class of object.
  220.    
  221.      */
  222.     string className;
  223.     /// @}
  224.  
  225.  
  226.     /*! @name Editing
  227.     @{ */
  228.     /*! */
  229.     /*!
  230.     Whether the object is visible.
  231.    
  232.      */
  233.     bool hidden;
  234.     /// @}
  235.  
  236.  
  237.     /*! @name Persistence
  238.     @{ */
  239.     /*! */
  240.     /*!
  241.     Whether the object can be saved out. If false, the object is purely transient in nature.
  242.    
  243.      */
  244.     bool canSave;
  245.     /*!
  246.     True if dynamic fields (added at runtime) should be saved. Defaults to true.
  247.    
  248.      */
  249.     bool canSaveDynamicFields;
  250.     /*!
  251.     The universally unique identifier for the object.
  252.    
  253.      */
  254.     pid persistentId;
  255.     /*!
  256.     True if this object is 4ever alone, perhaps it is an one side datablock.
  257.    
  258.      */
  259.     bool local;
  260.     /// @}
  261.  
  262.  };
  263.  
  264.  /*!
  265.  A class designed to be used as a console consumer and log the data it receives to a file.
  266.  
  267.  @see dumpConsoleFunctions
  268.  @see dumpConsoleClasses
  269.  @ingroup Logging
  270.   */
  271.  class  ConsoleLogger : public SimObject {
  272.    public:
  273.     /*! Attaches the logger to the console and begins writing to file@tsexample
  274. // Create the logger
  275. // Will automatically start writing to testLogging.txt with normal priority
  276. new ConsoleLogger(logger, "testLogging.txt", false);
  277.  
  278. // Send something to the console, with the logger consumes and writes to file
  279. echo("This is logged to the file");
  280.  
  281. // Stop logging, but do not delete the logger
  282. logger.detach();
  283.  
  284. echo("This is not logged to the file");
  285.  
  286. // Attach the logger to the console again
  287. logger.attach();
  288.  
  289. // Logging has resumed
  290. echo("Logging has resumed");@endtsexample
  291.  
  292.  */
  293.     virtual bool attach(()) {}
  294.     /*! Detaches the logger from the console and stops writing to file@tsexample
  295. // Create the logger
  296. // Will automatically start writing to testLogging.txt with normal priority
  297. new ConsoleLogger(logger, "testLogging.txt", false);
  298.  
  299. // Send something to the console, with the logger consumes and writes to file
  300. echo("This is logged to the file");
  301.  
  302. // Stop logging, but do not delete the logger
  303. logger.detach();
  304.  
  305. echo("This is not logged to the file");
  306.  
  307. // Attach the logger to the console again
  308. logger.attach();
  309.  
  310. // Logging has resumed
  311. echo("Logging has resumed");@endtsexample
  312.  
  313.  */
  314.     virtual bool detach(()) {}
  315.  
  316.     /*! @name Logging
  317.     @{ */
  318.     /*! */
  319.     /*!
  320.     Determines the priority level and attention the logged entry gets when recorded
  321.  
  322.  
  323.    
  324.      */
  325.     LogLevel level;
  326.     /// @}
  327.  
  328.  
  329.     /*! @name Ungrouped
  330.     @{ */
  331.     /*! */
  332.     /// @}
  333.  
  334.  
  335.     /*! @name Object
  336.     @{ */
  337.     /*! */
  338.     /// @}
  339.  
  340.  
  341.     /*! @name Editing
  342.     @{ */
  343.     /*! */
  344.     /// @}
  345.  
  346.  
  347.     /*! @name Persistence
  348.     @{ */
  349.     /*! */
  350.     /// @}
  351.  
  352.  };
  353.  
  354.  /// Stub class
  355.  ///
  356.  /// @note This is a stub class to ensure a proper class hierarchy. No
  357.  ///       information was available for this class.
  358.  class  logger : public ConsoleLogger {
  359.    public:
  360.  };
  361.  
  362.  /*!
  363.  @brief A collection of SimObjects.
  364.  
  365.  It is often necessary to keep track of an arbitrary set of SimObjects. For instance, Torque's networking code needs to not only keep track of the set of objects which need to be ghosted, but also the set of objects which must <i>always</i> be ghosted. It does this by working with two sets. The first of these is the RootGroup (which is actually a SimGroup) and the second is the GhostAlwaysSet, which contains objects which must always be ghosted to the client.
  366.  
  367.  Some general notes on SimSets:
  368.  
  369.  - Membership is not exclusive. A SimObject may be a member of multiple SimSets.
  370.  
  371.  - A SimSet does not destroy subobjects when it is destroyed.
  372.  
  373.  - A SimSet may hold an arbitrary number of objects.
  374.  
  375.  @ingroup Console
  376.   */
  377.  class  SimSet : public SimObject {
  378.    public:
  379.        /*! Called when an object is added to the set.
  380. @param object The object that was added. */
  381.        void onObjectAdded( SimObject object );
  382.  
  383.        /*! Called when an object is removed from the set.
  384. @param object The object that was removed. */
  385.        void onObjectRemoved( SimObject object );
  386.  
  387.     /*! Dump a list of all objects contained in the set to the console. */
  388.     virtual void listObjects(()) {}
  389.     /*! Add the given objects to the set.
  390. @param objects The objects to add to the set. */
  391.     virtual void add(( SimObject objects... )) {}
  392.     /*! Remove the given objects from the set.
  393. @param objects The objects to remove from the set. */
  394.     virtual void remove(( SimObject objects... )) {}
  395.     /*! Remove all objects from the set. */
  396.     virtual void clear(()) {}
  397.     /*! Delete all objects in the set. */
  398.     virtual void deleteAllObjects(()) {}
  399.     /*! Return a random object from the set.
  400. @return A randomly selected object from the set or -1 if the set is empty. */
  401.     virtual string getRandom(()) {}
  402.     /*! Call a method on all objects contained in the set.
  403.  
  404. @param method The name of the method to call.
  405. @param args The arguments to the method.
  406.  
  407. @note This method recurses into all SimSets that are children to the set.
  408.  
  409. @see callOnChildrenNoRecurse */
  410.     virtual void callOnChildren(( string method, string args... )) {}
  411.     /*! Call a method on all objects contained in the set.
  412.  
  413. @param method The name of the method to call.
  414. @param args The arguments to the method.
  415.  
  416. @note This method does not recurse into child SimSets.
  417.  
  418. @see callOnChildren */
  419.     virtual void callOnChildrenNoRecurse(( string method, string args... )) {}
  420.     /*! Make sure child1 is ordered right before child2 in the set.
  421. @param child1 The first child.  The object must already be contained in the set.
  422. @param child2 The second child.  The object must already be contained in the set. */
  423.     virtual void reorderChild(( SimObject child1, SimObject child2 )) {}
  424.     /*! Get the number of objects contained in the set.
  425. @return The number of objects contained in the set. */
  426.     virtual int getCount(()) {}
  427.     /*! Get the number of direct and indirect child objects contained in the set.
  428. @return The number of objects contained in the set as well as in other sets contained directly or indirectly in the set. */
  429.     virtual int getFullCount(()) {}
  430.     /*! Get the object at the given index.
  431. @param index The object index.
  432. @return The object at the given index or -1 if index is out of range. */
  433.     virtual string getObject(( int index )) {}
  434.     /*! Return the index of the given object in this set.
  435. @param obj The object for which to return the index.  Must be contained in the set.
  436. @return The index of the object or -1 if the object is not contained in the set. */
  437.     virtual int getObjectIndex(( SimObject obj )) {}
  438.     /*! Test whether the given object belongs to the set.
  439. @param obj The object.
  440. @return True if the object is contained in the set; false otherwise. */
  441.     virtual bool isMember(( SimObject obj )) {}
  442.     /*! Find an object in the set by its internal name.
  443. @param internalName The internal name of the object to look for.
  444. @param searchChildren If true, SimSets contained in the set will be recursively searched for the object.
  445. @return The object with the given internal name or 0 if no match was found.
  446.  */
  447.     virtual string findObjectByInternalName(( string internalName, bool searchChildren=false )) {}
  448.     /*! Make the given object the first object in the set.
  449. @param obj The object to bring to the frontmost position.  Must be contained in the set. */
  450.     virtual void bringToFront(( SimObject obj )) {}
  451.     /*! Make the given object the last object in the set.
  452. @param obj The object to bring to the last position.  Must be contained in the set. */
  453.     virtual void pushToBack(( SimObject obj )) {}
  454.     /*! Sort the objects in the set using the given comparison function.
  455. @param callbackFunction Name of a function that takes two object arguments A and B and returns -1 if A is less, 1 if B is less, and 0 if both are equal. */
  456.     virtual void sort(( string callbackFunction )) {}
  457.     /*! Test whether the given object may be added to the set.
  458. @param obj The object to test for potential membership.
  459. @return True if the object may be added to the set, false otherwise. */
  460.     virtual bool acceptsAsChild(( SimObject obj )) {}
  461.  
  462.     /*! @name Ungrouped
  463.     @{ */
  464.     /*! */
  465.     /// @}
  466.  
  467.  
  468.     /*! @name Object
  469.     @{ */
  470.     /*! */
  471.     /// @}
  472.  
  473.  
  474.     /*! @name Editing
  475.     @{ */
  476.     /*! */
  477.     /// @}
  478.  
  479.  
  480.     /*! @name Persistence
  481.     @{ */
  482.     /*! */
  483.     /// @}
  484.  
  485.  };
  486.  
  487.  /*!
  488.  @brief A collection of SimObjects that are owned by the group.
  489.  
  490.  A SimGroup is a stricter form of SimSet. SimObjects may only be a member of a single SimGroup at a time. The SimGroup will automatically enforce the single-group-membership rule (ie. adding an object to a SimGroup will cause it to be removed from its current SimGroup, if any).
  491.  
  492.  Deleting a SimGroup will also delete all SimObjects in the SimGroup.
  493.  
  494.  @tsexample
  495.  // Create a SimGroup for particle emitters
  496.  new SimGroup(Emitters)
  497.  {
  498.     canSaveDynamicFields = "1";
  499.  
  500.     new ParticleEmitterNode(CrystalEmmiter) {
  501.        active = "1";
  502.        emitter = "dustEmitter";
  503.        velocity = "1";
  504.        dataBlock = "GenericSmokeEmitterNode";
  505.        position = "-61.6276 2.1142 4.45027";
  506.        rotation = "1 0 0 0";
  507.        scale = "1 1 1";
  508.        canSaveDynamicFields = "1";
  509.     };
  510.  
  511.     new ParticleEmitterNode(Steam1) {
  512.        active = "1";
  513.        emitter = "SlowSteamEmitter";
  514.        velocity = "1";
  515.        dataBlock = "GenericSmokeEmitterNode";
  516.        position = "-25.0458 1.55289 2.51308";
  517.        rotation = "1 0 0 0";
  518.        scale = "1 1 1";
  519.        canSaveDynamicFields = "1";
  520.     };
  521.  };
  522.  
  523.  @endtsexample
  524.  
  525.  @ingroup Console
  526.   */
  527.  class  SimGroup : public SimSet {
  528.    public:
  529.  
  530.     /*! @name Ungrouped
  531.     @{ */
  532.     /*! */
  533.     /// @}
  534.  
  535.  
  536.     /*! @name Object
  537.     @{ */
  538.     /*! */
  539.     /// @}
  540.  
  541.  
  542.     /*! @name Editing
  543.     @{ */
  544.     /*! */
  545.     /// @}
  546.  
  547.  
  548.     /*! @name Persistence
  549.     @{ */
  550.     /*! */
  551.     /// @}
  552.  
  553.  };
  554.  
  555.  /// Stub class
  556.  ///
  557.  /// @note This is a stub class to ensure a proper class hierarchy. No
  558.  ///       information was available for this class.
  559.  class  CmChatClientGroup : public SimGroup {
  560.    public:
  561.  };
  562.  
  563.  /// Stub class
  564.  ///
  565.  /// @note This is a stub class to ensure a proper class hierarchy. No
  566.  ///       information was available for this class.
  567.  class  CmChildObjectsGroup : public SimGroup {
  568.    public:
  569.  };
  570.  
  571.  /// Stub class
  572.  ///
  573.  /// @note This is a stub class to ensure a proper class hierarchy. No
  574.  ///       information was available for this class.
  575.  class  CmTmpObjectsGroup : public SimGroup {
  576.    public:
  577.  };
  578.  
  579.  /*!
  580.  @brief Superclass for all ghostable networked objects.
  581.  
  582.  @ingroup Networking
  583.   */
  584.  class  NetObject : public SimObject {
  585.    public:
  586.     virtual int getNetFlags(()) {}
  587.     /*! @brief Get the ghost index of this object from the server.
  588.  
  589. @tsexample
  590. %ghostID = LocalClientConnection.getGhostId( %serverObject );
  591. @endtsexample
  592.  
  593. @return The index of this ghost in the GhostManager on the server */
  594.     virtual int getGhostID(()) {}
  595.     /*! @brief Called to check if an object resides on the clientside.
  596.  
  597. @return True if the object resides on the client, false otherwise. */
  598.     virtual bool isClientObject(()) {}
  599.     /*! @brief Checks if an object resides on the server.
  600.  
  601. @return True if the object resides on the server, false otherwise. */
  602.     virtual bool isServerObject(()) {}
  603.  
  604.     /*! @name Ungrouped
  605.     @{ */
  606.     /*! */
  607.     /// @}
  608.  
  609.  
  610.     /*! @name Object
  611.     @{ */
  612.     /*! */
  613.     /// @}
  614.  
  615.  
  616.     /*! @name Editing
  617.     @{ */
  618.     /*! */
  619.     /// @}
  620.  
  621.  
  622.     /*! @name Persistence
  623.     @{ */
  624.     /*! */
  625.     /// @}
  626.  
  627.  };
  628.  
  629.  /*!
  630.  @brief A networkable object that exists in the 3D world.
  631.  
  632.  The SceneObject class provides the foundation for 3D objects in the Engine.  It exposes the functionality for:
  633.  
  634.  <ul><li>Position, rotation and scale within the world.</li><li>Working with a scene graph (in the Zone and Portal sections), allowing efficient and robust rendering of the game scene.</li><li>Various helper functions, including functions to get bounding information and momentum/velocity.</li><li>Mounting one SceneObject to another.</li><li>An interface for collision detection, as well as ray casting.</li><li>Lighting. SceneObjects can register lights both at lightmap generation time, and dynamic lights at runtime (for special effects, such as from flame or a projectile, or from an explosion).</li></ul>
  635.  
  636.  You do not typically work with SceneObjects themselves.  The SceneObject provides a reference within the game world (the scene), but does not render to the client on its own.  The same is true of collision detection beyond that of the bounding box.  Instead you use one of the many classes that derrive from SceneObject, such as TSStatic.
  637.  
  638.  @section SceneObject_Hiding Difference Between setHidden() and isRenderEnabled
  639.  
  640.  When it comes time to decide if a SceneObject should render or not, there are two methods that can stop the SceneObject from rendering at all.  You need to be aware of the differences between these two methods as they impact how the SceneObject is networked from the server to the client.
  641.  
  642.  The first method of manually controlling if a SceneObject is rendered is through its SceneObject::isRenderEnabled property.  When set to false the SceneObject is considered invisible but still present within the scene.  This means it still takes part in collisions and continues to be networked.
  643.  
  644.  The second method is using the setHidden() method.  This will actually remove a SceneObject from the scene and it will no longer be networked from the server to the cleint.  Any client-side ghost of the object will be deleted as the server no longer considers the object to be in scope.
  645.  
  646.  @ingroup gameObjects
  647.   */
  648.  class  SceneObject : public NetObject {
  649.    public:
  650.     /*! Returns the velocity of a scene-object.
  651.  
  652. @ingroup AFX */
  653.     virtual float getSpeed(()) {}
  654.     /*! Return the type mask for this object.
  655. @return The numeric type mask for the object. */
  656.     virtual int getType(()) {}
  657.     /*! @brief Mount objB to this object at the desired slot with optional transform.
  658.  
  659. @param objB  Object to mount onto us
  660. @param slot  Mount slot ID
  661. @param txfm (optional) mount offset transform
  662. @return true if successful, false if failed (objB is not valid) */
  663.     virtual bool mountObject(( SceneObject objB, int slot, TransformF txfm=MatrixF::Identity )) {}
  664.     /*! @brief Unmount an object from ourselves.
  665.  
  666. @param target object to unmount
  667. @return true if successful, false if failed
  668.  */
  669.     virtual bool unmountObject(( SceneObject target )) {}
  670.     /*! Unmount us from the currently mounted object if any.
  671.  */
  672.     virtual void unmount(()) {}
  673.     /*! @brief Check if we are mounted to another object.
  674.  
  675. @return true if mounted to another object, false if not mounted. */
  676.     virtual bool isMounted(()) {}
  677.     /*! @brief Get the object we are mounted to.
  678.  
  679. @return the SimObjectID of the object we're mounted to, or 0 if not mounted. */
  680.     virtual int getObjectMount(()) {}
  681.     /*! Get the number of objects mounted to us.
  682. @return the number of mounted objects. */
  683.     virtual int getMountedObjectCount(()) {}
  684.     /*! Get the object mounted at a particular slot.
  685. @param slot mount slot index to query
  686. @return ID of the object mounted in the slot, or 0 if no object. */
  687.     virtual int getMountedObject(( int slot )) {}
  688.     /*! @brief Get the mount node index of the object mounted at our given slot.
  689.  
  690. @param slot mount slot index to query
  691. @return index of the mount node used by the object mounted in this slot. */
  692.     virtual int getMountedObjectNode(( int slot )) {}
  693.     /*! @brief Get the object mounted at our given node index.
  694.  
  695. @param node mount node index to query
  696. @return ID of the first object mounted at the node, or 0 if none found. */
  697.     virtual int getMountNodeObject(( int node )) {}
  698.     /*! Get the object's transform.
  699. @return the current transform of the object
  700.  */
  701.     virtual string getTransform(()) {}
  702.     /*! Get the object's world position.
  703. @return the current world position of the object
  704.  */
  705.     virtual string getPosition(()) {}
  706.     /*! Get Euler rotation of this object.
  707. @return the orientation of the object in the form of rotations around the X, Y and Z axes in degrees.
  708.  */
  709.     virtual string getEulerRotation(()) {}
  710.     /*! Get the direction this object is facing.
  711. @return a vector indicating the direction this object is facing.
  712. @note This is the object's y axis. */
  713.     virtual string getForwardVector(()) {}
  714.     /*! Get the right vector of the object.
  715. @return a vector indicating the right direction of this object.@note This is the object's x axis. */
  716.     virtual string getRightVector(()) {}
  717.     /*! Get the up vector of the object.
  718. @return a vector indicating the up direction of this object.@note This is the object's z axis. */
  719.     virtual string getUpVector(()) {}
  720.     /*! Set the object's transform (orientation and position).@param txfm object transform to set */
  721.     virtual void setTransform(( TransformF txfm )) {}
  722.     /*! Get the object's scale.
  723. @return object scale as a Point3F */
  724.     virtual string getScale(()) {}
  725.     /*! Set the object's scale.
  726. @param scale object scale to set
  727.  */
  728.     virtual void setScale(( Point3F scale )) {}
  729.     /*! Get the object's world bounding box.
  730. @return six fields, two Point3Fs, containing the min and max points of the worldbox. */
  731.     virtual string getWorldBox(()) {}
  732.     /*! Get the center of the object's world bounding box.
  733. @return the center of the world bounding box for this object. */
  734.     virtual string getWorldBoxCenter(()) {}
  735.     /*! Get the object's bounding box (relative to the object's origin).
  736. @return six fields, two Point3Fs, containing the min and max points of the objectbox. */
  737.     virtual string getObjectBox(()) {}
  738.     /*! Check if this object has a global bounds set.
  739. If global bounds are set to be true, then the object is assumed to have an infinitely large bounding box for collision and rendering purposes.
  740. @return true if the object has a global bounds. */
  741.     virtual bool isGlobalBounds(()) {}
  742.     virtual void disableCollision(()) {}
  743.     virtual void enableCollision(()) {}
  744.  
  745.     /*! @name Transform
  746.     @{ */
  747.     /*! */
  748.     /*!
  749.     Object world position.
  750.    
  751.      */
  752.     MatrixPosition position;
  753.     /*!
  754.     Object world orientation.
  755.    
  756.      */
  757.     MatrixRotation rotation;
  758.     /*!
  759.     Object world scale.
  760.    
  761.      */
  762.     Point3F scale;
  763.     /// @}
  764.  
  765.  
  766.     /*! @name Editing
  767.     @{ */
  768.     /*! */
  769.     /*!
  770.     Controls client-side rendering of the object.
  771. @see isRenderable()
  772.  
  773.    
  774.      */
  775.     bool isRenderEnabled;
  776.     /// @}
  777.  
  778.  
  779.     /*! @name Mounting
  780.     @{ */
  781.     /*! */
  782.     /*!
  783.     @brief PersistentID of object we are mounted to.
  784.  
  785. Unlike the SimObjectID that is determined at run time, the PersistentID of an object is saved with the level/mission and may be used to form a link between objects.
  786.    
  787.      */
  788.     pid mountPID;
  789.     /*!
  790.     Node we are mounted to.
  791.    
  792.      */
  793.     int mountNode;
  794.     /*!
  795.     Position we are mounted at ( object space of our mount object ).
  796.    
  797.      */
  798.     MatrixPosition mountPos;
  799.     /*!
  800.     Rotation we are mounted at ( object space of our mount object ).
  801.    
  802.      */
  803.     MatrixRotation mountRot;
  804.     /// @}
  805.  
  806.  
  807.     /*! @name Ungrouped
  808.     @{ */
  809.     /*! */
  810.     /// @}
  811.  
  812.  
  813.     /*! @name Object
  814.     @{ */
  815.     /*! */
  816.     /// @}
  817.  
  818.  
  819.     /*! @name Editing
  820.     @{ */
  821.     /*! */
  822.     /// @}
  823.  
  824.  
  825.     /*! @name Persistence
  826.     @{ */
  827.     /*! */
  828.     /// @}
  829.  
  830.  };
  831.  
  832.  /*!
  833.  @brief %Forest is a global-bounds scene object provides collision and rendering for a (.forest) data file.
  834.  
  835.  %Forest is designed to efficiently render a large number of static meshes: trees, rocks plants, etc. These cannot be moved at game-time or play animations but do support wind effects using vertex shader transformations guided by vertex color in the asset and user placed wind emitters ( or weapon explosions ).
  836.  
  837.  Script level manipulation of forest data is not possible through %Forest, it is only the rendering/collision. All editing is done through the world editor.
  838.  
  839.  @see TSForestItemData Defines a tree type.
  840.  @see GuiForestEditorCtrl Used by the world editor to provide manipulation of forest data.
  841.   */
  842.  class  Forest : public SceneObject {
  843.    public:
  844.     virtual bool isDirty(()) {}
  845.     virtual void regenCells(()) {}
  846.     virtual void clear(()) {}
  847.  
  848.     /*! @name Transform
  849.     @{ */
  850.     /*! */
  851.     /// @}
  852.  
  853.  
  854.     /*! @name Editing
  855.     @{ */
  856.     /*! */
  857.     /// @}
  858.  
  859.  
  860.     /*! @name Mounting
  861.     @{ */
  862.     /*! */
  863.     /// @}
  864.  
  865.  
  866.     /*! @name Ungrouped
  867.     @{ */
  868.     /*! */
  869.     /// @}
  870.  
  871.  
  872.     /*! @name Object
  873.     @{ */
  874.     /*! */
  875.     /// @}
  876.  
  877.  
  878.     /*! @name Editing
  879.     @{ */
  880.     /*! */
  881.     /// @}
  882.  
  883.  
  884.     /*! @name Persistence
  885.     @{ */
  886.     /*! */
  887.     /// @}
  888.  
  889.     /*!
  890.     The source forest data file.
  891.    
  892.      */
  893.     filename dataFile;
  894.  
  895.     /*! @name Lod
  896.     @{ */
  897.     /*! */
  898.     /*!
  899.     Scalar applied to the farclip distance when Forest renders into a reflection.
  900.    
  901.      */
  902.     float lodReflectScalar;
  903.     /// @}
  904.  
  905.  };
  906.  
  907.  /// Stub class
  908.  ///
  909.  /// @note This is a stub class to ensure a proper class hierarchy. No
  910.  ///       information was available for this class.
  911.  class  forest450 : public Forest {
  912.    public:
  913.  };
  914.  
  915.  /// Stub class
  916.  ///
  917.  /// @note This is a stub class to ensure a proper class hierarchy. No
  918.  ///       information was available for this class.
  919.  class  forest449 : public Forest {
  920.    public:
  921.  };
  922.  
  923.  /// Stub class
  924.  ///
  925.  /// @note This is a stub class to ensure a proper class hierarchy. No
  926.  ///       information was available for this class.
  927.  class  forest448 : public Forest {
  928.    public:
  929.  };
  930.  
  931.  /// Stub class
  932.  ///
  933.  /// @note This is a stub class to ensure a proper class hierarchy. No
  934.  ///       information was available for this class.
  935.  class  forest447 : public Forest {
  936.    public:
  937.  };
  938.  
  939.  /// Stub class
  940.  ///
  941.  /// @note This is a stub class to ensure a proper class hierarchy. No
  942.  ///       information was available for this class.
  943.  class  forest446 : public Forest {
  944.    public:
  945.  };
  946.  
  947.  /// Stub class
  948.  ///
  949.  /// @note This is a stub class to ensure a proper class hierarchy. No
  950.  ///       information was available for this class.
  951.  class  forest445 : public Forest {
  952.    public:
  953.  };
  954.  
  955.  /// Stub class
  956.  ///
  957.  /// @note This is a stub class to ensure a proper class hierarchy. No
  958.  ///       information was available for this class.
  959.  class  forest444 : public Forest {
  960.    public:
  961.  };
  962.  
  963.  /// Stub class
  964.  ///
  965.  /// @note This is a stub class to ensure a proper class hierarchy. No
  966.  ///       information was available for this class.
  967.  class  forest443 : public Forest {
  968.    public:
  969.  };
  970.  
  971.  /// Stub class
  972.  ///
  973.  /// @note This is a stub class to ensure a proper class hierarchy. No
  974.  ///       information was available for this class.
  975.  class  forest442 : public Forest {
  976.    public:
  977.  };
  978.  
  979.  /*!
  980.  @brief A renderable, collidable convex shape defined by a collection of surface planes.
  981.  
  982.  %ConvexShape is intended to be used as a temporary asset for quickly blocking out a scene or filling in approximate shapes to be later replaced with final assets. This is most easily done by using the WorldEditor's Sketch Tool.
  983.  
  984.   */
  985.  class  ConvexShape : public SceneObject {
  986.    public:
  987.  
  988.     /*! @name Rendering
  989.     @{ */
  990.     /*! */
  991.     /*!
  992.     Material used to render the ConvexShape surface.
  993.    
  994.      */
  995.     string Material;
  996.     /// @}
  997.  
  998.  
  999.     /*! @name Internal
  1000.     @{ */
  1001.     /*! */
  1002.     /*!
  1003.     Do not modify, for internal use.
  1004.    
  1005.      */
  1006.     string surface;
  1007.     /// @}
  1008.  
  1009.  
  1010.     /*! @name AFX
  1011.     @{ */
  1012.     /*! */
  1013.     /*!
  1014.      */
  1015.     bool ignoreZodiacs;
  1016.     /*!
  1017.      */
  1018.     bool useGradientRange;
  1019.     /*!
  1020.      */
  1021.     Point2F gradientRange;
  1022.     /*!
  1023.      */
  1024.     bool invertGradientRange;
  1025.     /// @}
  1026.  
  1027.  
  1028.     /*! @name Transform
  1029.     @{ */
  1030.     /*! */
  1031.     /// @}
  1032.  
  1033.  
  1034.     /*! @name Editing
  1035.     @{ */
  1036.     /*! */
  1037.     /// @}
  1038.  
  1039.  
  1040.     /*! @name Mounting
  1041.     @{ */
  1042.     /*! */
  1043.     /// @}
  1044.  
  1045.  
  1046.     /*! @name Ungrouped
  1047.     @{ */
  1048.     /*! */
  1049.     /// @}
  1050.  
  1051.  
  1052.     /*! @name Object
  1053.     @{ */
  1054.     /*! */
  1055.     /// @}
  1056.  
  1057.  
  1058.     /*! @name Editing
  1059.     @{ */
  1060.     /*! */
  1061.     /// @}
  1062.  
  1063.  
  1064.     /*! @name Persistence
  1065.     @{ */
  1066.     /*! */
  1067.     /// @}
  1068.  
  1069.  };
  1070.  
  1071.  class  TunnelConvexShape : public ConvexShape {
  1072.    public:
  1073.  
  1074.     /*! @name Rendering
  1075.     @{ */
  1076.     /*! */
  1077.     /// @}
  1078.  
  1079.  
  1080.     /*! @name Internal
  1081.     @{ */
  1082.     /*! */
  1083.     /// @}
  1084.  
  1085.  
  1086.     /*! @name AFX
  1087.     @{ */
  1088.     /*! */
  1089.     /// @}
  1090.  
  1091.  
  1092.     /*! @name Transform
  1093.     @{ */
  1094.     /*! */
  1095.     /// @}
  1096.  
  1097.  
  1098.     /*! @name Editing
  1099.     @{ */
  1100.     /*! */
  1101.     /// @}
  1102.  
  1103.  
  1104.     /*! @name Mounting
  1105.     @{ */
  1106.     /*! */
  1107.     /// @}
  1108.  
  1109.  
  1110.     /*! @name Ungrouped
  1111.     @{ */
  1112.     /*! */
  1113.     /// @}
  1114.  
  1115.  
  1116.     /*! @name Object
  1117.     @{ */
  1118.     /*! */
  1119.     /// @}
  1120.  
  1121.  
  1122.     /*! @name Editing
  1123.     @{ */
  1124.     /*! */
  1125.     /// @}
  1126.  
  1127.  
  1128.     /*! @name Persistence
  1129.     @{ */
  1130.     /*! */
  1131.     /// @}
  1132.  
  1133.  };
  1134.  
  1135.  /// Stub class
  1136.  ///
  1137.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1138.  ///       information was available for this class.
  1139.  class  tun_450_254_237_5346_right : public TunnelConvexShape {
  1140.    public:
  1141.  };
  1142.  
  1143.  /// Stub class
  1144.  ///
  1145.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1146.  ///       information was available for this class.
  1147.  class  tun_450_254_237_5346_left : public TunnelConvexShape {
  1148.    public:
  1149.  };
  1150.  
  1151.  /// Stub class
  1152.  ///
  1153.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1154.  ///       information was available for this class.
  1155.  class  tun_450_254_237_5346_bottom : public TunnelConvexShape {
  1156.    public:
  1157.  };
  1158.  
  1159.  /// Stub class
  1160.  ///
  1161.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1162.  ///       information was available for this class.
  1163.  class  tun_450_254_237_5346_top : public TunnelConvexShape {
  1164.    public:
  1165.  };
  1166.  
  1167.  /// Stub class
  1168.  ///
  1169.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1170.  ///       information was available for this class.
  1171.  class  tun_450_254_236_5354_right2 : public TunnelConvexShape {
  1172.    public:
  1173.  };
  1174.  
  1175.  /// Stub class
  1176.  ///
  1177.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1178.  ///       information was available for this class.
  1179.  class  tun_450_254_236_5354_left2 : public TunnelConvexShape {
  1180.    public:
  1181.  };
  1182.  
  1183.  /// Stub class
  1184.  ///
  1185.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1186.  ///       information was available for this class.
  1187.  class  tun_450_254_236_5354_bottom2 : public TunnelConvexShape {
  1188.    public:
  1189.  };
  1190.  
  1191.  /// Stub class
  1192.  ///
  1193.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1194.  ///       information was available for this class.
  1195.  class  tun_450_254_238_5355_right2 : public TunnelConvexShape {
  1196.    public:
  1197.  };
  1198.  
  1199.  /// Stub class
  1200.  ///
  1201.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1202.  ///       information was available for this class.
  1203.  class  tun_450_254_238_5355_right : public TunnelConvexShape {
  1204.    public:
  1205.  };
  1206.  
  1207.  /// Stub class
  1208.  ///
  1209.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1210.  ///       information was available for this class.
  1211.  class  tun_450_254_238_5355_left3 : public TunnelConvexShape {
  1212.    public:
  1213.  };
  1214.  
  1215.  /// Stub class
  1216.  ///
  1217.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1218.  ///       information was available for this class.
  1219.  class  tun_450_254_238_5355_left2 : public TunnelConvexShape {
  1220.    public:
  1221.  };
  1222.  
  1223.  /// Stub class
  1224.  ///
  1225.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1226.  ///       information was available for this class.
  1227.  class  tun_450_254_238_5355_left : public TunnelConvexShape {
  1228.    public:
  1229.  };
  1230.  
  1231.  /// Stub class
  1232.  ///
  1233.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1234.  ///       information was available for this class.
  1235.  class  tun_450_254_238_5355_back2 : public TunnelConvexShape {
  1236.    public:
  1237.  };
  1238.  
  1239.  /// Stub class
  1240.  ///
  1241.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1242.  ///       information was available for this class.
  1243.  class  tun_450_254_238_5355_back : public TunnelConvexShape {
  1244.    public:
  1245.  };
  1246.  
  1247.  /// Stub class
  1248.  ///
  1249.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1250.  ///       information was available for this class.
  1251.  class  tun_450_254_238_5355_bottom : public TunnelConvexShape {
  1252.    public:
  1253.  };
  1254.  
  1255.  /// Stub class
  1256.  ///
  1257.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1258.  ///       information was available for this class.
  1259.  class  tun_450_254_235_5351_left2 : public TunnelConvexShape {
  1260.    public:
  1261.  };
  1262.  
  1263.  /// Stub class
  1264.  ///
  1265.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1266.  ///       information was available for this class.
  1267.  class  tun_450_254_235_5351_left : public TunnelConvexShape {
  1268.    public:
  1269.  };
  1270.  
  1271.  /// Stub class
  1272.  ///
  1273.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1274.  ///       information was available for this class.
  1275.  class  tun_450_254_235_5351_front : public TunnelConvexShape {
  1276.    public:
  1277.  };
  1278.  
  1279.  /// Stub class
  1280.  ///
  1281.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1282.  ///       information was available for this class.
  1283.  class  tun_450_254_235_5338_left2 : public TunnelConvexShape {
  1284.    public:
  1285.  };
  1286.  
  1287.  /// Stub class
  1288.  ///
  1289.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1290.  ///       information was available for this class.
  1291.  class  tun_450_254_235_5338_left : public TunnelConvexShape {
  1292.    public:
  1293.  };
  1294.  
  1295.  /// Stub class
  1296.  ///
  1297.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1298.  ///       information was available for this class.
  1299.  class  tun_450_254_235_5338_front : public TunnelConvexShape {
  1300.    public:
  1301.  };
  1302.  
  1303.  /// Stub class
  1304.  ///
  1305.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1306.  ///       information was available for this class.
  1307.  class  tun_450_254_235_5338_bottom : public TunnelConvexShape {
  1308.    public:
  1309.  };
  1310.  
  1311.  /// Stub class
  1312.  ///
  1313.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1314.  ///       information was available for this class.
  1315.  class  tun_450_255_235_5338_right : public TunnelConvexShape {
  1316.    public:
  1317.  };
  1318.  
  1319.  /// Stub class
  1320.  ///
  1321.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1322.  ///       information was available for this class.
  1323.  class  tun_450_255_235_5338_back : public TunnelConvexShape {
  1324.    public:
  1325.  };
  1326.  
  1327.  /// Stub class
  1328.  ///
  1329.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1330.  ///       information was available for this class.
  1331.  class  tun_450_255_235_5338_front : public TunnelConvexShape {
  1332.    public:
  1333.  };
  1334.  
  1335.  /// Stub class
  1336.  ///
  1337.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1338.  ///       information was available for this class.
  1339.  class  tun_450_255_235_5338_bottom : public TunnelConvexShape {
  1340.    public:
  1341.  };
  1342.  
  1343.  /// Stub class
  1344.  ///
  1345.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1346.  ///       information was available for this class.
  1347.  class  tun_450_36_42_5153_right : public TunnelConvexShape {
  1348.    public:
  1349.  };
  1350.  
  1351.  /// Stub class
  1352.  ///
  1353.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1354.  ///       information was available for this class.
  1355.  class  tun_450_36_42_5153_left : public TunnelConvexShape {
  1356.    public:
  1357.  };
  1358.  
  1359.  /// Stub class
  1360.  ///
  1361.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1362.  ///       information was available for this class.
  1363.  class  tun_450_36_42_5153_back2 : public TunnelConvexShape {
  1364.    public:
  1365.  };
  1366.  
  1367.  /// Stub class
  1368.  ///
  1369.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1370.  ///       information was available for this class.
  1371.  class  tun_450_36_42_5153_back : public TunnelConvexShape {
  1372.    public:
  1373.  };
  1374.  
  1375.  /// Stub class
  1376.  ///
  1377.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1378.  ///       information was available for this class.
  1379.  class  tun_450_36_42_5153_bottom : public TunnelConvexShape {
  1380.    public:
  1381.  };
  1382.  
  1383.  /// Stub class
  1384.  ///
  1385.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1386.  ///       information was available for this class.
  1387.  class  tun_450_36_41_5156_right2 : public TunnelConvexShape {
  1388.    public:
  1389.  };
  1390.  
  1391.  /// Stub class
  1392.  ///
  1393.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1394.  ///       information was available for this class.
  1395.  class  tun_450_36_41_5156_right : public TunnelConvexShape {
  1396.    public:
  1397.  };
  1398.  
  1399.  /// Stub class
  1400.  ///
  1401.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1402.  ///       information was available for this class.
  1403.  class  tun_450_36_41_5156_left : public TunnelConvexShape {
  1404.    public:
  1405.  };
  1406.  
  1407.  /// Stub class
  1408.  ///
  1409.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1410.  ///       information was available for this class.
  1411.  class  tun_450_36_41_5156_bottom : public TunnelConvexShape {
  1412.    public:
  1413.  };
  1414.  
  1415.  /// Stub class
  1416.  ///
  1417.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1418.  ///       information was available for this class.
  1419.  class  tun_450_36_40_5160_right : public TunnelConvexShape {
  1420.    public:
  1421.  };
  1422.  
  1423.  /// Stub class
  1424.  ///
  1425.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1426.  ///       information was available for this class.
  1427.  class  tun_450_36_40_5160_left : public TunnelConvexShape {
  1428.    public:
  1429.  };
  1430.  
  1431.  /// Stub class
  1432.  ///
  1433.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1434.  ///       information was available for this class.
  1435.  class  tun_450_36_40_5160_front : public TunnelConvexShape {
  1436.    public:
  1437.  };
  1438.  
  1439.  /// Stub class
  1440.  ///
  1441.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1442.  ///       information was available for this class.
  1443.  class  tun_450_36_40_5160_bottom : public TunnelConvexShape {
  1444.    public:
  1445.  };
  1446.  
  1447.  class  TerrainBlock : public SceneObject {
  1448.    public:
  1449.     virtual void initHighlightShader() {}
  1450.     virtual void deleteHighlightShader() {}
  1451.  
  1452.     /*! @name Media
  1453.     @{ */
  1454.     /*! */
  1455.     /*!
  1456.     The source terrain data file.
  1457.    
  1458.      */
  1459.     filename terrainFile;
  1460.     /// @}
  1461.  
  1462.  
  1463.     /*! @name Misc
  1464.     @{ */
  1465.     /*! */
  1466.     /*!
  1467.     Size of base texture size per meter.
  1468.    
  1469.      */
  1470.     int baseTexSize;
  1471.     /// @}
  1472.  
  1473.  
  1474.     /*! @name AFX
  1475.     @{ */
  1476.     /*! */
  1477.     /*!
  1478.      */
  1479.     bool ignoreZodiacs;
  1480.     /// @}
  1481.  
  1482.  
  1483.     /*! @name Misc
  1484.     @{ */
  1485.     /*! */
  1486.     /*!
  1487.     Allows the surface to cast shadows onto itself and other objects.
  1488.    
  1489.      */
  1490.     bool castShadows;
  1491.     /*!
  1492.     Indicates the spacing between points on the XY plane on the terrain.
  1493.    
  1494.      */
  1495.     float squareSize;
  1496.     /*!
  1497.     Not yet implemented.
  1498.    
  1499.      */
  1500.     int screenError;
  1501.     /// @}
  1502.  
  1503.  
  1504.     /*! @name Transform
  1505.     @{ */
  1506.     /*! */
  1507.     /// @}
  1508.  
  1509.  
  1510.     /*! @name Editing
  1511.     @{ */
  1512.     /*! */
  1513.     /// @}
  1514.  
  1515.  
  1516.     /*! @name Mounting
  1517.     @{ */
  1518.     /*! */
  1519.     /// @}
  1520.  
  1521.  
  1522.     /*! @name Ungrouped
  1523.     @{ */
  1524.     /*! */
  1525.     /// @}
  1526.  
  1527.  
  1528.     /*! @name Object
  1529.     @{ */
  1530.     /*! */
  1531.     /// @}
  1532.  
  1533.  
  1534.     /*! @name Editing
  1535.     @{ */
  1536.     /*! */
  1537.     /// @}
  1538.  
  1539.  
  1540.     /*! @name Persistence
  1541.     @{ */
  1542.     /*! */
  1543.     /// @}
  1544.  
  1545.  };
  1546.  
  1547.  /// Stub class
  1548.  ///
  1549.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1550.  ///       information was available for this class.
  1551.  class  t450 : public TerrainBlock {
  1552.    public:
  1553.  };
  1554.  
  1555.  /// Stub class
  1556.  ///
  1557.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1558.  ///       information was available for this class.
  1559.  class  tun_449_48_312_5474_right2 : public TunnelConvexShape {
  1560.    public:
  1561.  };
  1562.  
  1563.  /// Stub class
  1564.  ///
  1565.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1566.  ///       information was available for this class.
  1567.  class  tun_449_48_312_5474_right : public TunnelConvexShape {
  1568.    public:
  1569.  };
  1570.  
  1571.  /// Stub class
  1572.  ///
  1573.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1574.  ///       information was available for this class.
  1575.  class  tun_449_48_312_5474_left3 : public TunnelConvexShape {
  1576.    public:
  1577.  };
  1578.  
  1579.  /// Stub class
  1580.  ///
  1581.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1582.  ///       information was available for this class.
  1583.  class  tun_449_48_312_5474_left2 : public TunnelConvexShape {
  1584.    public:
  1585.  };
  1586.  
  1587.  /// Stub class
  1588.  ///
  1589.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1590.  ///       information was available for this class.
  1591.  class  tun_449_48_312_5474_left : public TunnelConvexShape {
  1592.    public:
  1593.  };
  1594.  
  1595.  /// Stub class
  1596.  ///
  1597.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1598.  ///       information was available for this class.
  1599.  class  tun_449_48_312_5474_back3 : public TunnelConvexShape {
  1600.    public:
  1601.  };
  1602.  
  1603.  /// Stub class
  1604.  ///
  1605.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1606.  ///       information was available for this class.
  1607.  class  tun_449_48_312_5474_back2 : public TunnelConvexShape {
  1608.    public:
  1609.  };
  1610.  
  1611.  /// Stub class
  1612.  ///
  1613.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1614.  ///       information was available for this class.
  1615.  class  tun_449_48_312_5474_back : public TunnelConvexShape {
  1616.    public:
  1617.  };
  1618.  
  1619.  /// Stub class
  1620.  ///
  1621.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1622.  ///       information was available for this class.
  1623.  class  tun_449_48_312_5474_bottom : public TunnelConvexShape {
  1624.    public:
  1625.  };
  1626.  
  1627.  /// Stub class
  1628.  ///
  1629.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1630.  ///       information was available for this class.
  1631.  class  tun_449_48_311_5462_right2 : public TunnelConvexShape {
  1632.    public:
  1633.  };
  1634.  
  1635.  /// Stub class
  1636.  ///
  1637.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1638.  ///       information was available for this class.
  1639.  class  tun_449_48_311_5462_right : public TunnelConvexShape {
  1640.    public:
  1641.  };
  1642.  
  1643.  /// Stub class
  1644.  ///
  1645.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1646.  ///       information was available for this class.
  1647.  class  tun_449_48_311_5462_left2 : public TunnelConvexShape {
  1648.    public:
  1649.  };
  1650.  
  1651.  /// Stub class
  1652.  ///
  1653.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1654.  ///       information was available for this class.
  1655.  class  tun_449_48_311_5462_left : public TunnelConvexShape {
  1656.    public:
  1657.  };
  1658.  
  1659.  /// Stub class
  1660.  ///
  1661.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1662.  ///       information was available for this class.
  1663.  class  tun_449_48_311_5462_front : public TunnelConvexShape {
  1664.    public:
  1665.  };
  1666.  
  1667.  /// Stub class
  1668.  ///
  1669.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1670.  ///       information was available for this class.
  1671.  class  tun_449_48_311_5462_bottom : public TunnelConvexShape {
  1672.    public:
  1673.  };
  1674.  
  1675.  /// Stub class
  1676.  ///
  1677.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1678.  ///       information was available for this class.
  1679.  class  tun_449_50_300_5398_right : public TunnelConvexShape {
  1680.    public:
  1681.  };
  1682.  
  1683.  /// Stub class
  1684.  ///
  1685.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1686.  ///       information was available for this class.
  1687.  class  tun_449_50_300_5398_left : public TunnelConvexShape {
  1688.    public:
  1689.  };
  1690.  
  1691.  /// Stub class
  1692.  ///
  1693.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1694.  ///       information was available for this class.
  1695.  class  tun_449_50_300_5398_back2 : public TunnelConvexShape {
  1696.    public:
  1697.  };
  1698.  
  1699.  /// Stub class
  1700.  ///
  1701.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1702.  ///       information was available for this class.
  1703.  class  tun_449_50_300_5398_back : public TunnelConvexShape {
  1704.    public:
  1705.  };
  1706.  
  1707.  /// Stub class
  1708.  ///
  1709.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1710.  ///       information was available for this class.
  1711.  class  tun_449_50_300_5398_front : public TunnelConvexShape {
  1712.    public:
  1713.  };
  1714.  
  1715.  /// Stub class
  1716.  ///
  1717.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1718.  ///       information was available for this class.
  1719.  class  tun_449_50_300_5398_bottom : public TunnelConvexShape {
  1720.    public:
  1721.  };
  1722.  
  1723.  /// Stub class
  1724.  ///
  1725.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1726.  ///       information was available for this class.
  1727.  class  tun_449_189_142_5676_right3 : public TunnelConvexShape {
  1728.    public:
  1729.  };
  1730.  
  1731.  /// Stub class
  1732.  ///
  1733.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1734.  ///       information was available for this class.
  1735.  class  tun_449_189_142_5676_right2 : public TunnelConvexShape {
  1736.    public:
  1737.  };
  1738.  
  1739.  /// Stub class
  1740.  ///
  1741.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1742.  ///       information was available for this class.
  1743.  class  tun_449_189_142_5676_right : public TunnelConvexShape {
  1744.    public:
  1745.  };
  1746.  
  1747.  /// Stub class
  1748.  ///
  1749.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1750.  ///       information was available for this class.
  1751.  class  tun_449_189_142_5676_left : public TunnelConvexShape {
  1752.    public:
  1753.  };
  1754.  
  1755.  /// Stub class
  1756.  ///
  1757.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1758.  ///       information was available for this class.
  1759.  class  tun_449_189_142_5676_back2 : public TunnelConvexShape {
  1760.    public:
  1761.  };
  1762.  
  1763.  /// Stub class
  1764.  ///
  1765.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1766.  ///       information was available for this class.
  1767.  class  tun_449_189_142_5676_back : public TunnelConvexShape {
  1768.    public:
  1769.  };
  1770.  
  1771.  /// Stub class
  1772.  ///
  1773.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1774.  ///       information was available for this class.
  1775.  class  tun_449_189_142_5676_bottom : public TunnelConvexShape {
  1776.    public:
  1777.  };
  1778.  
  1779.  /// Stub class
  1780.  ///
  1781.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1782.  ///       information was available for this class.
  1783.  class  tun_449_189_142_5676_top : public TunnelConvexShape {
  1784.    public:
  1785.  };
  1786.  
  1787.  /// Stub class
  1788.  ///
  1789.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1790.  ///       information was available for this class.
  1791.  class  tun_449_185_142_5656_right2 : public TunnelConvexShape {
  1792.    public:
  1793.  };
  1794.  
  1795.  /// Stub class
  1796.  ///
  1797.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1798.  ///       information was available for this class.
  1799.  class  tun_449_185_142_5656_right : public TunnelConvexShape {
  1800.    public:
  1801.  };
  1802.  
  1803.  /// Stub class
  1804.  ///
  1805.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1806.  ///       information was available for this class.
  1807.  class  tun_449_185_142_5656_left : public TunnelConvexShape {
  1808.    public:
  1809.  };
  1810.  
  1811.  /// Stub class
  1812.  ///
  1813.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1814.  ///       information was available for this class.
  1815.  class  tun_449_185_142_5656_back : public TunnelConvexShape {
  1816.    public:
  1817.  };
  1818.  
  1819.  /// Stub class
  1820.  ///
  1821.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1822.  ///       information was available for this class.
  1823.  class  tun_449_185_142_5656_bottom : public TunnelConvexShape {
  1824.    public:
  1825.  };
  1826.  
  1827.  /// Stub class
  1828.  ///
  1829.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1830.  ///       information was available for this class.
  1831.  class  tun_449_189_141_5676_right : public TunnelConvexShape {
  1832.    public:
  1833.  };
  1834.  
  1835.  /// Stub class
  1836.  ///
  1837.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1838.  ///       information was available for this class.
  1839.  class  tun_449_189_141_5676_front : public TunnelConvexShape {
  1840.    public:
  1841.  };
  1842.  
  1843.  /// Stub class
  1844.  ///
  1845.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1846.  ///       information was available for this class.
  1847.  class  tun_449_189_141_5676_bottom : public TunnelConvexShape {
  1848.    public:
  1849.  };
  1850.  
  1851.  /// Stub class
  1852.  ///
  1853.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1854.  ///       information was available for this class.
  1855.  class  tun_449_189_141_5676_top : public TunnelConvexShape {
  1856.    public:
  1857.  };
  1858.  
  1859.  /// Stub class
  1860.  ///
  1861.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1862.  ///       information was available for this class.
  1863.  class  tun_449_188_141_5676_back : public TunnelConvexShape {
  1864.    public:
  1865.  };
  1866.  
  1867.  /// Stub class
  1868.  ///
  1869.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1870.  ///       information was available for this class.
  1871.  class  tun_449_188_141_5676_front : public TunnelConvexShape {
  1872.    public:
  1873.  };
  1874.  
  1875.  /// Stub class
  1876.  ///
  1877.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1878.  ///       information was available for this class.
  1879.  class  tun_449_188_141_5676_bottom : public TunnelConvexShape {
  1880.    public:
  1881.  };
  1882.  
  1883.  /// Stub class
  1884.  ///
  1885.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1886.  ///       information was available for this class.
  1887.  class  tun_449_188_141_5676_top : public TunnelConvexShape {
  1888.    public:
  1889.  };
  1890.  
  1891.  /// Stub class
  1892.  ///
  1893.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1894.  ///       information was available for this class.
  1895.  class  tun_449_187_141_5676_back : public TunnelConvexShape {
  1896.    public:
  1897.  };
  1898.  
  1899.  /// Stub class
  1900.  ///
  1901.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1902.  ///       information was available for this class.
  1903.  class  tun_449_187_141_5676_front : public TunnelConvexShape {
  1904.    public:
  1905.  };
  1906.  
  1907.  /// Stub class
  1908.  ///
  1909.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1910.  ///       information was available for this class.
  1911.  class  tun_449_187_141_5676_bottom : public TunnelConvexShape {
  1912.    public:
  1913.  };
  1914.  
  1915.  /// Stub class
  1916.  ///
  1917.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1918.  ///       information was available for this class.
  1919.  class  tun_449_187_141_5676_top : public TunnelConvexShape {
  1920.    public:
  1921.  };
  1922.  
  1923.  /// Stub class
  1924.  ///
  1925.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1926.  ///       information was available for this class.
  1927.  class  tun_449_186_141_5674_back2 : public TunnelConvexShape {
  1928.    public:
  1929.  };
  1930.  
  1931.  /// Stub class
  1932.  ///
  1933.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1934.  ///       information was available for this class.
  1935.  class  tun_449_186_141_5674_front2 : public TunnelConvexShape {
  1936.    public:
  1937.  };
  1938.  
  1939.  /// Stub class
  1940.  ///
  1941.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1942.  ///       information was available for this class.
  1943.  class  tun_449_186_141_5674_bottom2 : public TunnelConvexShape {
  1944.    public:
  1945.  };
  1946.  
  1947.  /// Stub class
  1948.  ///
  1949.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1950.  ///       information was available for this class.
  1951.  class  tun_449_185_141_5660_front : public TunnelConvexShape {
  1952.    public:
  1953.  };
  1954.  
  1955.  /// Stub class
  1956.  ///
  1957.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1958.  ///       information was available for this class.
  1959.  class  tun_449_185_141_5660_bottom : public TunnelConvexShape {
  1960.    public:
  1961.  };
  1962.  
  1963.  /// Stub class
  1964.  ///
  1965.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1966.  ///       information was available for this class.
  1967.  class  tun_449_149_123_5397_right2 : public TunnelConvexShape {
  1968.    public:
  1969.  };
  1970.  
  1971.  /// Stub class
  1972.  ///
  1973.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1974.  ///       information was available for this class.
  1975.  class  tun_449_149_123_5397_right : public TunnelConvexShape {
  1976.    public:
  1977.  };
  1978.  
  1979.  /// Stub class
  1980.  ///
  1981.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1982.  ///       information was available for this class.
  1983.  class  tun_449_149_123_5397_left : public TunnelConvexShape {
  1984.    public:
  1985.  };
  1986.  
  1987.  /// Stub class
  1988.  ///
  1989.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1990.  ///       information was available for this class.
  1991.  class  tun_449_149_123_5397_front : public TunnelConvexShape {
  1992.    public:
  1993.  };
  1994.  
  1995.  /// Stub class
  1996.  ///
  1997.  /// @note This is a stub class to ensure a proper class hierarchy. No
  1998.  ///       information was available for this class.
  1999.  class  tun_449_149_123_5397_bottom : public TunnelConvexShape {
  2000.    public:
  2001.  };
  2002.  
  2003.  /// Stub class
  2004.  ///
  2005.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2006.  ///       information was available for this class.
  2007.  class  tun_449_149_123_5397_top : public TunnelConvexShape {
  2008.    public:
  2009.  };
  2010.  
  2011.  /// Stub class
  2012.  ///
  2013.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2014.  ///       information was available for this class.
  2015.  class  tun_449_149_124_5403_right2 : public TunnelConvexShape {
  2016.    public:
  2017.  };
  2018.  
  2019.  /// Stub class
  2020.  ///
  2021.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2022.  ///       information was available for this class.
  2023.  class  tun_449_149_124_5403_left2 : public TunnelConvexShape {
  2024.    public:
  2025.  };
  2026.  
  2027.  /// Stub class
  2028.  ///
  2029.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2030.  ///       information was available for this class.
  2031.  class  tun_449_149_124_5403_bottom2 : public TunnelConvexShape {
  2032.    public:
  2033.  };
  2034.  
  2035.  /// Stub class
  2036.  ///
  2037.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2038.  ///       information was available for this class.
  2039.  class  tun_449_149_125_5394_right : public TunnelConvexShape {
  2040.    public:
  2041.  };
  2042.  
  2043.  /// Stub class
  2044.  ///
  2045.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2046.  ///       information was available for this class.
  2047.  class  tun_449_149_125_5394_left : public TunnelConvexShape {
  2048.    public:
  2049.  };
  2050.  
  2051.  /// Stub class
  2052.  ///
  2053.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2054.  ///       information was available for this class.
  2055.  class  tun_449_149_125_5386_right : public TunnelConvexShape {
  2056.    public:
  2057.  };
  2058.  
  2059.  /// Stub class
  2060.  ///
  2061.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2062.  ///       information was available for this class.
  2063.  class  tun_449_149_125_5386_left2 : public TunnelConvexShape {
  2064.    public:
  2065.  };
  2066.  
  2067.  /// Stub class
  2068.  ///
  2069.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2070.  ///       information was available for this class.
  2071.  class  tun_449_149_125_5386_left : public TunnelConvexShape {
  2072.    public:
  2073.  };
  2074.  
  2075.  /// Stub class
  2076.  ///
  2077.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2078.  ///       information was available for this class.
  2079.  class  tun_449_149_125_5386_bottom : public TunnelConvexShape {
  2080.    public:
  2081.  };
  2082.  
  2083.  /// Stub class
  2084.  ///
  2085.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2086.  ///       information was available for this class.
  2087.  class  tun_449_149_126_5386_right : public TunnelConvexShape {
  2088.    public:
  2089.  };
  2090.  
  2091.  /// Stub class
  2092.  ///
  2093.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2094.  ///       information was available for this class.
  2095.  class  tun_449_149_126_5386_left : public TunnelConvexShape {
  2096.    public:
  2097.  };
  2098.  
  2099.  /// Stub class
  2100.  ///
  2101.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2102.  ///       information was available for this class.
  2103.  class  tun_449_149_126_5386_back : public TunnelConvexShape {
  2104.    public:
  2105.  };
  2106.  
  2107.  /// Stub class
  2108.  ///
  2109.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2110.  ///       information was available for this class.
  2111.  class  tun_449_149_126_5386_bottom : public TunnelConvexShape {
  2112.    public:
  2113.  };
  2114.  
  2115.  /// Stub class
  2116.  ///
  2117.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2118.  ///       information was available for this class.
  2119.  class  tun_449_149_122_5397_right2 : public TunnelConvexShape {
  2120.    public:
  2121.  };
  2122.  
  2123.  /// Stub class
  2124.  ///
  2125.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2126.  ///       information was available for this class.
  2127.  class  tun_449_149_122_5397_right : public TunnelConvexShape {
  2128.    public:
  2129.  };
  2130.  
  2131.  /// Stub class
  2132.  ///
  2133.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2134.  ///       information was available for this class.
  2135.  class  tun_449_149_122_5397_left : public TunnelConvexShape {
  2136.    public:
  2137.  };
  2138.  
  2139.  /// Stub class
  2140.  ///
  2141.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2142.  ///       information was available for this class.
  2143.  class  tun_449_149_122_5397_bottom : public TunnelConvexShape {
  2144.    public:
  2145.  };
  2146.  
  2147.  /// Stub class
  2148.  ///
  2149.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2150.  ///       information was available for this class.
  2151.  class  tun_449_149_122_5397_top : public TunnelConvexShape {
  2152.    public:
  2153.  };
  2154.  
  2155.  /// Stub class
  2156.  ///
  2157.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2158.  ///       information was available for this class.
  2159.  class  tun_449_149_121_5397_right : public TunnelConvexShape {
  2160.    public:
  2161.  };
  2162.  
  2163.  /// Stub class
  2164.  ///
  2165.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2166.  ///       information was available for this class.
  2167.  class  tun_449_149_121_5397_left : public TunnelConvexShape {
  2168.    public:
  2169.  };
  2170.  
  2171.  /// Stub class
  2172.  ///
  2173.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2174.  ///       information was available for this class.
  2175.  class  tun_449_149_121_5397_front2 : public TunnelConvexShape {
  2176.    public:
  2177.  };
  2178.  
  2179.  /// Stub class
  2180.  ///
  2181.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2182.  ///       information was available for this class.
  2183.  class  tun_449_149_121_5397_front : public TunnelConvexShape {
  2184.    public:
  2185.  };
  2186.  
  2187.  /// Stub class
  2188.  ///
  2189.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2190.  ///       information was available for this class.
  2191.  class  tun_449_149_121_5397_bottom : public TunnelConvexShape {
  2192.    public:
  2193.  };
  2194.  
  2195.  /// Stub class
  2196.  ///
  2197.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2198.  ///       information was available for this class.
  2199.  class  tun_449_149_121_5397_top : public TunnelConvexShape {
  2200.    public:
  2201.  };
  2202.  
  2203.  /// Stub class
  2204.  ///
  2205.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2206.  ///       information was available for this class.
  2207.  class  tun_449_114_106_5284_right2 : public TunnelConvexShape {
  2208.    public:
  2209.  };
  2210.  
  2211.  /// Stub class
  2212.  ///
  2213.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2214.  ///       information was available for this class.
  2215.  class  tun_449_114_106_5284_right : public TunnelConvexShape {
  2216.    public:
  2217.  };
  2218.  
  2219.  /// Stub class
  2220.  ///
  2221.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2222.  ///       information was available for this class.
  2223.  class  tun_449_114_106_5284_left2 : public TunnelConvexShape {
  2224.    public:
  2225.  };
  2226.  
  2227.  /// Stub class
  2228.  ///
  2229.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2230.  ///       information was available for this class.
  2231.  class  tun_449_114_106_5284_left : public TunnelConvexShape {
  2232.    public:
  2233.  };
  2234.  
  2235.  /// Stub class
  2236.  ///
  2237.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2238.  ///       information was available for this class.
  2239.  class  tun_449_114_106_5284_back2 : public TunnelConvexShape {
  2240.    public:
  2241.  };
  2242.  
  2243.  /// Stub class
  2244.  ///
  2245.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2246.  ///       information was available for this class.
  2247.  class  tun_449_114_106_5284_back : public TunnelConvexShape {
  2248.    public:
  2249.  };
  2250.  
  2251.  /// Stub class
  2252.  ///
  2253.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2254.  ///       information was available for this class.
  2255.  class  tun_449_114_106_5284_bottom : public TunnelConvexShape {
  2256.    public:
  2257.  };
  2258.  
  2259.  /// Stub class
  2260.  ///
  2261.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2262.  ///       information was available for this class.
  2263.  class  tun_449_114_105_5276_right2 : public TunnelConvexShape {
  2264.    public:
  2265.  };
  2266.  
  2267.  /// Stub class
  2268.  ///
  2269.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2270.  ///       information was available for this class.
  2271.  class  tun_449_114_105_5276_right : public TunnelConvexShape {
  2272.    public:
  2273.  };
  2274.  
  2275.  /// Stub class
  2276.  ///
  2277.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2278.  ///       information was available for this class.
  2279.  class  tun_449_114_105_5276_left : public TunnelConvexShape {
  2280.    public:
  2281.  };
  2282.  
  2283.  /// Stub class
  2284.  ///
  2285.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2286.  ///       information was available for this class.
  2287.  class  tun_449_114_105_5276_bottom : public TunnelConvexShape {
  2288.    public:
  2289.  };
  2290.  
  2291.  /// Stub class
  2292.  ///
  2293.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2294.  ///       information was available for this class.
  2295.  class  tun_449_114_104_5271_right : public TunnelConvexShape {
  2296.    public:
  2297.  };
  2298.  
  2299.  /// Stub class
  2300.  ///
  2301.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2302.  ///       information was available for this class.
  2303.  class  tun_449_114_104_5271_back3 : public TunnelConvexShape {
  2304.    public:
  2305.  };
  2306.  
  2307.  /// Stub class
  2308.  ///
  2309.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2310.  ///       information was available for this class.
  2311.  class  tun_449_114_104_5271_back2 : public TunnelConvexShape {
  2312.    public:
  2313.  };
  2314.  
  2315.  /// Stub class
  2316.  ///
  2317.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2318.  ///       information was available for this class.
  2319.  class  tun_449_114_104_5271_back : public TunnelConvexShape {
  2320.    public:
  2321.  };
  2322.  
  2323.  /// Stub class
  2324.  ///
  2325.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2326.  ///       information was available for this class.
  2327.  class  tun_449_114_104_5271_front : public TunnelConvexShape {
  2328.    public:
  2329.  };
  2330.  
  2331.  /// Stub class
  2332.  ///
  2333.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2334.  ///       information was available for this class.
  2335.  class  tun_449_114_104_5271_bottom : public TunnelConvexShape {
  2336.    public:
  2337.  };
  2338.  
  2339.  /// Stub class
  2340.  ///
  2341.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2342.  ///       information was available for this class.
  2343.  class  tun_449_182_14_5439_right2 : public TunnelConvexShape {
  2344.    public:
  2345.  };
  2346.  
  2347.  /// Stub class
  2348.  ///
  2349.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2350.  ///       information was available for this class.
  2351.  class  tun_449_182_14_5439_right : public TunnelConvexShape {
  2352.    public:
  2353.  };
  2354.  
  2355.  /// Stub class
  2356.  ///
  2357.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2358.  ///       information was available for this class.
  2359.  class  tun_449_182_14_5439_left : public TunnelConvexShape {
  2360.    public:
  2361.  };
  2362.  
  2363.  /// Stub class
  2364.  ///
  2365.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2366.  ///       information was available for this class.
  2367.  class  tun_449_182_14_5439_back2 : public TunnelConvexShape {
  2368.    public:
  2369.  };
  2370.  
  2371.  /// Stub class
  2372.  ///
  2373.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2374.  ///       information was available for this class.
  2375.  class  tun_449_182_14_5439_back : public TunnelConvexShape {
  2376.    public:
  2377.  };
  2378.  
  2379.  /// Stub class
  2380.  ///
  2381.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2382.  ///       information was available for this class.
  2383.  class  tun_449_182_14_5439_front : public TunnelConvexShape {
  2384.    public:
  2385.  };
  2386.  
  2387.  /// Stub class
  2388.  ///
  2389.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2390.  ///       information was available for this class.
  2391.  class  tun_449_182_14_5439_bottom : public TunnelConvexShape {
  2392.    public:
  2393.  };
  2394.  
  2395.  /// Stub class
  2396.  ///
  2397.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2398.  ///       information was available for this class.
  2399.  class  t449 : public TerrainBlock {
  2400.    public:
  2401.  };
  2402.  
  2403.  /// Stub class
  2404.  ///
  2405.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2406.  ///       information was available for this class.
  2407.  class  tun_448_422_127_5619_right2 : public TunnelConvexShape {
  2408.    public:
  2409.  };
  2410.  
  2411.  /// Stub class
  2412.  ///
  2413.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2414.  ///       information was available for this class.
  2415.  class  tun_448_422_127_5619_right : public TunnelConvexShape {
  2416.    public:
  2417.  };
  2418.  
  2419.  /// Stub class
  2420.  ///
  2421.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2422.  ///       information was available for this class.
  2423.  class  tun_448_422_127_5619_left : public TunnelConvexShape {
  2424.    public:
  2425.  };
  2426.  
  2427.  /// Stub class
  2428.  ///
  2429.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2430.  ///       information was available for this class.
  2431.  class  tun_448_422_127_5619_bottom : public TunnelConvexShape {
  2432.    public:
  2433.  };
  2434.  
  2435.  /// Stub class
  2436.  ///
  2437.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2438.  ///       information was available for this class.
  2439.  class  tun_448_422_125_5618_right : public TunnelConvexShape {
  2440.    public:
  2441.  };
  2442.  
  2443.  /// Stub class
  2444.  ///
  2445.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2446.  ///       information was available for this class.
  2447.  class  tun_448_422_125_5618_left : public TunnelConvexShape {
  2448.    public:
  2449.  };
  2450.  
  2451.  /// Stub class
  2452.  ///
  2453.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2454.  ///       information was available for this class.
  2455.  class  tun_448_422_125_5618_front : public TunnelConvexShape {
  2456.    public:
  2457.  };
  2458.  
  2459.  /// Stub class
  2460.  ///
  2461.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2462.  ///       information was available for this class.
  2463.  class  tun_448_422_125_5618_bottom : public TunnelConvexShape {
  2464.    public:
  2465.  };
  2466.  
  2467.  /// Stub class
  2468.  ///
  2469.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2470.  ///       information was available for this class.
  2471.  class  tun_448_422_125_5618_top : public TunnelConvexShape {
  2472.    public:
  2473.  };
  2474.  
  2475.  /// Stub class
  2476.  ///
  2477.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2478.  ///       information was available for this class.
  2479.  class  tun_448_422_126_5624_right : public TunnelConvexShape {
  2480.    public:
  2481.  };
  2482.  
  2483.  /// Stub class
  2484.  ///
  2485.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2486.  ///       information was available for this class.
  2487.  class  tun_448_422_126_5624_left : public TunnelConvexShape {
  2488.    public:
  2489.  };
  2490.  
  2491.  /// Stub class
  2492.  ///
  2493.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2494.  ///       information was available for this class.
  2495.  class  tun_448_422_126_5624_back : public TunnelConvexShape {
  2496.    public:
  2497.  };
  2498.  
  2499.  /// Stub class
  2500.  ///
  2501.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2502.  ///       information was available for this class.
  2503.  class  tun_448_422_126_5624_bottom : public TunnelConvexShape {
  2504.    public:
  2505.  };
  2506.  
  2507.  /// Stub class
  2508.  ///
  2509.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2510.  ///       information was available for this class.
  2511.  class  tun_448_421_125_5613_left : public TunnelConvexShape {
  2512.    public:
  2513.  };
  2514.  
  2515.  /// Stub class
  2516.  ///
  2517.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2518.  ///       information was available for this class.
  2519.  class  tun_448_421_125_5613_back : public TunnelConvexShape {
  2520.    public:
  2521.  };
  2522.  
  2523.  /// Stub class
  2524.  ///
  2525.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2526.  ///       information was available for this class.
  2527.  class  tun_448_421_125_5613_front2 : public TunnelConvexShape {
  2528.    public:
  2529.  };
  2530.  
  2531.  /// Stub class
  2532.  ///
  2533.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2534.  ///       information was available for this class.
  2535.  class  tun_448_421_125_5613_front : public TunnelConvexShape {
  2536.    public:
  2537.  };
  2538.  
  2539.  /// Stub class
  2540.  ///
  2541.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2542.  ///       information was available for this class.
  2543.  class  tun_448_421_125_5613_bottom : public TunnelConvexShape {
  2544.    public:
  2545.  };
  2546.  
  2547.  /// Stub class
  2548.  ///
  2549.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2550.  ///       information was available for this class.
  2551.  class  tun_448_421_125_5613_top : public TunnelConvexShape {
  2552.    public:
  2553.  };
  2554.  
  2555.  /// Stub class
  2556.  ///
  2557.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2558.  ///       information was available for this class.
  2559.  class  tun_448_407_97_5339_right2 : public TunnelConvexShape {
  2560.    public:
  2561.  };
  2562.  
  2563.  /// Stub class
  2564.  ///
  2565.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2566.  ///       information was available for this class.
  2567.  class  tun_448_407_97_5339_right : public TunnelConvexShape {
  2568.    public:
  2569.  };
  2570.  
  2571.  /// Stub class
  2572.  ///
  2573.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2574.  ///       information was available for this class.
  2575.  class  tun_448_407_97_5339_left : public TunnelConvexShape {
  2576.    public:
  2577.  };
  2578.  
  2579.  /// Stub class
  2580.  ///
  2581.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2582.  ///       information was available for this class.
  2583.  class  tun_448_407_97_5339_back2 : public TunnelConvexShape {
  2584.    public:
  2585.  };
  2586.  
  2587.  /// Stub class
  2588.  ///
  2589.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2590.  ///       information was available for this class.
  2591.  class  tun_448_407_97_5339_back : public TunnelConvexShape {
  2592.    public:
  2593.  };
  2594.  
  2595.  /// Stub class
  2596.  ///
  2597.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2598.  ///       information was available for this class.
  2599.  class  tun_448_407_97_5339_bottom : public TunnelConvexShape {
  2600.    public:
  2601.  };
  2602.  
  2603.  /// Stub class
  2604.  ///
  2605.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2606.  ///       information was available for this class.
  2607.  class  tun_448_407_97_5339_top : public TunnelConvexShape {
  2608.    public:
  2609.  };
  2610.  
  2611.  /// Stub class
  2612.  ///
  2613.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2614.  ///       information was available for this class.
  2615.  class  tun_448_406_97_5334_left : public TunnelConvexShape {
  2616.    public:
  2617.  };
  2618.  
  2619.  /// Stub class
  2620.  ///
  2621.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2622.  ///       information was available for this class.
  2623.  class  tun_448_406_97_5334_back : public TunnelConvexShape {
  2624.    public:
  2625.  };
  2626.  
  2627.  /// Stub class
  2628.  ///
  2629.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2630.  ///       information was available for this class.
  2631.  class  tun_448_406_97_5334_front : public TunnelConvexShape {
  2632.    public:
  2633.  };
  2634.  
  2635.  /// Stub class
  2636.  ///
  2637.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2638.  ///       information was available for this class.
  2639.  class  tun_448_406_97_5334_bottom : public TunnelConvexShape {
  2640.    public:
  2641.  };
  2642.  
  2643.  /// Stub class
  2644.  ///
  2645.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2646.  ///       information was available for this class.
  2647.  class  tun_448_406_97_5334_top : public TunnelConvexShape {
  2648.    public:
  2649.  };
  2650.  
  2651.  /// Stub class
  2652.  ///
  2653.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2654.  ///       information was available for this class.
  2655.  class  tun_448_405_96_5341_back2 : public TunnelConvexShape {
  2656.    public:
  2657.  };
  2658.  
  2659.  /// Stub class
  2660.  ///
  2661.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2662.  ///       information was available for this class.
  2663.  class  tun_448_405_96_5341_front2 : public TunnelConvexShape {
  2664.    public:
  2665.  };
  2666.  
  2667.  /// Stub class
  2668.  ///
  2669.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2670.  ///       information was available for this class.
  2671.  class  tun_448_405_96_5341_bottom2 : public TunnelConvexShape {
  2672.    public:
  2673.  };
  2674.  
  2675.  /// Stub class
  2676.  ///
  2677.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2678.  ///       information was available for this class.
  2679.  class  tun_448_407_96_5344_right2 : public TunnelConvexShape {
  2680.    public:
  2681.  };
  2682.  
  2683.  /// Stub class
  2684.  ///
  2685.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2686.  ///       information was available for this class.
  2687.  class  tun_448_407_96_5344_right : public TunnelConvexShape {
  2688.    public:
  2689.  };
  2690.  
  2691.  /// Stub class
  2692.  ///
  2693.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2694.  ///       information was available for this class.
  2695.  class  tun_448_407_96_5344_back : public TunnelConvexShape {
  2696.    public:
  2697.  };
  2698.  
  2699.  /// Stub class
  2700.  ///
  2701.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2702.  ///       information was available for this class.
  2703.  class  tun_448_407_96_5344_front : public TunnelConvexShape {
  2704.    public:
  2705.  };
  2706.  
  2707.  /// Stub class
  2708.  ///
  2709.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2710.  ///       information was available for this class.
  2711.  class  tun_448_407_96_5344_bottom : public TunnelConvexShape {
  2712.    public:
  2713.  };
  2714.  
  2715.  /// Stub class
  2716.  ///
  2717.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2718.  ///       information was available for this class.
  2719.  class  tun_448_407_96_5344_top : public TunnelConvexShape {
  2720.    public:
  2721.  };
  2722.  
  2723.  /// Stub class
  2724.  ///
  2725.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2726.  ///       information was available for this class.
  2727.  class  tun_448_406_96_5353_left : public TunnelConvexShape {
  2728.    public:
  2729.  };
  2730.  
  2731.  /// Stub class
  2732.  ///
  2733.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2734.  ///       information was available for this class.
  2735.  class  tun_448_406_96_5353_front : public TunnelConvexShape {
  2736.    public:
  2737.  };
  2738.  
  2739.  /// Stub class
  2740.  ///
  2741.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2742.  ///       information was available for this class.
  2743.  class  tun_448_406_96_5353_bottom : public TunnelConvexShape {
  2744.    public:
  2745.  };
  2746.  
  2747.  /// Stub class
  2748.  ///
  2749.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2750.  ///       information was available for this class.
  2751.  class  tun_448_439_91_5467_right3 : public TunnelConvexShape {
  2752.    public:
  2753.  };
  2754.  
  2755.  /// Stub class
  2756.  ///
  2757.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2758.  ///       information was available for this class.
  2759.  class  tun_448_439_91_5467_right2 : public TunnelConvexShape {
  2760.    public:
  2761.  };
  2762.  
  2763.  /// Stub class
  2764.  ///
  2765.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2766.  ///       information was available for this class.
  2767.  class  tun_448_439_91_5467_right : public TunnelConvexShape {
  2768.    public:
  2769.  };
  2770.  
  2771.  /// Stub class
  2772.  ///
  2773.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2774.  ///       information was available for this class.
  2775.  class  tun_448_439_91_5467_back2 : public TunnelConvexShape {
  2776.    public:
  2777.  };
  2778.  
  2779.  /// Stub class
  2780.  ///
  2781.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2782.  ///       information was available for this class.
  2783.  class  tun_448_439_91_5467_back : public TunnelConvexShape {
  2784.    public:
  2785.  };
  2786.  
  2787.  /// Stub class
  2788.  ///
  2789.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2790.  ///       information was available for this class.
  2791.  class  tun_448_439_91_5467_front2 : public TunnelConvexShape {
  2792.    public:
  2793.  };
  2794.  
  2795.  /// Stub class
  2796.  ///
  2797.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2798.  ///       information was available for this class.
  2799.  class  tun_448_439_91_5467_front : public TunnelConvexShape {
  2800.    public:
  2801.  };
  2802.  
  2803.  /// Stub class
  2804.  ///
  2805.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2806.  ///       information was available for this class.
  2807.  class  tun_448_439_91_5467_bottom : public TunnelConvexShape {
  2808.    public:
  2809.  };
  2810.  
  2811.  /// Stub class
  2812.  ///
  2813.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2814.  ///       information was available for this class.
  2815.  class  tun_448_439_91_5467_top : public TunnelConvexShape {
  2816.    public:
  2817.  };
  2818.  
  2819.  /// Stub class
  2820.  ///
  2821.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2822.  ///       information was available for this class.
  2823.  class  tun_448_438_91_5467_back2 : public TunnelConvexShape {
  2824.    public:
  2825.  };
  2826.  
  2827.  /// Stub class
  2828.  ///
  2829.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2830.  ///       information was available for this class.
  2831.  class  tun_448_438_91_5467_back : public TunnelConvexShape {
  2832.    public:
  2833.  };
  2834.  
  2835.  /// Stub class
  2836.  ///
  2837.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2838.  ///       information was available for this class.
  2839.  class  tun_448_438_91_5467_front3 : public TunnelConvexShape {
  2840.    public:
  2841.  };
  2842.  
  2843.  /// Stub class
  2844.  ///
  2845.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2846.  ///       information was available for this class.
  2847.  class  tun_448_438_91_5467_front2 : public TunnelConvexShape {
  2848.    public:
  2849.  };
  2850.  
  2851.  /// Stub class
  2852.  ///
  2853.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2854.  ///       information was available for this class.
  2855.  class  tun_448_438_91_5467_front : public TunnelConvexShape {
  2856.    public:
  2857.  };
  2858.  
  2859.  /// Stub class
  2860.  ///
  2861.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2862.  ///       information was available for this class.
  2863.  class  tun_448_438_91_5467_bottom : public TunnelConvexShape {
  2864.    public:
  2865.  };
  2866.  
  2867.  /// Stub class
  2868.  ///
  2869.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2870.  ///       information was available for this class.
  2871.  class  tun_448_438_91_5467_top : public TunnelConvexShape {
  2872.    public:
  2873.  };
  2874.  
  2875.  /// Stub class
  2876.  ///
  2877.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2878.  ///       information was available for this class.
  2879.  class  tun_448_437_91_5467_right : public TunnelConvexShape {
  2880.    public:
  2881.  };
  2882.  
  2883.  /// Stub class
  2884.  ///
  2885.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2886.  ///       information was available for this class.
  2887.  class  tun_448_437_91_5467_back3 : public TunnelConvexShape {
  2888.    public:
  2889.  };
  2890.  
  2891.  /// Stub class
  2892.  ///
  2893.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2894.  ///       information was available for this class.
  2895.  class  tun_448_437_91_5467_back2 : public TunnelConvexShape {
  2896.    public:
  2897.  };
  2898.  
  2899.  /// Stub class
  2900.  ///
  2901.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2902.  ///       information was available for this class.
  2903.  class  tun_448_437_91_5467_back : public TunnelConvexShape {
  2904.    public:
  2905.  };
  2906.  
  2907.  /// Stub class
  2908.  ///
  2909.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2910.  ///       information was available for this class.
  2911.  class  tun_448_437_91_5467_front2 : public TunnelConvexShape {
  2912.    public:
  2913.  };
  2914.  
  2915.  /// Stub class
  2916.  ///
  2917.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2918.  ///       information was available for this class.
  2919.  class  tun_448_437_91_5467_front : public TunnelConvexShape {
  2920.    public:
  2921.  };
  2922.  
  2923.  /// Stub class
  2924.  ///
  2925.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2926.  ///       information was available for this class.
  2927.  class  tun_448_437_91_5467_bottom : public TunnelConvexShape {
  2928.    public:
  2929.  };
  2930.  
  2931.  /// Stub class
  2932.  ///
  2933.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2934.  ///       information was available for this class.
  2935.  class  tun_448_437_91_5467_top : public TunnelConvexShape {
  2936.    public:
  2937.  };
  2938.  
  2939.  /// Stub class
  2940.  ///
  2941.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2942.  ///       information was available for this class.
  2943.  class  tun_448_436_91_5470_back6 : public TunnelConvexShape {
  2944.    public:
  2945.  };
  2946.  
  2947.  /// Stub class
  2948.  ///
  2949.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2950.  ///       information was available for this class.
  2951.  class  tun_448_436_91_5470_back5 : public TunnelConvexShape {
  2952.    public:
  2953.  };
  2954.  
  2955.  /// Stub class
  2956.  ///
  2957.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2958.  ///       information was available for this class.
  2959.  class  tun_448_436_91_5470_back4 : public TunnelConvexShape {
  2960.    public:
  2961.  };
  2962.  
  2963.  /// Stub class
  2964.  ///
  2965.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2966.  ///       information was available for this class.
  2967.  class  tun_448_436_91_5470_front2 : public TunnelConvexShape {
  2968.    public:
  2969.  };
  2970.  
  2971.  /// Stub class
  2972.  ///
  2973.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2974.  ///       information was available for this class.
  2975.  class  tun_448_436_91_5470_bottom2 : public TunnelConvexShape {
  2976.    public:
  2977.  };
  2978.  
  2979.  /// Stub class
  2980.  ///
  2981.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2982.  ///       information was available for this class.
  2983.  class  tun_448_435_91_5468_left : public TunnelConvexShape {
  2984.    public:
  2985.  };
  2986.  
  2987.  /// Stub class
  2988.  ///
  2989.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2990.  ///       information was available for this class.
  2991.  class  tun_448_435_91_5468_back2 : public TunnelConvexShape {
  2992.    public:
  2993.  };
  2994.  
  2995.  /// Stub class
  2996.  ///
  2997.  /// @note This is a stub class to ensure a proper class hierarchy. No
  2998.  ///       information was available for this class.
  2999.  class  tun_448_435_91_5468_back : public TunnelConvexShape {
  3000.    public:
  3001.  };
  3002.  
  3003.  /// Stub class
  3004.  ///
  3005.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3006.  ///       information was available for this class.
  3007.  class  tun_448_435_91_5468_front : public TunnelConvexShape {
  3008.    public:
  3009.  };
  3010.  
  3011.  /// Stub class
  3012.  ///
  3013.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3014.  ///       information was available for this class.
  3015.  class  tun_448_435_91_5468_bottom : public TunnelConvexShape {
  3016.    public:
  3017.  };
  3018.  
  3019.  /// Stub class
  3020.  ///
  3021.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3022.  ///       information was available for this class.
  3023.  class  tun_448_168_44_5395_right2 : public TunnelConvexShape {
  3024.    public:
  3025.  };
  3026.  
  3027.  /// Stub class
  3028.  ///
  3029.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3030.  ///       information was available for this class.
  3031.  class  tun_448_168_44_5395_right : public TunnelConvexShape {
  3032.    public:
  3033.  };
  3034.  
  3035.  /// Stub class
  3036.  ///
  3037.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3038.  ///       information was available for this class.
  3039.  class  tun_448_168_44_5395_back : public TunnelConvexShape {
  3040.    public:
  3041.  };
  3042.  
  3043.  /// Stub class
  3044.  ///
  3045.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3046.  ///       information was available for this class.
  3047.  class  tun_448_168_44_5395_front : public TunnelConvexShape {
  3048.    public:
  3049.  };
  3050.  
  3051.  /// Stub class
  3052.  ///
  3053.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3054.  ///       information was available for this class.
  3055.  class  tun_448_168_44_5395_bottom : public TunnelConvexShape {
  3056.    public:
  3057.  };
  3058.  
  3059.  /// Stub class
  3060.  ///
  3061.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3062.  ///       information was available for this class.
  3063.  class  tun_448_168_44_5395_top : public TunnelConvexShape {
  3064.    public:
  3065.  };
  3066.  
  3067.  /// Stub class
  3068.  ///
  3069.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3070.  ///       information was available for this class.
  3071.  class  tun_448_167_44_5405_back4 : public TunnelConvexShape {
  3072.    public:
  3073.  };
  3074.  
  3075.  /// Stub class
  3076.  ///
  3077.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3078.  ///       information was available for this class.
  3079.  class  tun_448_167_44_5405_back3 : public TunnelConvexShape {
  3080.    public:
  3081.  };
  3082.  
  3083.  /// Stub class
  3084.  ///
  3085.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3086.  ///       information was available for this class.
  3087.  class  tun_448_167_44_5405_front2 : public TunnelConvexShape {
  3088.    public:
  3089.  };
  3090.  
  3091.  /// Stub class
  3092.  ///
  3093.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3094.  ///       information was available for this class.
  3095.  class  tun_448_167_44_5405_bottom2 : public TunnelConvexShape {
  3096.    public:
  3097.  };
  3098.  
  3099.  /// Stub class
  3100.  ///
  3101.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3102.  ///       information was available for this class.
  3103.  class  tun_448_166_44_5397_left : public TunnelConvexShape {
  3104.    public:
  3105.  };
  3106.  
  3107.  /// Stub class
  3108.  ///
  3109.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3110.  ///       information was available for this class.
  3111.  class  tun_448_166_44_5397_back2 : public TunnelConvexShape {
  3112.    public:
  3113.  };
  3114.  
  3115.  /// Stub class
  3116.  ///
  3117.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3118.  ///       information was available for this class.
  3119.  class  tun_448_166_44_5397_back : public TunnelConvexShape {
  3120.    public:
  3121.  };
  3122.  
  3123.  /// Stub class
  3124.  ///
  3125.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3126.  ///       information was available for this class.
  3127.  class  tun_448_166_44_5397_bottom : public TunnelConvexShape {
  3128.    public:
  3129.  };
  3130.  
  3131.  /// Stub class
  3132.  ///
  3133.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3134.  ///       information was available for this class.
  3135.  class  tun_448_166_43_5385_right : public TunnelConvexShape {
  3136.    public:
  3137.  };
  3138.  
  3139.  /// Stub class
  3140.  ///
  3141.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3142.  ///       information was available for this class.
  3143.  class  tun_448_166_43_5385_left : public TunnelConvexShape {
  3144.    public:
  3145.  };
  3146.  
  3147.  /// Stub class
  3148.  ///
  3149.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3150.  ///       information was available for this class.
  3151.  class  tun_448_166_43_5385_front : public TunnelConvexShape {
  3152.    public:
  3153.  };
  3154.  
  3155.  /// Stub class
  3156.  ///
  3157.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3158.  ///       information was available for this class.
  3159.  class  tun_448_166_43_5385_bottom : public TunnelConvexShape {
  3160.    public:
  3161.  };
  3162.  
  3163.  /// Stub class
  3164.  ///
  3165.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3166.  ///       information was available for this class.
  3167.  class  tun_448_179_29_5340_right : public TunnelConvexShape {
  3168.    public:
  3169.  };
  3170.  
  3171.  /// Stub class
  3172.  ///
  3173.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3174.  ///       information was available for this class.
  3175.  class  tun_448_179_29_5340_back2 : public TunnelConvexShape {
  3176.    public:
  3177.  };
  3178.  
  3179.  /// Stub class
  3180.  ///
  3181.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3182.  ///       information was available for this class.
  3183.  class  tun_448_179_29_5340_back : public TunnelConvexShape {
  3184.    public:
  3185.  };
  3186.  
  3187.  /// Stub class
  3188.  ///
  3189.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3190.  ///       information was available for this class.
  3191.  class  tun_448_179_29_5340_front : public TunnelConvexShape {
  3192.    public:
  3193.  };
  3194.  
  3195.  /// Stub class
  3196.  ///
  3197.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3198.  ///       information was available for this class.
  3199.  class  tun_448_179_29_5340_bottom : public TunnelConvexShape {
  3200.    public:
  3201.  };
  3202.  
  3203.  /// Stub class
  3204.  ///
  3205.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3206.  ///       information was available for this class.
  3207.  class  tun_448_179_29_5340_top : public TunnelConvexShape {
  3208.    public:
  3209.  };
  3210.  
  3211.  /// Stub class
  3212.  ///
  3213.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3214.  ///       information was available for this class.
  3215.  class  tun_448_177_28_5355_right2 : public TunnelConvexShape {
  3216.    public:
  3217.  };
  3218.  
  3219.  /// Stub class
  3220.  ///
  3221.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3222.  ///       information was available for this class.
  3223.  class  tun_448_177_28_5355_right : public TunnelConvexShape {
  3224.    public:
  3225.  };
  3226.  
  3227.  /// Stub class
  3228.  ///
  3229.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3230.  ///       information was available for this class.
  3231.  class  tun_448_177_28_5355_left : public TunnelConvexShape {
  3232.    public:
  3233.  };
  3234.  
  3235.  /// Stub class
  3236.  ///
  3237.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3238.  ///       information was available for this class.
  3239.  class  tun_448_177_28_5355_back : public TunnelConvexShape {
  3240.    public:
  3241.  };
  3242.  
  3243.  /// Stub class
  3244.  ///
  3245.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3246.  ///       information was available for this class.
  3247.  class  tun_448_177_28_5355_top : public TunnelConvexShape {
  3248.    public:
  3249.  };
  3250.  
  3251.  /// Stub class
  3252.  ///
  3253.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3254.  ///       information was available for this class.
  3255.  class  tun_448_177_29_5330_left2 : public TunnelConvexShape {
  3256.    public:
  3257.  };
  3258.  
  3259.  /// Stub class
  3260.  ///
  3261.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3262.  ///       information was available for this class.
  3263.  class  tun_448_177_29_5330_left : public TunnelConvexShape {
  3264.    public:
  3265.  };
  3266.  
  3267.  /// Stub class
  3268.  ///
  3269.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3270.  ///       information was available for this class.
  3271.  class  tun_448_177_29_5330_back : public TunnelConvexShape {
  3272.    public:
  3273.  };
  3274.  
  3275.  /// Stub class
  3276.  ///
  3277.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3278.  ///       information was available for this class.
  3279.  class  tun_448_177_29_5330_front : public TunnelConvexShape {
  3280.    public:
  3281.  };
  3282.  
  3283.  /// Stub class
  3284.  ///
  3285.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3286.  ///       information was available for this class.
  3287.  class  tun_448_177_29_5330_bottom : public TunnelConvexShape {
  3288.    public:
  3289.  };
  3290.  
  3291.  /// Stub class
  3292.  ///
  3293.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3294.  ///       information was available for this class.
  3295.  class  tun_448_177_29_5350_right : public TunnelConvexShape {
  3296.    public:
  3297.  };
  3298.  
  3299.  /// Stub class
  3300.  ///
  3301.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3302.  ///       information was available for this class.
  3303.  class  tun_448_177_29_5350_left : public TunnelConvexShape {
  3304.    public:
  3305.  };
  3306.  
  3307.  /// Stub class
  3308.  ///
  3309.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3310.  ///       information was available for this class.
  3311.  class  tun_448_177_29_5350_back : public TunnelConvexShape {
  3312.    public:
  3313.  };
  3314.  
  3315.  /// Stub class
  3316.  ///
  3317.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3318.  ///       information was available for this class.
  3319.  class  tun_448_177_29_5350_top : public TunnelConvexShape {
  3320.    public:
  3321.  };
  3322.  
  3323.  /// Stub class
  3324.  ///
  3325.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3326.  ///       information was available for this class.
  3327.  class  tun_448_178_29_5325_back : public TunnelConvexShape {
  3328.    public:
  3329.  };
  3330.  
  3331.  /// Stub class
  3332.  ///
  3333.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3334.  ///       information was available for this class.
  3335.  class  tun_448_178_29_5325_front : public TunnelConvexShape {
  3336.    public:
  3337.  };
  3338.  
  3339.  /// Stub class
  3340.  ///
  3341.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3342.  ///       information was available for this class.
  3343.  class  tun_448_178_29_5325_bottom : public TunnelConvexShape {
  3344.    public:
  3345.  };
  3346.  
  3347.  /// Stub class
  3348.  ///
  3349.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3350.  ///       information was available for this class.
  3351.  class  tun_448_178_29_5345_right : public TunnelConvexShape {
  3352.    public:
  3353.  };
  3354.  
  3355.  /// Stub class
  3356.  ///
  3357.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3358.  ///       information was available for this class.
  3359.  class  tun_448_178_29_5345_back : public TunnelConvexShape {
  3360.    public:
  3361.  };
  3362.  
  3363.  /// Stub class
  3364.  ///
  3365.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3366.  ///       information was available for this class.
  3367.  class  tun_448_178_29_5345_front : public TunnelConvexShape {
  3368.    public:
  3369.  };
  3370.  
  3371.  /// Stub class
  3372.  ///
  3373.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3374.  ///       information was available for this class.
  3375.  class  tun_448_178_29_5345_top : public TunnelConvexShape {
  3376.    public:
  3377.  };
  3378.  
  3379.  /// Stub class
  3380.  ///
  3381.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3382.  ///       information was available for this class.
  3383.  class  tun_448_177_28_5335_right : public TunnelConvexShape {
  3384.    public:
  3385.  };
  3386.  
  3387.  /// Stub class
  3388.  ///
  3389.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3390.  ///       information was available for this class.
  3391.  class  tun_448_177_28_5335_left : public TunnelConvexShape {
  3392.    public:
  3393.  };
  3394.  
  3395.  /// Stub class
  3396.  ///
  3397.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3398.  ///       information was available for this class.
  3399.  class  tun_448_177_28_5335_front : public TunnelConvexShape {
  3400.    public:
  3401.  };
  3402.  
  3403.  /// Stub class
  3404.  ///
  3405.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3406.  ///       information was available for this class.
  3407.  class  tun_448_177_28_5335_bottom : public TunnelConvexShape {
  3408.    public:
  3409.  };
  3410.  
  3411.  /// Stub class
  3412.  ///
  3413.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3414.  ///       information was available for this class.
  3415.  class  tun_448_177_27_5355_right2 : public TunnelConvexShape {
  3416.    public:
  3417.  };
  3418.  
  3419.  /// Stub class
  3420.  ///
  3421.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3422.  ///       information was available for this class.
  3423.  class  tun_448_177_27_5355_right : public TunnelConvexShape {
  3424.    public:
  3425.  };
  3426.  
  3427.  /// Stub class
  3428.  ///
  3429.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3430.  ///       information was available for this class.
  3431.  class  tun_448_177_27_5355_left : public TunnelConvexShape {
  3432.    public:
  3433.  };
  3434.  
  3435.  /// Stub class
  3436.  ///
  3437.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3438.  ///       information was available for this class.
  3439.  class  tun_448_177_27_5355_front : public TunnelConvexShape {
  3440.    public:
  3441.  };
  3442.  
  3443.  /// Stub class
  3444.  ///
  3445.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3446.  ///       information was available for this class.
  3447.  class  tun_448_177_27_5355_bottom : public TunnelConvexShape {
  3448.    public:
  3449.  };
  3450.  
  3451.  /// Stub class
  3452.  ///
  3453.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3454.  ///       information was available for this class.
  3455.  class  tun_448_177_27_5355_top : public TunnelConvexShape {
  3456.    public:
  3457.  };
  3458.  
  3459.  /// Stub class
  3460.  ///
  3461.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3462.  ///       information was available for this class.
  3463.  class  tun_448_177_26_5362_right4 : public TunnelConvexShape {
  3464.    public:
  3465.  };
  3466.  
  3467.  /// Stub class
  3468.  ///
  3469.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3470.  ///       information was available for this class.
  3471.  class  tun_448_177_26_5362_right3 : public TunnelConvexShape {
  3472.    public:
  3473.  };
  3474.  
  3475.  /// Stub class
  3476.  ///
  3477.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3478.  ///       information was available for this class.
  3479.  class  tun_448_177_26_5362_left4 : public TunnelConvexShape {
  3480.    public:
  3481.  };
  3482.  
  3483.  /// Stub class
  3484.  ///
  3485.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3486.  ///       information was available for this class.
  3487.  class  tun_448_177_26_5362_left3 : public TunnelConvexShape {
  3488.    public:
  3489.  };
  3490.  
  3491.  /// Stub class
  3492.  ///
  3493.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3494.  ///       information was available for this class.
  3495.  class  tun_448_177_26_5362_bottom2 : public TunnelConvexShape {
  3496.    public:
  3497.  };
  3498.  
  3499.  /// Stub class
  3500.  ///
  3501.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3502.  ///       information was available for this class.
  3503.  class  tun_448_177_25_5353_right2 : public TunnelConvexShape {
  3504.    public:
  3505.  };
  3506.  
  3507.  /// Stub class
  3508.  ///
  3509.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3510.  ///       information was available for this class.
  3511.  class  tun_448_177_25_5353_right : public TunnelConvexShape {
  3512.    public:
  3513.  };
  3514.  
  3515.  /// Stub class
  3516.  ///
  3517.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3518.  ///       information was available for this class.
  3519.  class  tun_448_177_25_5353_left : public TunnelConvexShape {
  3520.    public:
  3521.  };
  3522.  
  3523.  /// Stub class
  3524.  ///
  3525.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3526.  ///       information was available for this class.
  3527.  class  tun_448_177_25_5353_bottom : public TunnelConvexShape {
  3528.    public:
  3529.  };
  3530.  
  3531.  /// Stub class
  3532.  ///
  3533.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3534.  ///       information was available for this class.
  3535.  class  tun_448_177_24_5345_right : public TunnelConvexShape {
  3536.    public:
  3537.  };
  3538.  
  3539.  /// Stub class
  3540.  ///
  3541.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3542.  ///       information was available for this class.
  3543.  class  tun_448_177_24_5345_left : public TunnelConvexShape {
  3544.    public:
  3545.  };
  3546.  
  3547.  /// Stub class
  3548.  ///
  3549.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3550.  ///       information was available for this class.
  3551.  class  tun_448_177_24_5345_bottom : public TunnelConvexShape {
  3552.    public:
  3553.  };
  3554.  
  3555.  /// Stub class
  3556.  ///
  3557.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3558.  ///       information was available for this class.
  3559.  class  t448 : public TerrainBlock {
  3560.    public:
  3561.  };
  3562.  
  3563.  /// Stub class
  3564.  ///
  3565.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3566.  ///       information was available for this class.
  3567.  class  tun_447_208_277_5147_right2 : public TunnelConvexShape {
  3568.    public:
  3569.  };
  3570.  
  3571.  /// Stub class
  3572.  ///
  3573.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3574.  ///       information was available for this class.
  3575.  class  tun_447_208_277_5147_right : public TunnelConvexShape {
  3576.    public:
  3577.  };
  3578.  
  3579.  /// Stub class
  3580.  ///
  3581.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3582.  ///       information was available for this class.
  3583.  class  tun_447_208_277_5147_back2 : public TunnelConvexShape {
  3584.    public:
  3585.  };
  3586.  
  3587.  /// Stub class
  3588.  ///
  3589.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3590.  ///       information was available for this class.
  3591.  class  tun_447_208_277_5147_back : public TunnelConvexShape {
  3592.    public:
  3593.  };
  3594.  
  3595.  /// Stub class
  3596.  ///
  3597.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3598.  ///       information was available for this class.
  3599.  class  tun_447_208_277_5147_front : public TunnelConvexShape {
  3600.    public:
  3601.  };
  3602.  
  3603.  /// Stub class
  3604.  ///
  3605.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3606.  ///       information was available for this class.
  3607.  class  tun_447_208_277_5147_bottom : public TunnelConvexShape {
  3608.    public:
  3609.  };
  3610.  
  3611.  /// Stub class
  3612.  ///
  3613.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3614.  ///       information was available for this class.
  3615.  class  tun_447_208_277_5147_top : public TunnelConvexShape {
  3616.    public:
  3617.  };
  3618.  
  3619.  /// Stub class
  3620.  ///
  3621.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3622.  ///       information was available for this class.
  3623.  class  tun_447_207_277_5156_back2 : public TunnelConvexShape {
  3624.    public:
  3625.  };
  3626.  
  3627.  /// Stub class
  3628.  ///
  3629.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3630.  ///       information was available for this class.
  3631.  class  tun_447_207_277_5156_front2 : public TunnelConvexShape {
  3632.    public:
  3633.  };
  3634.  
  3635.  /// Stub class
  3636.  ///
  3637.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3638.  ///       information was available for this class.
  3639.  class  tun_447_207_277_5144_back : public TunnelConvexShape {
  3640.    public:
  3641.  };
  3642.  
  3643.  /// Stub class
  3644.  ///
  3645.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3646.  ///       information was available for this class.
  3647.  class  tun_447_207_277_5144_front : public TunnelConvexShape {
  3648.    public:
  3649.  };
  3650.  
  3651.  /// Stub class
  3652.  ///
  3653.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3654.  ///       information was available for this class.
  3655.  class  tun_447_207_277_5144_bottom : public TunnelConvexShape {
  3656.    public:
  3657.  };
  3658.  
  3659.  /// Stub class
  3660.  ///
  3661.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3662.  ///       information was available for this class.
  3663.  class  tun_447_206_277_5143_left2 : public TunnelConvexShape {
  3664.    public:
  3665.  };
  3666.  
  3667.  /// Stub class
  3668.  ///
  3669.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3670.  ///       information was available for this class.
  3671.  class  tun_447_206_277_5143_back2 : public TunnelConvexShape {
  3672.    public:
  3673.  };
  3674.  
  3675.  /// Stub class
  3676.  ///
  3677.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3678.  ///       information was available for this class.
  3679.  class  tun_447_206_277_5143_front4 : public TunnelConvexShape {
  3680.    public:
  3681.  };
  3682.  
  3683.  /// Stub class
  3684.  ///
  3685.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3686.  ///       information was available for this class.
  3687.  class  tun_447_206_277_5143_front3 : public TunnelConvexShape {
  3688.    public:
  3689.  };
  3690.  
  3691.  /// Stub class
  3692.  ///
  3693.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3694.  ///       information was available for this class.
  3695.  class  tun_447_206_277_5143_bottom2 : public TunnelConvexShape {
  3696.    public:
  3697.  };
  3698.  
  3699.  /// Stub class
  3700.  ///
  3701.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3702.  ///       information was available for this class.
  3703.  class  t447 : public TerrainBlock {
  3704.    public:
  3705.  };
  3706.  
  3707.  /// Stub class
  3708.  ///
  3709.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3710.  ///       information was available for this class.
  3711.  class  tun_446_199_509_5529_right3 : public TunnelConvexShape {
  3712.    public:
  3713.  };
  3714.  
  3715.  /// Stub class
  3716.  ///
  3717.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3718.  ///       information was available for this class.
  3719.  class  tun_446_199_509_5529_right2 : public TunnelConvexShape {
  3720.    public:
  3721.  };
  3722.  
  3723.  /// Stub class
  3724.  ///
  3725.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3726.  ///       information was available for this class.
  3727.  class  tun_446_199_509_5529_right : public TunnelConvexShape {
  3728.    public:
  3729.  };
  3730.  
  3731.  /// Stub class
  3732.  ///
  3733.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3734.  ///       information was available for this class.
  3735.  class  tun_446_199_509_5529_back : public TunnelConvexShape {
  3736.    public:
  3737.  };
  3738.  
  3739.  /// Stub class
  3740.  ///
  3741.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3742.  ///       information was available for this class.
  3743.  class  tun_446_199_509_5529_front : public TunnelConvexShape {
  3744.    public:
  3745.  };
  3746.  
  3747.  /// Stub class
  3748.  ///
  3749.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3750.  ///       information was available for this class.
  3751.  class  tun_446_199_509_5529_bottom : public TunnelConvexShape {
  3752.    public:
  3753.  };
  3754.  
  3755.  /// Stub class
  3756.  ///
  3757.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3758.  ///       information was available for this class.
  3759.  class  tun_446_198_509_5512_back : public TunnelConvexShape {
  3760.    public:
  3761.  };
  3762.  
  3763.  /// Stub class
  3764.  ///
  3765.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3766.  ///       information was available for this class.
  3767.  class  tun_446_198_509_5512_front : public TunnelConvexShape {
  3768.    public:
  3769.  };
  3770.  
  3771.  /// Stub class
  3772.  ///
  3773.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3774.  ///       information was available for this class.
  3775.  class  tun_446_198_509_5512_bottom : public TunnelConvexShape {
  3776.    public:
  3777.  };
  3778.  
  3779.  /// Stub class
  3780.  ///
  3781.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3782.  ///       information was available for this class.
  3783.  class  tun_446_418_495_5367_right2 : public TunnelConvexShape {
  3784.    public:
  3785.  };
  3786.  
  3787.  /// Stub class
  3788.  ///
  3789.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3790.  ///       information was available for this class.
  3791.  class  tun_446_418_495_5367_right : public TunnelConvexShape {
  3792.    public:
  3793.  };
  3794.  
  3795.  /// Stub class
  3796.  ///
  3797.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3798.  ///       information was available for this class.
  3799.  class  tun_446_418_495_5367_left2 : public TunnelConvexShape {
  3800.    public:
  3801.  };
  3802.  
  3803.  /// Stub class
  3804.  ///
  3805.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3806.  ///       information was available for this class.
  3807.  class  tun_446_418_495_5367_left : public TunnelConvexShape {
  3808.    public:
  3809.  };
  3810.  
  3811.  /// Stub class
  3812.  ///
  3813.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3814.  ///       information was available for this class.
  3815.  class  tun_446_418_495_5367_back3 : public TunnelConvexShape {
  3816.    public:
  3817.  };
  3818.  
  3819.  /// Stub class
  3820.  ///
  3821.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3822.  ///       information was available for this class.
  3823.  class  tun_446_418_495_5367_back2 : public TunnelConvexShape {
  3824.    public:
  3825.  };
  3826.  
  3827.  /// Stub class
  3828.  ///
  3829.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3830.  ///       information was available for this class.
  3831.  class  tun_446_418_495_5367_back : public TunnelConvexShape {
  3832.    public:
  3833.  };
  3834.  
  3835.  /// Stub class
  3836.  ///
  3837.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3838.  ///       information was available for this class.
  3839.  class  tun_446_418_495_5367_front : public TunnelConvexShape {
  3840.    public:
  3841.  };
  3842.  
  3843.  /// Stub class
  3844.  ///
  3845.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3846.  ///       information was available for this class.
  3847.  class  tun_446_418_495_5367_bottom : public TunnelConvexShape {
  3848.    public:
  3849.  };
  3850.  
  3851.  /// Stub class
  3852.  ///
  3853.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3854.  ///       information was available for this class.
  3855.  class  tun_446_116_455_5058_left : public TunnelConvexShape {
  3856.    public:
  3857.  };
  3858.  
  3859.  /// Stub class
  3860.  ///
  3861.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3862.  ///       information was available for this class.
  3863.  class  tun_446_116_455_5058_back : public TunnelConvexShape {
  3864.    public:
  3865.  };
  3866.  
  3867.  /// Stub class
  3868.  ///
  3869.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3870.  ///       information was available for this class.
  3871.  class  tun_446_116_455_5058_front : public TunnelConvexShape {
  3872.    public:
  3873.  };
  3874.  
  3875.  /// Stub class
  3876.  ///
  3877.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3878.  ///       information was available for this class.
  3879.  class  tun_446_116_455_5055_left : public TunnelConvexShape {
  3880.    public:
  3881.  };
  3882.  
  3883.  /// Stub class
  3884.  ///
  3885.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3886.  ///       information was available for this class.
  3887.  class  tun_446_116_455_5055_back : public TunnelConvexShape {
  3888.    public:
  3889.  };
  3890.  
  3891.  /// Stub class
  3892.  ///
  3893.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3894.  ///       information was available for this class.
  3895.  class  tun_446_116_455_5055_front : public TunnelConvexShape {
  3896.    public:
  3897.  };
  3898.  
  3899.  /// Stub class
  3900.  ///
  3901.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3902.  ///       information was available for this class.
  3903.  class  tun_446_116_455_5055_bottom : public TunnelConvexShape {
  3904.    public:
  3905.  };
  3906.  
  3907.  /// Stub class
  3908.  ///
  3909.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3910.  ///       information was available for this class.
  3911.  class  tun_446_117_455_5057_right : public TunnelConvexShape {
  3912.    public:
  3913.  };
  3914.  
  3915.  /// Stub class
  3916.  ///
  3917.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3918.  ///       information was available for this class.
  3919.  class  tun_446_117_455_5057_back : public TunnelConvexShape {
  3920.    public:
  3921.  };
  3922.  
  3923.  /// Stub class
  3924.  ///
  3925.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3926.  ///       information was available for this class.
  3927.  class  tun_446_117_455_5057_front : public TunnelConvexShape {
  3928.    public:
  3929.  };
  3930.  
  3931.  /// Stub class
  3932.  ///
  3933.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3934.  ///       information was available for this class.
  3935.  class  tun_446_117_455_5052_right : public TunnelConvexShape {
  3936.    public:
  3937.  };
  3938.  
  3939.  /// Stub class
  3940.  ///
  3941.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3942.  ///       information was available for this class.
  3943.  class  tun_446_117_455_5052_back : public TunnelConvexShape {
  3944.    public:
  3945.  };
  3946.  
  3947.  /// Stub class
  3948.  ///
  3949.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3950.  ///       information was available for this class.
  3951.  class  tun_446_117_455_5052_front2 : public TunnelConvexShape {
  3952.    public:
  3953.  };
  3954.  
  3955.  /// Stub class
  3956.  ///
  3957.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3958.  ///       information was available for this class.
  3959.  class  tun_446_117_455_5052_front : public TunnelConvexShape {
  3960.    public:
  3961.  };
  3962.  
  3963.  /// Stub class
  3964.  ///
  3965.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3966.  ///       information was available for this class.
  3967.  class  tun_446_117_455_5052_bottom : public TunnelConvexShape {
  3968.    public:
  3969.  };
  3970.  
  3971.  /// Stub class
  3972.  ///
  3973.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3974.  ///       information was available for this class.
  3975.  class  tun_446_227_454_5439_right2 : public TunnelConvexShape {
  3976.    public:
  3977.  };
  3978.  
  3979.  /// Stub class
  3980.  ///
  3981.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3982.  ///       information was available for this class.
  3983.  class  tun_446_227_454_5439_right : public TunnelConvexShape {
  3984.    public:
  3985.  };
  3986.  
  3987.  /// Stub class
  3988.  ///
  3989.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3990.  ///       information was available for this class.
  3991.  class  tun_446_227_454_5439_left2 : public TunnelConvexShape {
  3992.    public:
  3993.  };
  3994.  
  3995.  /// Stub class
  3996.  ///
  3997.  /// @note This is a stub class to ensure a proper class hierarchy. No
  3998.  ///       information was available for this class.
  3999.  class  tun_446_227_454_5439_left : public TunnelConvexShape {
  4000.    public:
  4001.  };
  4002.  
  4003.  /// Stub class
  4004.  ///
  4005.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4006.  ///       information was available for this class.
  4007.  class  tun_446_227_454_5439_back5 : public TunnelConvexShape {
  4008.    public:
  4009.  };
  4010.  
  4011.  /// Stub class
  4012.  ///
  4013.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4014.  ///       information was available for this class.
  4015.  class  tun_446_227_454_5439_back4 : public TunnelConvexShape {
  4016.    public:
  4017.  };
  4018.  
  4019.  /// Stub class
  4020.  ///
  4021.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4022.  ///       information was available for this class.
  4023.  class  tun_446_227_454_5439_back3 : public TunnelConvexShape {
  4024.    public:
  4025.  };
  4026.  
  4027.  /// Stub class
  4028.  ///
  4029.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4030.  ///       information was available for this class.
  4031.  class  tun_446_227_454_5439_back2 : public TunnelConvexShape {
  4032.    public:
  4033.  };
  4034.  
  4035.  /// Stub class
  4036.  ///
  4037.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4038.  ///       information was available for this class.
  4039.  class  tun_446_227_454_5439_back : public TunnelConvexShape {
  4040.    public:
  4041.  };
  4042.  
  4043.  /// Stub class
  4044.  ///
  4045.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4046.  ///       information was available for this class.
  4047.  class  tun_446_227_454_5439_bottom : public TunnelConvexShape {
  4048.    public:
  4049.  };
  4050.  
  4051.  /// Stub class
  4052.  ///
  4053.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4054.  ///       information was available for this class.
  4055.  class  tun_446_227_453_5428_right2 : public TunnelConvexShape {
  4056.    public:
  4057.  };
  4058.  
  4059.  /// Stub class
  4060.  ///
  4061.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4062.  ///       information was available for this class.
  4063.  class  tun_446_227_453_5428_right : public TunnelConvexShape {
  4064.    public:
  4065.  };
  4066.  
  4067.  /// Stub class
  4068.  ///
  4069.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4070.  ///       information was available for this class.
  4071.  class  tun_446_227_453_5428_left2 : public TunnelConvexShape {
  4072.    public:
  4073.  };
  4074.  
  4075.  /// Stub class
  4076.  ///
  4077.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4078.  ///       information was available for this class.
  4079.  class  tun_446_227_453_5428_left : public TunnelConvexShape {
  4080.    public:
  4081.  };
  4082.  
  4083.  /// Stub class
  4084.  ///
  4085.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4086.  ///       information was available for this class.
  4087.  class  tun_446_227_453_5428_front : public TunnelConvexShape {
  4088.    public:
  4089.  };
  4090.  
  4091.  /// Stub class
  4092.  ///
  4093.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4094.  ///       information was available for this class.
  4095.  class  tun_446_227_453_5428_bottom : public TunnelConvexShape {
  4096.    public:
  4097.  };
  4098.  
  4099.  /// Stub class
  4100.  ///
  4101.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4102.  ///       information was available for this class.
  4103.  class  tun_446_125_433_5075_right : public TunnelConvexShape {
  4104.    public:
  4105.  };
  4106.  
  4107.  /// Stub class
  4108.  ///
  4109.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4110.  ///       information was available for this class.
  4111.  class  tun_446_125_433_5075_left : public TunnelConvexShape {
  4112.    public:
  4113.  };
  4114.  
  4115.  /// Stub class
  4116.  ///
  4117.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4118.  ///       information was available for this class.
  4119.  class  tun_446_125_433_5075_back : public TunnelConvexShape {
  4120.    public:
  4121.  };
  4122.  
  4123.  /// Stub class
  4124.  ///
  4125.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4126.  ///       information was available for this class.
  4127.  class  tun_446_125_433_5075_bottom : public TunnelConvexShape {
  4128.    public:
  4129.  };
  4130.  
  4131.  /// Stub class
  4132.  ///
  4133.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4134.  ///       information was available for this class.
  4135.  class  tun_446_125_431_5080_right : public TunnelConvexShape {
  4136.    public:
  4137.  };
  4138.  
  4139.  /// Stub class
  4140.  ///
  4141.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4142.  ///       information was available for this class.
  4143.  class  tun_446_125_431_5080_left : public TunnelConvexShape {
  4144.    public:
  4145.  };
  4146.  
  4147.  /// Stub class
  4148.  ///
  4149.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4150.  ///       information was available for this class.
  4151.  class  tun_446_125_431_5080_back : public TunnelConvexShape {
  4152.    public:
  4153.  };
  4154.  
  4155.  /// Stub class
  4156.  ///
  4157.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4158.  ///       information was available for this class.
  4159.  class  tun_446_125_431_5080_front : public TunnelConvexShape {
  4160.    public:
  4161.  };
  4162.  
  4163.  /// Stub class
  4164.  ///
  4165.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4166.  ///       information was available for this class.
  4167.  class  tun_446_125_431_5080_bottom : public TunnelConvexShape {
  4168.    public:
  4169.  };
  4170.  
  4171.  /// Stub class
  4172.  ///
  4173.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4174.  ///       information was available for this class.
  4175.  class  tun_446_125_431_5080_top : public TunnelConvexShape {
  4176.    public:
  4177.  };
  4178.  
  4179.  /// Stub class
  4180.  ///
  4181.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4182.  ///       information was available for this class.
  4183.  class  tun_446_125_432_5088_right : public TunnelConvexShape {
  4184.    public:
  4185.  };
  4186.  
  4187.  /// Stub class
  4188.  ///
  4189.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4190.  ///       information was available for this class.
  4191.  class  tun_446_125_432_5088_left : public TunnelConvexShape {
  4192.    public:
  4193.  };
  4194.  
  4195.  /// Stub class
  4196.  ///
  4197.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4198.  ///       information was available for this class.
  4199.  class  tun_446_125_432_5088_bottom : public TunnelConvexShape {
  4200.    public:
  4201.  };
  4202.  
  4203.  /// Stub class
  4204.  ///
  4205.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4206.  ///       information was available for this class.
  4207.  class  tun_446_125_430_5075_right2 : public TunnelConvexShape {
  4208.    public:
  4209.  };
  4210.  
  4211.  /// Stub class
  4212.  ///
  4213.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4214.  ///       information was available for this class.
  4215.  class  tun_446_125_430_5075_right : public TunnelConvexShape {
  4216.    public:
  4217.  };
  4218.  
  4219.  /// Stub class
  4220.  ///
  4221.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4222.  ///       information was available for this class.
  4223.  class  tun_446_125_430_5075_left : public TunnelConvexShape {
  4224.    public:
  4225.  };
  4226.  
  4227.  /// Stub class
  4228.  ///
  4229.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4230.  ///       information was available for this class.
  4231.  class  tun_446_125_430_5075_front2 : public TunnelConvexShape {
  4232.    public:
  4233.  };
  4234.  
  4235.  /// Stub class
  4236.  ///
  4237.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4238.  ///       information was available for this class.
  4239.  class  tun_446_125_430_5075_front : public TunnelConvexShape {
  4240.    public:
  4241.  };
  4242.  
  4243.  /// Stub class
  4244.  ///
  4245.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4246.  ///       information was available for this class.
  4247.  class  tun_446_125_430_5075_bottom : public TunnelConvexShape {
  4248.    public:
  4249.  };
  4250.  
  4251.  /// Stub class
  4252.  ///
  4253.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4254.  ///       information was available for this class.
  4255.  class  tun_446_125_430_5075_top : public TunnelConvexShape {
  4256.    public:
  4257.  };
  4258.  
  4259.  /// Stub class
  4260.  ///
  4261.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4262.  ///       information was available for this class.
  4263.  class  tun_446_200_178_5312_right2 : public TunnelConvexShape {
  4264.    public:
  4265.  };
  4266.  
  4267.  /// Stub class
  4268.  ///
  4269.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4270.  ///       information was available for this class.
  4271.  class  tun_446_200_178_5312_right : public TunnelConvexShape {
  4272.    public:
  4273.  };
  4274.  
  4275.  /// Stub class
  4276.  ///
  4277.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4278.  ///       information was available for this class.
  4279.  class  tun_446_200_178_5312_left4 : public TunnelConvexShape {
  4280.    public:
  4281.  };
  4282.  
  4283.  /// Stub class
  4284.  ///
  4285.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4286.  ///       information was available for this class.
  4287.  class  tun_446_200_178_5312_left3 : public TunnelConvexShape {
  4288.    public:
  4289.  };
  4290.  
  4291.  /// Stub class
  4292.  ///
  4293.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4294.  ///       information was available for this class.
  4295.  class  tun_446_200_178_5312_left2 : public TunnelConvexShape {
  4296.    public:
  4297.  };
  4298.  
  4299.  /// Stub class
  4300.  ///
  4301.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4302.  ///       information was available for this class.
  4303.  class  tun_446_200_178_5312_left : public TunnelConvexShape {
  4304.    public:
  4305.  };
  4306.  
  4307.  /// Stub class
  4308.  ///
  4309.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4310.  ///       information was available for this class.
  4311.  class  tun_446_200_178_5312_back3 : public TunnelConvexShape {
  4312.    public:
  4313.  };
  4314.  
  4315.  /// Stub class
  4316.  ///
  4317.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4318.  ///       information was available for this class.
  4319.  class  tun_446_200_178_5312_back2 : public TunnelConvexShape {
  4320.    public:
  4321.  };
  4322.  
  4323.  /// Stub class
  4324.  ///
  4325.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4326.  ///       information was available for this class.
  4327.  class  tun_446_200_178_5312_back : public TunnelConvexShape {
  4328.    public:
  4329.  };
  4330.  
  4331.  /// Stub class
  4332.  ///
  4333.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4334.  ///       information was available for this class.
  4335.  class  tun_446_200_178_5312_front2 : public TunnelConvexShape {
  4336.    public:
  4337.  };
  4338.  
  4339.  /// Stub class
  4340.  ///
  4341.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4342.  ///       information was available for this class.
  4343.  class  tun_446_200_178_5312_front : public TunnelConvexShape {
  4344.    public:
  4345.  };
  4346.  
  4347.  /// Stub class
  4348.  ///
  4349.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4350.  ///       information was available for this class.
  4351.  class  tun_446_200_178_5312_bottom : public TunnelConvexShape {
  4352.    public:
  4353.  };
  4354.  
  4355.  /// Stub class
  4356.  ///
  4357.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4358.  ///       information was available for this class.
  4359.  class  t446 : public TerrainBlock {
  4360.    public:
  4361.  };
  4362.  
  4363.  /// Stub class
  4364.  ///
  4365.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4366.  ///       information was available for this class.
  4367.  class  tun_445_437_459_5051_right : public TunnelConvexShape {
  4368.    public:
  4369.  };
  4370.  
  4371.  /// Stub class
  4372.  ///
  4373.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4374.  ///       information was available for this class.
  4375.  class  tun_445_437_459_5051_left : public TunnelConvexShape {
  4376.    public:
  4377.  };
  4378.  
  4379.  /// Stub class
  4380.  ///
  4381.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4382.  ///       information was available for this class.
  4383.  class  tun_445_437_459_5051_back : public TunnelConvexShape {
  4384.    public:
  4385.  };
  4386.  
  4387.  /// Stub class
  4388.  ///
  4389.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4390.  ///       information was available for this class.
  4391.  class  tun_445_437_459_5051_bottom : public TunnelConvexShape {
  4392.    public:
  4393.  };
  4394.  
  4395.  /// Stub class
  4396.  ///
  4397.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4398.  ///       information was available for this class.
  4399.  class  tun_445_437_457_5056_right : public TunnelConvexShape {
  4400.    public:
  4401.  };
  4402.  
  4403.  /// Stub class
  4404.  ///
  4405.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4406.  ///       information was available for this class.
  4407.  class  tun_445_437_457_5056_left : public TunnelConvexShape {
  4408.    public:
  4409.  };
  4410.  
  4411.  /// Stub class
  4412.  ///
  4413.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4414.  ///       information was available for this class.
  4415.  class  tun_445_437_457_5056_front2 : public TunnelConvexShape {
  4416.    public:
  4417.  };
  4418.  
  4419.  /// Stub class
  4420.  ///
  4421.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4422.  ///       information was available for this class.
  4423.  class  tun_445_437_457_5056_front : public TunnelConvexShape {
  4424.    public:
  4425.  };
  4426.  
  4427.  /// Stub class
  4428.  ///
  4429.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4430.  ///       information was available for this class.
  4431.  class  tun_445_437_457_5056_bottom : public TunnelConvexShape {
  4432.    public:
  4433.  };
  4434.  
  4435.  /// Stub class
  4436.  ///
  4437.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4438.  ///       information was available for this class.
  4439.  class  tun_445_437_457_5056_top : public TunnelConvexShape {
  4440.    public:
  4441.  };
  4442.  
  4443.  /// Stub class
  4444.  ///
  4445.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4446.  ///       information was available for this class.
  4447.  class  tun_445_437_458_5065_right2 : public TunnelConvexShape {
  4448.    public:
  4449.  };
  4450.  
  4451.  /// Stub class
  4452.  ///
  4453.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4454.  ///       information was available for this class.
  4455.  class  tun_445_437_458_5065_right : public TunnelConvexShape {
  4456.    public:
  4457.  };
  4458.  
  4459.  /// Stub class
  4460.  ///
  4461.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4462.  ///       information was available for this class.
  4463.  class  tun_445_437_458_5065_left2 : public TunnelConvexShape {
  4464.    public:
  4465.  };
  4466.  
  4467.  /// Stub class
  4468.  ///
  4469.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4470.  ///       information was available for this class.
  4471.  class  tun_445_437_458_5065_left : public TunnelConvexShape {
  4472.    public:
  4473.  };
  4474.  
  4475.  /// Stub class
  4476.  ///
  4477.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4478.  ///       information was available for this class.
  4479.  class  tun_445_437_458_5065_bottom : public TunnelConvexShape {
  4480.    public:
  4481.  };
  4482.  
  4483.  /// Stub class
  4484.  ///
  4485.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4486.  ///       information was available for this class.
  4487.  class  tun_445_440_451_5175_right : public TunnelConvexShape {
  4488.    public:
  4489.  };
  4490.  
  4491.  /// Stub class
  4492.  ///
  4493.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4494.  ///       information was available for this class.
  4495.  class  tun_445_440_451_5175_front2 : public TunnelConvexShape {
  4496.    public:
  4497.  };
  4498.  
  4499.  /// Stub class
  4500.  ///
  4501.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4502.  ///       information was available for this class.
  4503.  class  tun_445_440_451_5175_front : public TunnelConvexShape {
  4504.    public:
  4505.  };
  4506.  
  4507.  /// Stub class
  4508.  ///
  4509.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4510.  ///       information was available for this class.
  4511.  class  tun_445_440_451_5175_bottom : public TunnelConvexShape {
  4512.    public:
  4513.  };
  4514.  
  4515.  /// Stub class
  4516.  ///
  4517.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4518.  ///       information was available for this class.
  4519.  class  tun_445_439_451_5176_left : public TunnelConvexShape {
  4520.    public:
  4521.  };
  4522.  
  4523.  /// Stub class
  4524.  ///
  4525.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4526.  ///       information was available for this class.
  4527.  class  tun_445_439_451_5176_back : public TunnelConvexShape {
  4528.    public:
  4529.  };
  4530.  
  4531.  /// Stub class
  4532.  ///
  4533.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4534.  ///       information was available for this class.
  4535.  class  tun_445_439_451_5176_front : public TunnelConvexShape {
  4536.    public:
  4537.  };
  4538.  
  4539.  /// Stub class
  4540.  ///
  4541.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4542.  ///       information was available for this class.
  4543.  class  tun_445_439_451_5176_bottom : public TunnelConvexShape {
  4544.    public:
  4545.  };
  4546.  
  4547.  /// Stub class
  4548.  ///
  4549.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4550.  ///       information was available for this class.
  4551.  class  tun_445_430_450_5140_right : public TunnelConvexShape {
  4552.    public:
  4553.  };
  4554.  
  4555.  /// Stub class
  4556.  ///
  4557.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4558.  ///       information was available for this class.
  4559.  class  tun_445_430_450_5140_left2 : public TunnelConvexShape {
  4560.    public:
  4561.  };
  4562.  
  4563.  /// Stub class
  4564.  ///
  4565.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4566.  ///       information was available for this class.
  4567.  class  tun_445_430_450_5140_left : public TunnelConvexShape {
  4568.    public:
  4569.  };
  4570.  
  4571.  /// Stub class
  4572.  ///
  4573.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4574.  ///       information was available for this class.
  4575.  class  tun_445_430_450_5140_front3 : public TunnelConvexShape {
  4576.    public:
  4577.  };
  4578.  
  4579.  /// Stub class
  4580.  ///
  4581.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4582.  ///       information was available for this class.
  4583.  class  tun_445_430_450_5140_front2 : public TunnelConvexShape {
  4584.    public:
  4585.  };
  4586.  
  4587.  /// Stub class
  4588.  ///
  4589.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4590.  ///       information was available for this class.
  4591.  class  tun_445_430_450_5140_front : public TunnelConvexShape {
  4592.    public:
  4593.  };
  4594.  
  4595.  /// Stub class
  4596.  ///
  4597.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4598.  ///       information was available for this class.
  4599.  class  tun_445_430_450_5140_top : public TunnelConvexShape {
  4600.    public:
  4601.  };
  4602.  
  4603.  /// Stub class
  4604.  ///
  4605.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4606.  ///       information was available for this class.
  4607.  class  tun_445_430_450_5120_right : public TunnelConvexShape {
  4608.    public:
  4609.  };
  4610.  
  4611.  /// Stub class
  4612.  ///
  4613.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4614.  ///       information was available for this class.
  4615.  class  tun_445_430_450_5120_left : public TunnelConvexShape {
  4616.    public:
  4617.  };
  4618.  
  4619.  /// Stub class
  4620.  ///
  4621.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4622.  ///       information was available for this class.
  4623.  class  tun_445_430_450_5120_front2 : public TunnelConvexShape {
  4624.    public:
  4625.  };
  4626.  
  4627.  /// Stub class
  4628.  ///
  4629.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4630.  ///       information was available for this class.
  4631.  class  tun_445_430_450_5120_front : public TunnelConvexShape {
  4632.    public:
  4633.  };
  4634.  
  4635.  /// Stub class
  4636.  ///
  4637.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4638.  ///       information was available for this class.
  4639.  class  tun_445_430_450_5120_bottom : public TunnelConvexShape {
  4640.    public:
  4641.  };
  4642.  
  4643.  /// Stub class
  4644.  ///
  4645.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4646.  ///       information was available for this class.
  4647.  class  tun_445_430_451_5130_right : public TunnelConvexShape {
  4648.    public:
  4649.  };
  4650.  
  4651.  /// Stub class
  4652.  ///
  4653.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4654.  ///       information was available for this class.
  4655.  class  tun_445_430_451_5130_left2 : public TunnelConvexShape {
  4656.    public:
  4657.  };
  4658.  
  4659.  /// Stub class
  4660.  ///
  4661.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4662.  ///       information was available for this class.
  4663.  class  tun_445_430_451_5130_left : public TunnelConvexShape {
  4664.    public:
  4665.  };
  4666.  
  4667.  /// Stub class
  4668.  ///
  4669.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4670.  ///       information was available for this class.
  4671.  class  tun_445_430_451_5150_right : public TunnelConvexShape {
  4672.    public:
  4673.  };
  4674.  
  4675.  /// Stub class
  4676.  ///
  4677.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4678.  ///       information was available for this class.
  4679.  class  tun_445_430_451_5150_left2 : public TunnelConvexShape {
  4680.    public:
  4681.  };
  4682.  
  4683.  /// Stub class
  4684.  ///
  4685.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4686.  ///       information was available for this class.
  4687.  class  tun_445_430_451_5150_left : public TunnelConvexShape {
  4688.    public:
  4689.  };
  4690.  
  4691.  /// Stub class
  4692.  ///
  4693.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4694.  ///       information was available for this class.
  4695.  class  tun_445_430_451_5150_front : public TunnelConvexShape {
  4696.    public:
  4697.  };
  4698.  
  4699.  /// Stub class
  4700.  ///
  4701.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4702.  ///       information was available for this class.
  4703.  class  tun_445_430_451_5150_top : public TunnelConvexShape {
  4704.    public:
  4705.  };
  4706.  
  4707.  /// Stub class
  4708.  ///
  4709.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4710.  ///       information was available for this class.
  4711.  class  tun_445_430_452_5160_right : public TunnelConvexShape {
  4712.    public:
  4713.  };
  4714.  
  4715.  /// Stub class
  4716.  ///
  4717.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4718.  ///       information was available for this class.
  4719.  class  tun_445_430_452_5160_left : public TunnelConvexShape {
  4720.    public:
  4721.  };
  4722.  
  4723.  /// Stub class
  4724.  ///
  4725.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4726.  ///       information was available for this class.
  4727.  class  tun_445_430_452_5135_right : public TunnelConvexShape {
  4728.    public:
  4729.  };
  4730.  
  4731.  /// Stub class
  4732.  ///
  4733.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4734.  ///       information was available for this class.
  4735.  class  tun_445_430_452_5135_left : public TunnelConvexShape {
  4736.    public:
  4737.  };
  4738.  
  4739.  /// Stub class
  4740.  ///
  4741.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4742.  ///       information was available for this class.
  4743.  class  tun_445_430_452_5130_right : public TunnelConvexShape {
  4744.    public:
  4745.  };
  4746.  
  4747.  /// Stub class
  4748.  ///
  4749.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4750.  ///       information was available for this class.
  4751.  class  tun_445_430_452_5130_left : public TunnelConvexShape {
  4752.    public:
  4753.  };
  4754.  
  4755.  /// Stub class
  4756.  ///
  4757.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4758.  ///       information was available for this class.
  4759.  class  tun_445_430_452_5125_right : public TunnelConvexShape {
  4760.    public:
  4761.  };
  4762.  
  4763.  /// Stub class
  4764.  ///
  4765.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4766.  ///       information was available for this class.
  4767.  class  tun_445_430_452_5125_left : public TunnelConvexShape {
  4768.    public:
  4769.  };
  4770.  
  4771.  /// Stub class
  4772.  ///
  4773.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4774.  ///       information was available for this class.
  4775.  class  tun_445_430_452_5125_back : public TunnelConvexShape {
  4776.    public:
  4777.  };
  4778.  
  4779.  /// Stub class
  4780.  ///
  4781.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4782.  ///       information was available for this class.
  4783.  class  tun_445_430_452_5115_right : public TunnelConvexShape {
  4784.    public:
  4785.  };
  4786.  
  4787.  /// Stub class
  4788.  ///
  4789.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4790.  ///       information was available for this class.
  4791.  class  tun_445_430_452_5115_left : public TunnelConvexShape {
  4792.    public:
  4793.  };
  4794.  
  4795.  /// Stub class
  4796.  ///
  4797.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4798.  ///       information was available for this class.
  4799.  class  tun_445_430_452_5115_back : public TunnelConvexShape {
  4800.    public:
  4801.  };
  4802.  
  4803.  /// Stub class
  4804.  ///
  4805.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4806.  ///       information was available for this class.
  4807.  class  tun_445_430_452_5115_bottom : public TunnelConvexShape {
  4808.    public:
  4809.  };
  4810.  
  4811.  /// Stub class
  4812.  ///
  4813.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4814.  ///       information was available for this class.
  4815.  class  tun_445_430_451_5125_right : public TunnelConvexShape {
  4816.    public:
  4817.  };
  4818.  
  4819.  /// Stub class
  4820.  ///
  4821.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4822.  ///       information was available for this class.
  4823.  class  tun_445_430_451_5125_left : public TunnelConvexShape {
  4824.    public:
  4825.  };
  4826.  
  4827.  /// Stub class
  4828.  ///
  4829.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4830.  ///       information was available for this class.
  4831.  class  tun_445_430_451_5120_right : public TunnelConvexShape {
  4832.    public:
  4833.  };
  4834.  
  4835.  /// Stub class
  4836.  ///
  4837.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4838.  ///       information was available for this class.
  4839.  class  tun_445_430_451_5120_left : public TunnelConvexShape {
  4840.    public:
  4841.  };
  4842.  
  4843.  /// Stub class
  4844.  ///
  4845.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4846.  ///       information was available for this class.
  4847.  class  tun_445_430_451_5120_bottom : public TunnelConvexShape {
  4848.    public:
  4849.  };
  4850.  
  4851.  /// Stub class
  4852.  ///
  4853.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4854.  ///       information was available for this class.
  4855.  class  tun_445_430_453_5148_right : public TunnelConvexShape {
  4856.    public:
  4857.  };
  4858.  
  4859.  /// Stub class
  4860.  ///
  4861.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4862.  ///       information was available for this class.
  4863.  class  tun_445_430_453_5148_left2 : public TunnelConvexShape {
  4864.    public:
  4865.  };
  4866.  
  4867.  /// Stub class
  4868.  ///
  4869.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4870.  ///       information was available for this class.
  4871.  class  tun_445_430_453_5148_left : public TunnelConvexShape {
  4872.    public:
  4873.  };
  4874.  
  4875.  /// Stub class
  4876.  ///
  4877.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4878.  ///       information was available for this class.
  4879.  class  tun_445_430_453_5135_right : public TunnelConvexShape {
  4880.    public:
  4881.  };
  4882.  
  4883.  /// Stub class
  4884.  ///
  4885.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4886.  ///       information was available for this class.
  4887.  class  tun_445_430_453_5135_left : public TunnelConvexShape {
  4888.    public:
  4889.  };
  4890.  
  4891.  /// Stub class
  4892.  ///
  4893.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4894.  ///       information was available for this class.
  4895.  class  tun_445_430_453_5135_back : public TunnelConvexShape {
  4896.    public:
  4897.  };
  4898.  
  4899.  /// Stub class
  4900.  ///
  4901.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4902.  ///       information was available for this class.
  4903.  class  tun_445_430_453_5135_bottom : public TunnelConvexShape {
  4904.    public:
  4905.  };
  4906.  
  4907.  /// Stub class
  4908.  ///
  4909.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4910.  ///       information was available for this class.
  4911.  class  tun_445_430_454_5135_right : public TunnelConvexShape {
  4912.    public:
  4913.  };
  4914.  
  4915.  /// Stub class
  4916.  ///
  4917.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4918.  ///       information was available for this class.
  4919.  class  tun_445_430_454_5135_left : public TunnelConvexShape {
  4920.    public:
  4921.  };
  4922.  
  4923.  /// Stub class
  4924.  ///
  4925.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4926.  ///       information was available for this class.
  4927.  class  tun_445_430_454_5135_back : public TunnelConvexShape {
  4928.    public:
  4929.  };
  4930.  
  4931.  /// Stub class
  4932.  ///
  4933.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4934.  ///       information was available for this class.
  4935.  class  tun_445_430_454_5135_bottom : public TunnelConvexShape {
  4936.    public:
  4937.  };
  4938.  
  4939.  /// Stub class
  4940.  ///
  4941.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4942.  ///       information was available for this class.
  4943.  class  tun_445_469_444_5136_right : public TunnelConvexShape {
  4944.    public:
  4945.  };
  4946.  
  4947.  /// Stub class
  4948.  ///
  4949.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4950.  ///       information was available for this class.
  4951.  class  tun_445_469_444_5136_left : public TunnelConvexShape {
  4952.    public:
  4953.  };
  4954.  
  4955.  /// Stub class
  4956.  ///
  4957.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4958.  ///       information was available for this class.
  4959.  class  tun_445_469_444_5136_front : public TunnelConvexShape {
  4960.    public:
  4961.  };
  4962.  
  4963.  /// Stub class
  4964.  ///
  4965.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4966.  ///       information was available for this class.
  4967.  class  tun_445_469_444_5136_bottom : public TunnelConvexShape {
  4968.    public:
  4969.  };
  4970.  
  4971.  /// Stub class
  4972.  ///
  4973.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4974.  ///       information was available for this class.
  4975.  class  tun_445_469_444_5136_top : public TunnelConvexShape {
  4976.    public:
  4977.  };
  4978.  
  4979.  /// Stub class
  4980.  ///
  4981.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4982.  ///       information was available for this class.
  4983.  class  tun_445_469_445_5140_right : public TunnelConvexShape {
  4984.    public:
  4985.  };
  4986.  
  4987.  /// Stub class
  4988.  ///
  4989.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4990.  ///       information was available for this class.
  4991.  class  tun_445_469_445_5140_left : public TunnelConvexShape {
  4992.    public:
  4993.  };
  4994.  
  4995.  /// Stub class
  4996.  ///
  4997.  /// @note This is a stub class to ensure a proper class hierarchy. No
  4998.  ///       information was available for this class.
  4999.  class  tun_445_469_445_5140_back : public TunnelConvexShape {
  5000.    public:
  5001.  };
  5002.  
  5003.  /// Stub class
  5004.  ///
  5005.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5006.  ///       information was available for this class.
  5007.  class  tun_445_469_445_5140_bottom : public TunnelConvexShape {
  5008.    public:
  5009.  };
  5010.  
  5011.  /// Stub class
  5012.  ///
  5013.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5014.  ///       information was available for this class.
  5015.  class  tun_445_469_443_5136_right3 : public TunnelConvexShape {
  5016.    public:
  5017.  };
  5018.  
  5019.  /// Stub class
  5020.  ///
  5021.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5022.  ///       information was available for this class.
  5023.  class  tun_445_469_443_5136_right2 : public TunnelConvexShape {
  5024.    public:
  5025.  };
  5026.  
  5027.  /// Stub class
  5028.  ///
  5029.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5030.  ///       information was available for this class.
  5031.  class  tun_445_469_443_5136_right : public TunnelConvexShape {
  5032.    public:
  5033.  };
  5034.  
  5035.  /// Stub class
  5036.  ///
  5037.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5038.  ///       information was available for this class.
  5039.  class  tun_445_469_443_5136_left2 : public TunnelConvexShape {
  5040.    public:
  5041.  };
  5042.  
  5043.  /// Stub class
  5044.  ///
  5045.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5046.  ///       information was available for this class.
  5047.  class  tun_445_469_443_5136_left : public TunnelConvexShape {
  5048.    public:
  5049.  };
  5050.  
  5051.  /// Stub class
  5052.  ///
  5053.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5054.  ///       information was available for this class.
  5055.  class  tun_445_469_443_5136_bottom : public TunnelConvexShape {
  5056.    public:
  5057.  };
  5058.  
  5059.  /// Stub class
  5060.  ///
  5061.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5062.  ///       information was available for this class.
  5063.  class  tun_445_469_443_5136_top : public TunnelConvexShape {
  5064.    public:
  5065.  };
  5066.  
  5067.  /// Stub class
  5068.  ///
  5069.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5070.  ///       information was available for this class.
  5071.  class  tun_445_469_442_5136_right : public TunnelConvexShape {
  5072.    public:
  5073.  };
  5074.  
  5075.  /// Stub class
  5076.  ///
  5077.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5078.  ///       information was available for this class.
  5079.  class  tun_445_469_442_5136_left5 : public TunnelConvexShape {
  5080.    public:
  5081.  };
  5082.  
  5083.  /// Stub class
  5084.  ///
  5085.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5086.  ///       information was available for this class.
  5087.  class  tun_445_469_442_5136_left4 : public TunnelConvexShape {
  5088.    public:
  5089.  };
  5090.  
  5091.  /// Stub class
  5092.  ///
  5093.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5094.  ///       information was available for this class.
  5095.  class  tun_445_469_442_5136_left3 : public TunnelConvexShape {
  5096.    public:
  5097.  };
  5098.  
  5099.  /// Stub class
  5100.  ///
  5101.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5102.  ///       information was available for this class.
  5103.  class  tun_445_469_442_5136_left2 : public TunnelConvexShape {
  5104.    public:
  5105.  };
  5106.  
  5107.  /// Stub class
  5108.  ///
  5109.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5110.  ///       information was available for this class.
  5111.  class  tun_445_469_442_5136_left : public TunnelConvexShape {
  5112.    public:
  5113.  };
  5114.  
  5115.  /// Stub class
  5116.  ///
  5117.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5118.  ///       information was available for this class.
  5119.  class  tun_445_469_442_5136_back : public TunnelConvexShape {
  5120.    public:
  5121.  };
  5122.  
  5123.  /// Stub class
  5124.  ///
  5125.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5126.  ///       information was available for this class.
  5127.  class  tun_445_469_442_5136_bottom : public TunnelConvexShape {
  5128.    public:
  5129.  };
  5130.  
  5131.  /// Stub class
  5132.  ///
  5133.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5134.  ///       information was available for this class.
  5135.  class  tun_445_469_442_5136_top : public TunnelConvexShape {
  5136.    public:
  5137.  };
  5138.  
  5139.  /// Stub class
  5140.  ///
  5141.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5142.  ///       information was available for this class.
  5143.  class  tun_445_470_441_5131_right2 : public TunnelConvexShape {
  5144.    public:
  5145.  };
  5146.  
  5147.  /// Stub class
  5148.  ///
  5149.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5150.  ///       information was available for this class.
  5151.  class  tun_445_470_441_5131_right : public TunnelConvexShape {
  5152.    public:
  5153.  };
  5154.  
  5155.  /// Stub class
  5156.  ///
  5157.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5158.  ///       information was available for this class.
  5159.  class  tun_445_470_441_5131_back2 : public TunnelConvexShape {
  5160.    public:
  5161.  };
  5162.  
  5163.  /// Stub class
  5164.  ///
  5165.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5166.  ///       information was available for this class.
  5167.  class  tun_445_470_441_5131_back : public TunnelConvexShape {
  5168.    public:
  5169.  };
  5170.  
  5171.  /// Stub class
  5172.  ///
  5173.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5174.  ///       information was available for this class.
  5175.  class  tun_445_470_441_5131_front3 : public TunnelConvexShape {
  5176.    public:
  5177.  };
  5178.  
  5179.  /// Stub class
  5180.  ///
  5181.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5182.  ///       information was available for this class.
  5183.  class  tun_445_470_441_5131_front2 : public TunnelConvexShape {
  5184.    public:
  5185.  };
  5186.  
  5187.  /// Stub class
  5188.  ///
  5189.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5190.  ///       information was available for this class.
  5191.  class  tun_445_470_441_5131_front : public TunnelConvexShape {
  5192.    public:
  5193.  };
  5194.  
  5195.  /// Stub class
  5196.  ///
  5197.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5198.  ///       information was available for this class.
  5199.  class  tun_445_470_441_5131_bottom : public TunnelConvexShape {
  5200.    public:
  5201.  };
  5202.  
  5203.  /// Stub class
  5204.  ///
  5205.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5206.  ///       information was available for this class.
  5207.  class  tun_445_470_441_5131_top : public TunnelConvexShape {
  5208.    public:
  5209.  };
  5210.  
  5211.  /// Stub class
  5212.  ///
  5213.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5214.  ///       information was available for this class.
  5215.  class  tun_445_469_441_5131_left : public TunnelConvexShape {
  5216.    public:
  5217.  };
  5218.  
  5219.  /// Stub class
  5220.  ///
  5221.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5222.  ///       information was available for this class.
  5223.  class  tun_445_469_441_5131_front : public TunnelConvexShape {
  5224.    public:
  5225.  };
  5226.  
  5227.  /// Stub class
  5228.  ///
  5229.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5230.  ///       information was available for this class.
  5231.  class  tun_445_469_441_5131_bottom : public TunnelConvexShape {
  5232.    public:
  5233.  };
  5234.  
  5235.  /// Stub class
  5236.  ///
  5237.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5238.  ///       information was available for this class.
  5239.  class  tun_445_469_441_5131_top : public TunnelConvexShape {
  5240.    public:
  5241.  };
  5242.  
  5243.  /// Stub class
  5244.  ///
  5245.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5246.  ///       information was available for this class.
  5247.  class  tun_445_468_441_5131_left2 : public TunnelConvexShape {
  5248.    public:
  5249.  };
  5250.  
  5251.  /// Stub class
  5252.  ///
  5253.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5254.  ///       information was available for this class.
  5255.  class  tun_445_468_441_5131_left : public TunnelConvexShape {
  5256.    public:
  5257.  };
  5258.  
  5259.  /// Stub class
  5260.  ///
  5261.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5262.  ///       information was available for this class.
  5263.  class  tun_445_468_441_5131_back5 : public TunnelConvexShape {
  5264.    public:
  5265.  };
  5266.  
  5267.  /// Stub class
  5268.  ///
  5269.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5270.  ///       information was available for this class.
  5271.  class  tun_445_468_441_5131_back4 : public TunnelConvexShape {
  5272.    public:
  5273.  };
  5274.  
  5275.  /// Stub class
  5276.  ///
  5277.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5278.  ///       information was available for this class.
  5279.  class  tun_445_468_441_5131_back3 : public TunnelConvexShape {
  5280.    public:
  5281.  };
  5282.  
  5283.  /// Stub class
  5284.  ///
  5285.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5286.  ///       information was available for this class.
  5287.  class  tun_445_468_441_5131_back2 : public TunnelConvexShape {
  5288.    public:
  5289.  };
  5290.  
  5291.  /// Stub class
  5292.  ///
  5293.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5294.  ///       information was available for this class.
  5295.  class  tun_445_468_441_5131_back : public TunnelConvexShape {
  5296.    public:
  5297.  };
  5298.  
  5299.  /// Stub class
  5300.  ///
  5301.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5302.  ///       information was available for this class.
  5303.  class  tun_445_468_441_5131_bottom : public TunnelConvexShape {
  5304.    public:
  5305.  };
  5306.  
  5307.  /// Stub class
  5308.  ///
  5309.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5310.  ///       information was available for this class.
  5311.  class  tun_445_468_441_5131_top : public TunnelConvexShape {
  5312.    public:
  5313.  };
  5314.  
  5315.  /// Stub class
  5316.  ///
  5317.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5318.  ///       information was available for this class.
  5319.  class  tun_445_469_440_5131_right3 : public TunnelConvexShape {
  5320.    public:
  5321.  };
  5322.  
  5323.  /// Stub class
  5324.  ///
  5325.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5326.  ///       information was available for this class.
  5327.  class  tun_445_469_440_5131_right2 : public TunnelConvexShape {
  5328.    public:
  5329.  };
  5330.  
  5331.  /// Stub class
  5332.  ///
  5333.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5334.  ///       information was available for this class.
  5335.  class  tun_445_469_440_5131_right : public TunnelConvexShape {
  5336.    public:
  5337.  };
  5338.  
  5339.  /// Stub class
  5340.  ///
  5341.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5342.  ///       information was available for this class.
  5343.  class  tun_445_469_440_5131_bottom : public TunnelConvexShape {
  5344.    public:
  5345.  };
  5346.  
  5347.  /// Stub class
  5348.  ///
  5349.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5350.  ///       information was available for this class.
  5351.  class  tun_445_469_440_5131_top : public TunnelConvexShape {
  5352.    public:
  5353.  };
  5354.  
  5355.  /// Stub class
  5356.  ///
  5357.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5358.  ///       information was available for this class.
  5359.  class  tun_445_468_440_5131_left2 : public TunnelConvexShape {
  5360.    public:
  5361.  };
  5362.  
  5363.  /// Stub class
  5364.  ///
  5365.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5366.  ///       information was available for this class.
  5367.  class  tun_445_468_440_5131_left : public TunnelConvexShape {
  5368.    public:
  5369.  };
  5370.  
  5371.  /// Stub class
  5372.  ///
  5373.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5374.  ///       information was available for this class.
  5375.  class  tun_445_468_440_5131_bottom : public TunnelConvexShape {
  5376.    public:
  5377.  };
  5378.  
  5379.  /// Stub class
  5380.  ///
  5381.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5382.  ///       information was available for this class.
  5383.  class  tun_445_468_440_5131_top : public TunnelConvexShape {
  5384.    public:
  5385.  };
  5386.  
  5387.  /// Stub class
  5388.  ///
  5389.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5390.  ///       information was available for this class.
  5391.  class  tun_445_469_439_5131_right3 : public TunnelConvexShape {
  5392.    public:
  5393.  };
  5394.  
  5395.  /// Stub class
  5396.  ///
  5397.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5398.  ///       information was available for this class.
  5399.  class  tun_445_469_439_5131_right2 : public TunnelConvexShape {
  5400.    public:
  5401.  };
  5402.  
  5403.  /// Stub class
  5404.  ///
  5405.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5406.  ///       information was available for this class.
  5407.  class  tun_445_469_439_5131_right : public TunnelConvexShape {
  5408.    public:
  5409.  };
  5410.  
  5411.  /// Stub class
  5412.  ///
  5413.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5414.  ///       information was available for this class.
  5415.  class  tun_445_469_439_5131_front3 : public TunnelConvexShape {
  5416.    public:
  5417.  };
  5418.  
  5419.  /// Stub class
  5420.  ///
  5421.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5422.  ///       information was available for this class.
  5423.  class  tun_445_469_439_5131_front2 : public TunnelConvexShape {
  5424.    public:
  5425.  };
  5426.  
  5427.  /// Stub class
  5428.  ///
  5429.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5430.  ///       information was available for this class.
  5431.  class  tun_445_469_439_5131_front : public TunnelConvexShape {
  5432.    public:
  5433.  };
  5434.  
  5435.  /// Stub class
  5436.  ///
  5437.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5438.  ///       information was available for this class.
  5439.  class  tun_445_469_439_5131_bottom : public TunnelConvexShape {
  5440.    public:
  5441.  };
  5442.  
  5443.  /// Stub class
  5444.  ///
  5445.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5446.  ///       information was available for this class.
  5447.  class  tun_445_469_439_5131_top : public TunnelConvexShape {
  5448.    public:
  5449.  };
  5450.  
  5451.  /// Stub class
  5452.  ///
  5453.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5454.  ///       information was available for this class.
  5455.  class  tun_445_468_439_5131_left3 : public TunnelConvexShape {
  5456.    public:
  5457.  };
  5458.  
  5459.  /// Stub class
  5460.  ///
  5461.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5462.  ///       information was available for this class.
  5463.  class  tun_445_468_439_5131_left2 : public TunnelConvexShape {
  5464.    public:
  5465.  };
  5466.  
  5467.  /// Stub class
  5468.  ///
  5469.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5470.  ///       information was available for this class.
  5471.  class  tun_445_468_439_5131_left : public TunnelConvexShape {
  5472.    public:
  5473.  };
  5474.  
  5475.  /// Stub class
  5476.  ///
  5477.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5478.  ///       information was available for this class.
  5479.  class  tun_445_468_439_5131_front2 : public TunnelConvexShape {
  5480.    public:
  5481.  };
  5482.  
  5483.  /// Stub class
  5484.  ///
  5485.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5486.  ///       information was available for this class.
  5487.  class  tun_445_468_439_5131_front : public TunnelConvexShape {
  5488.    public:
  5489.  };
  5490.  
  5491.  /// Stub class
  5492.  ///
  5493.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5494.  ///       information was available for this class.
  5495.  class  tun_445_468_439_5131_bottom : public TunnelConvexShape {
  5496.    public:
  5497.  };
  5498.  
  5499.  /// Stub class
  5500.  ///
  5501.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5502.  ///       information was available for this class.
  5503.  class  tun_445_468_439_5131_top : public TunnelConvexShape {
  5504.    public:
  5505.  };
  5506.  
  5507.  /// Stub class
  5508.  ///
  5509.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5510.  ///       information was available for this class.
  5511.  class  t445 : public TerrainBlock {
  5512.    public:
  5513.  };
  5514.  
  5515.  /// Stub class
  5516.  ///
  5517.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5518.  ///       information was available for this class.
  5519.  class  t444 : public TerrainBlock {
  5520.    public:
  5521.  };
  5522.  
  5523.  /// Stub class
  5524.  ///
  5525.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5526.  ///       information was available for this class.
  5527.  class  tun_443_280_441_5340_right : public TunnelConvexShape {
  5528.    public:
  5529.  };
  5530.  
  5531.  /// Stub class
  5532.  ///
  5533.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5534.  ///       information was available for this class.
  5535.  class  tun_443_280_441_5340_left2 : public TunnelConvexShape {
  5536.    public:
  5537.  };
  5538.  
  5539.  /// Stub class
  5540.  ///
  5541.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5542.  ///       information was available for this class.
  5543.  class  tun_443_280_441_5340_left : public TunnelConvexShape {
  5544.    public:
  5545.  };
  5546.  
  5547.  /// Stub class
  5548.  ///
  5549.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5550.  ///       information was available for this class.
  5551.  class  tun_443_280_441_5340_back : public TunnelConvexShape {
  5552.    public:
  5553.  };
  5554.  
  5555.  /// Stub class
  5556.  ///
  5557.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5558.  ///       information was available for this class.
  5559.  class  tun_443_280_441_5340_front : public TunnelConvexShape {
  5560.    public:
  5561.  };
  5562.  
  5563.  /// Stub class
  5564.  ///
  5565.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5566.  ///       information was available for this class.
  5567.  class  tun_443_280_441_5340_bottom : public TunnelConvexShape {
  5568.    public:
  5569.  };
  5570.  
  5571.  /// Stub class
  5572.  ///
  5573.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5574.  ///       information was available for this class.
  5575.  class  tun_443_98_293_5111_right : public TunnelConvexShape {
  5576.    public:
  5577.  };
  5578.  
  5579.  /// Stub class
  5580.  ///
  5581.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5582.  ///       information was available for this class.
  5583.  class  tun_443_98_293_5111_left : public TunnelConvexShape {
  5584.    public:
  5585.  };
  5586.  
  5587.  /// Stub class
  5588.  ///
  5589.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5590.  ///       information was available for this class.
  5591.  class  tun_443_98_293_5111_back : public TunnelConvexShape {
  5592.    public:
  5593.  };
  5594.  
  5595.  /// Stub class
  5596.  ///
  5597.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5598.  ///       information was available for this class.
  5599.  class  tun_443_98_293_5111_front : public TunnelConvexShape {
  5600.    public:
  5601.  };
  5602.  
  5603.  /// Stub class
  5604.  ///
  5605.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5606.  ///       information was available for this class.
  5607.  class  tun_443_98_293_5111_bottom : public TunnelConvexShape {
  5608.    public:
  5609.  };
  5610.  
  5611.  /// Stub class
  5612.  ///
  5613.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5614.  ///       information was available for this class.
  5615.  class  tun_443_71_292_5186_right : public TunnelConvexShape {
  5616.    public:
  5617.  };
  5618.  
  5619.  /// Stub class
  5620.  ///
  5621.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5622.  ///       information was available for this class.
  5623.  class  tun_443_71_292_5186_back2 : public TunnelConvexShape {
  5624.    public:
  5625.  };
  5626.  
  5627.  /// Stub class
  5628.  ///
  5629.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5630.  ///       information was available for this class.
  5631.  class  tun_443_71_292_5186_back : public TunnelConvexShape {
  5632.    public:
  5633.  };
  5634.  
  5635.  /// Stub class
  5636.  ///
  5637.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5638.  ///       information was available for this class.
  5639.  class  tun_443_71_292_5186_front : public TunnelConvexShape {
  5640.    public:
  5641.  };
  5642.  
  5643.  /// Stub class
  5644.  ///
  5645.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5646.  ///       information was available for this class.
  5647.  class  tun_443_71_292_5186_bottom : public TunnelConvexShape {
  5648.    public:
  5649.  };
  5650.  
  5651.  /// Stub class
  5652.  ///
  5653.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5654.  ///       information was available for this class.
  5655.  class  tun_443_69_292_5193_left3 : public TunnelConvexShape {
  5656.    public:
  5657.  };
  5658.  
  5659.  /// Stub class
  5660.  ///
  5661.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5662.  ///       information was available for this class.
  5663.  class  tun_443_69_292_5193_left2 : public TunnelConvexShape {
  5664.    public:
  5665.  };
  5666.  
  5667.  /// Stub class
  5668.  ///
  5669.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5670.  ///       information was available for this class.
  5671.  class  tun_443_69_292_5193_left : public TunnelConvexShape {
  5672.    public:
  5673.  };
  5674.  
  5675.  /// Stub class
  5676.  ///
  5677.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5678.  ///       information was available for this class.
  5679.  class  tun_443_69_292_5193_back : public TunnelConvexShape {
  5680.    public:
  5681.  };
  5682.  
  5683.  /// Stub class
  5684.  ///
  5685.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5686.  ///       information was available for this class.
  5687.  class  tun_443_69_292_5193_front3 : public TunnelConvexShape {
  5688.    public:
  5689.  };
  5690.  
  5691.  /// Stub class
  5692.  ///
  5693.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5694.  ///       information was available for this class.
  5695.  class  tun_443_69_292_5193_front2 : public TunnelConvexShape {
  5696.    public:
  5697.  };
  5698.  
  5699.  /// Stub class
  5700.  ///
  5701.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5702.  ///       information was available for this class.
  5703.  class  tun_443_69_292_5193_front : public TunnelConvexShape {
  5704.    public:
  5705.  };
  5706.  
  5707.  /// Stub class
  5708.  ///
  5709.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5710.  ///       information was available for this class.
  5711.  class  tun_443_69_292_5193_top : public TunnelConvexShape {
  5712.    public:
  5713.  };
  5714.  
  5715.  /// Stub class
  5716.  ///
  5717.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5718.  ///       information was available for this class.
  5719.  class  tun_443_70_292_5195_back4 : public TunnelConvexShape {
  5720.    public:
  5721.  };
  5722.  
  5723.  /// Stub class
  5724.  ///
  5725.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5726.  ///       information was available for this class.
  5727.  class  tun_443_70_292_5195_back3 : public TunnelConvexShape {
  5728.    public:
  5729.  };
  5730.  
  5731.  /// Stub class
  5732.  ///
  5733.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5734.  ///       information was available for this class.
  5735.  class  tun_443_70_292_5195_front2 : public TunnelConvexShape {
  5736.    public:
  5737.  };
  5738.  
  5739.  /// Stub class
  5740.  ///
  5741.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5742.  ///       information was available for this class.
  5743.  class  tun_443_69_292_5173_left2 : public TunnelConvexShape {
  5744.    public:
  5745.  };
  5746.  
  5747.  /// Stub class
  5748.  ///
  5749.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5750.  ///       information was available for this class.
  5751.  class  tun_443_69_292_5173_left : public TunnelConvexShape {
  5752.    public:
  5753.  };
  5754.  
  5755.  /// Stub class
  5756.  ///
  5757.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5758.  ///       information was available for this class.
  5759.  class  tun_443_69_292_5173_back : public TunnelConvexShape {
  5760.    public:
  5761.  };
  5762.  
  5763.  /// Stub class
  5764.  ///
  5765.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5766.  ///       information was available for this class.
  5767.  class  tun_443_69_292_5173_front : public TunnelConvexShape {
  5768.    public:
  5769.  };
  5770.  
  5771.  /// Stub class
  5772.  ///
  5773.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5774.  ///       information was available for this class.
  5775.  class  tun_443_69_292_5173_bottom : public TunnelConvexShape {
  5776.    public:
  5777.  };
  5778.  
  5779.  /// Stub class
  5780.  ///
  5781.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5782.  ///       information was available for this class.
  5783.  class  tun_443_70_292_5178_right : public TunnelConvexShape {
  5784.    public:
  5785.  };
  5786.  
  5787.  /// Stub class
  5788.  ///
  5789.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5790.  ///       information was available for this class.
  5791.  class  tun_443_70_292_5178_back : public TunnelConvexShape {
  5792.    public:
  5793.  };
  5794.  
  5795.  /// Stub class
  5796.  ///
  5797.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5798.  ///       information was available for this class.
  5799.  class  tun_443_70_292_5178_front : public TunnelConvexShape {
  5800.    public:
  5801.  };
  5802.  
  5803.  /// Stub class
  5804.  ///
  5805.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5806.  ///       information was available for this class.
  5807.  class  tun_443_70_292_5178_bottom : public TunnelConvexShape {
  5808.    public:
  5809.  };
  5810.  
  5811.  /// Stub class
  5812.  ///
  5813.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5814.  ///       information was available for this class.
  5815.  class  tun_443_129_279_5161_right2 : public TunnelConvexShape {
  5816.    public:
  5817.  };
  5818.  
  5819.  /// Stub class
  5820.  ///
  5821.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5822.  ///       information was available for this class.
  5823.  class  tun_443_129_279_5161_right : public TunnelConvexShape {
  5824.    public:
  5825.  };
  5826.  
  5827.  /// Stub class
  5828.  ///
  5829.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5830.  ///       information was available for this class.
  5831.  class  tun_443_129_279_5161_left : public TunnelConvexShape {
  5832.    public:
  5833.  };
  5834.  
  5835.  /// Stub class
  5836.  ///
  5837.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5838.  ///       information was available for this class.
  5839.  class  tun_443_129_279_5161_back2 : public TunnelConvexShape {
  5840.    public:
  5841.  };
  5842.  
  5843.  /// Stub class
  5844.  ///
  5845.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5846.  ///       information was available for this class.
  5847.  class  tun_443_129_279_5161_back : public TunnelConvexShape {
  5848.    public:
  5849.  };
  5850.  
  5851.  /// Stub class
  5852.  ///
  5853.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5854.  ///       information was available for this class.
  5855.  class  tun_443_129_279_5161_bottom : public TunnelConvexShape {
  5856.    public:
  5857.  };
  5858.  
  5859.  /// Stub class
  5860.  ///
  5861.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5862.  ///       information was available for this class.
  5863.  class  tun_443_129_278_5141_right : public TunnelConvexShape {
  5864.    public:
  5865.  };
  5866.  
  5867.  /// Stub class
  5868.  ///
  5869.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5870.  ///       information was available for this class.
  5871.  class  tun_443_129_278_5141_left : public TunnelConvexShape {
  5872.    public:
  5873.  };
  5874.  
  5875.  /// Stub class
  5876.  ///
  5877.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5878.  ///       information was available for this class.
  5879.  class  tun_443_129_278_5141_front : public TunnelConvexShape {
  5880.    public:
  5881.  };
  5882.  
  5883.  /// Stub class
  5884.  ///
  5885.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5886.  ///       information was available for this class.
  5887.  class  tun_443_129_278_5141_bottom : public TunnelConvexShape {
  5888.    public:
  5889.  };
  5890.  
  5891.  /// Stub class
  5892.  ///
  5893.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5894.  ///       information was available for this class.
  5895.  class  tun_443_244_244_5350_right3 : public TunnelConvexShape {
  5896.    public:
  5897.  };
  5898.  
  5899.  /// Stub class
  5900.  ///
  5901.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5902.  ///       information was available for this class.
  5903.  class  tun_443_244_244_5350_right2 : public TunnelConvexShape {
  5904.    public:
  5905.  };
  5906.  
  5907.  /// Stub class
  5908.  ///
  5909.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5910.  ///       information was available for this class.
  5911.  class  tun_443_244_244_5350_right : public TunnelConvexShape {
  5912.    public:
  5913.  };
  5914.  
  5915.  /// Stub class
  5916.  ///
  5917.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5918.  ///       information was available for this class.
  5919.  class  tun_443_244_244_5350_left : public TunnelConvexShape {
  5920.    public:
  5921.  };
  5922.  
  5923.  /// Stub class
  5924.  ///
  5925.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5926.  ///       information was available for this class.
  5927.  class  tun_443_244_244_5350_back4 : public TunnelConvexShape {
  5928.    public:
  5929.  };
  5930.  
  5931.  /// Stub class
  5932.  ///
  5933.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5934.  ///       information was available for this class.
  5935.  class  tun_443_244_244_5350_back3 : public TunnelConvexShape {
  5936.    public:
  5937.  };
  5938.  
  5939.  /// Stub class
  5940.  ///
  5941.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5942.  ///       information was available for this class.
  5943.  class  tun_443_244_244_5350_back2 : public TunnelConvexShape {
  5944.    public:
  5945.  };
  5946.  
  5947.  /// Stub class
  5948.  ///
  5949.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5950.  ///       information was available for this class.
  5951.  class  tun_443_244_244_5350_back : public TunnelConvexShape {
  5952.    public:
  5953.  };
  5954.  
  5955.  /// Stub class
  5956.  ///
  5957.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5958.  ///       information was available for this class.
  5959.  class  tun_443_244_244_5350_front : public TunnelConvexShape {
  5960.    public:
  5961.  };
  5962.  
  5963.  /// Stub class
  5964.  ///
  5965.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5966.  ///       information was available for this class.
  5967.  class  tun_443_244_244_5350_bottom : public TunnelConvexShape {
  5968.    public:
  5969.  };
  5970.  
  5971.  /// Stub class
  5972.  ///
  5973.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5974.  ///       information was available for this class.
  5975.  class  tun_443_263_236_5389_right2 : public TunnelConvexShape {
  5976.    public:
  5977.  };
  5978.  
  5979.  /// Stub class
  5980.  ///
  5981.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5982.  ///       information was available for this class.
  5983.  class  tun_443_263_236_5389_left2 : public TunnelConvexShape {
  5984.    public:
  5985.  };
  5986.  
  5987.  /// Stub class
  5988.  ///
  5989.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5990.  ///       information was available for this class.
  5991.  class  tun_443_263_236_5389_front2 : public TunnelConvexShape {
  5992.    public:
  5993.  };
  5994.  
  5995.  /// Stub class
  5996.  ///
  5997.  /// @note This is a stub class to ensure a proper class hierarchy. No
  5998.  ///       information was available for this class.
  5999.  class  tun_443_263_236_5389_bottom2 : public TunnelConvexShape {
  6000.    public:
  6001.  };
  6002.  
  6003.  /// Stub class
  6004.  ///
  6005.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6006.  ///       information was available for this class.
  6007.  class  tun_443_263_237_5402_right : public TunnelConvexShape {
  6008.    public:
  6009.  };
  6010.  
  6011.  /// Stub class
  6012.  ///
  6013.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6014.  ///       information was available for this class.
  6015.  class  tun_443_263_237_5402_left : public TunnelConvexShape {
  6016.    public:
  6017.  };
  6018.  
  6019.  /// Stub class
  6020.  ///
  6021.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6022.  ///       information was available for this class.
  6023.  class  tun_443_263_237_5402_back3 : public TunnelConvexShape {
  6024.    public:
  6025.  };
  6026.  
  6027.  /// Stub class
  6028.  ///
  6029.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6030.  ///       information was available for this class.
  6031.  class  tun_443_263_237_5402_back2 : public TunnelConvexShape {
  6032.    public:
  6033.  };
  6034.  
  6035.  /// Stub class
  6036.  ///
  6037.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6038.  ///       information was available for this class.
  6039.  class  tun_443_263_237_5402_back : public TunnelConvexShape {
  6040.    public:
  6041.  };
  6042.  
  6043.  /// Stub class
  6044.  ///
  6045.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6046.  ///       information was available for this class.
  6047.  class  tun_443_263_237_5384_right : public TunnelConvexShape {
  6048.    public:
  6049.  };
  6050.  
  6051.  /// Stub class
  6052.  ///
  6053.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6054.  ///       information was available for this class.
  6055.  class  tun_443_263_237_5384_left : public TunnelConvexShape {
  6056.    public:
  6057.  };
  6058.  
  6059.  /// Stub class
  6060.  ///
  6061.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6062.  ///       information was available for this class.
  6063.  class  tun_443_263_237_5384_back3 : public TunnelConvexShape {
  6064.    public:
  6065.  };
  6066.  
  6067.  /// Stub class
  6068.  ///
  6069.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6070.  ///       information was available for this class.
  6071.  class  tun_443_263_237_5384_back2 : public TunnelConvexShape {
  6072.    public:
  6073.  };
  6074.  
  6075.  /// Stub class
  6076.  ///
  6077.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6078.  ///       information was available for this class.
  6079.  class  tun_443_263_237_5384_back : public TunnelConvexShape {
  6080.    public:
  6081.  };
  6082.  
  6083.  /// Stub class
  6084.  ///
  6085.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6086.  ///       information was available for this class.
  6087.  class  tun_443_263_237_5384_bottom : public TunnelConvexShape {
  6088.    public:
  6089.  };
  6090.  
  6091.  /// Stub class
  6092.  ///
  6093.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6094.  ///       information was available for this class.
  6095.  class  tun_443_299_230_5403_left : public TunnelConvexShape {
  6096.    public:
  6097.  };
  6098.  
  6099.  /// Stub class
  6100.  ///
  6101.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6102.  ///       information was available for this class.
  6103.  class  tun_443_299_230_5403_back : public TunnelConvexShape {
  6104.    public:
  6105.  };
  6106.  
  6107.  /// Stub class
  6108.  ///
  6109.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6110.  ///       information was available for this class.
  6111.  class  tun_443_299_230_5403_bottom : public TunnelConvexShape {
  6112.    public:
  6113.  };
  6114.  
  6115.  /// Stub class
  6116.  ///
  6117.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6118.  ///       information was available for this class.
  6119.  class  tun_443_299_230_5423_left : public TunnelConvexShape {
  6120.    public:
  6121.  };
  6122.  
  6123.  /// Stub class
  6124.  ///
  6125.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6126.  ///       information was available for this class.
  6127.  class  tun_443_299_230_5423_back : public TunnelConvexShape {
  6128.    public:
  6129.  };
  6130.  
  6131.  /// Stub class
  6132.  ///
  6133.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6134.  ///       information was available for this class.
  6135.  class  tun_443_299_230_5423_top : public TunnelConvexShape {
  6136.    public:
  6137.  };
  6138.  
  6139.  /// Stub class
  6140.  ///
  6141.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6142.  ///       information was available for this class.
  6143.  class  tun_443_300_229_5421_right2 : public TunnelConvexShape {
  6144.    public:
  6145.  };
  6146.  
  6147.  /// Stub class
  6148.  ///
  6149.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6150.  ///       information was available for this class.
  6151.  class  tun_443_300_230_5433_right4 : public TunnelConvexShape {
  6152.    public:
  6153.  };
  6154.  
  6155.  /// Stub class
  6156.  ///
  6157.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6158.  ///       information was available for this class.
  6159.  class  tun_443_300_230_5433_right3 : public TunnelConvexShape {
  6160.    public:
  6161.  };
  6162.  
  6163.  /// Stub class
  6164.  ///
  6165.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6166.  ///       information was available for this class.
  6167.  class  tun_443_300_230_5433_back4 : public TunnelConvexShape {
  6168.    public:
  6169.  };
  6170.  
  6171.  /// Stub class
  6172.  ///
  6173.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6174.  ///       information was available for this class.
  6175.  class  tun_443_300_230_5433_back3 : public TunnelConvexShape {
  6176.    public:
  6177.  };
  6178.  
  6179.  /// Stub class
  6180.  ///
  6181.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6182.  ///       information was available for this class.
  6183.  class  tun_443_300_229_5413_right : public TunnelConvexShape {
  6184.    public:
  6185.  };
  6186.  
  6187.  /// Stub class
  6188.  ///
  6189.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6190.  ///       information was available for this class.
  6191.  class  tun_443_300_229_5413_front : public TunnelConvexShape {
  6192.    public:
  6193.  };
  6194.  
  6195.  /// Stub class
  6196.  ///
  6197.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6198.  ///       information was available for this class.
  6199.  class  tun_443_299_229_5432_left : public TunnelConvexShape {
  6200.    public:
  6201.  };
  6202.  
  6203.  /// Stub class
  6204.  ///
  6205.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6206.  ///       information was available for this class.
  6207.  class  tun_443_300_229_5398_right2 : public TunnelConvexShape {
  6208.    public:
  6209.  };
  6210.  
  6211.  /// Stub class
  6212.  ///
  6213.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6214.  ///       information was available for this class.
  6215.  class  tun_443_300_229_5398_right : public TunnelConvexShape {
  6216.    public:
  6217.  };
  6218.  
  6219.  /// Stub class
  6220.  ///
  6221.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6222.  ///       information was available for this class.
  6223.  class  tun_443_300_229_5398_front : public TunnelConvexShape {
  6224.    public:
  6225.  };
  6226.  
  6227.  /// Stub class
  6228.  ///
  6229.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6230.  ///       information was available for this class.
  6231.  class  tun_443_300_229_5398_bottom : public TunnelConvexShape {
  6232.    public:
  6233.  };
  6234.  
  6235.  /// Stub class
  6236.  ///
  6237.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6238.  ///       information was available for this class.
  6239.  class  tun_443_300_230_5413_right : public TunnelConvexShape {
  6240.    public:
  6241.  };
  6242.  
  6243.  /// Stub class
  6244.  ///
  6245.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6246.  ///       information was available for this class.
  6247.  class  tun_443_300_230_5413_back : public TunnelConvexShape {
  6248.    public:
  6249.  };
  6250.  
  6251.  /// Stub class
  6252.  ///
  6253.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6254.  ///       information was available for this class.
  6255.  class  tun_443_300_230_5398_right : public TunnelConvexShape {
  6256.    public:
  6257.  };
  6258.  
  6259.  /// Stub class
  6260.  ///
  6261.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6262.  ///       information was available for this class.
  6263.  class  tun_443_300_230_5398_back : public TunnelConvexShape {
  6264.    public:
  6265.  };
  6266.  
  6267.  /// Stub class
  6268.  ///
  6269.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6270.  ///       information was available for this class.
  6271.  class  tun_443_300_230_5398_bottom : public TunnelConvexShape {
  6272.    public:
  6273.  };
  6274.  
  6275.  /// Stub class
  6276.  ///
  6277.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6278.  ///       information was available for this class.
  6279.  class  tun_443_299_229_5408_left : public TunnelConvexShape {
  6280.    public:
  6281.  };
  6282.  
  6283.  /// Stub class
  6284.  ///
  6285.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6286.  ///       information was available for this class.
  6287.  class  tun_443_299_229_5408_front : public TunnelConvexShape {
  6288.    public:
  6289.  };
  6290.  
  6291.  /// Stub class
  6292.  ///
  6293.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6294.  ///       information was available for this class.
  6295.  class  tun_443_299_229_5408_bottom : public TunnelConvexShape {
  6296.    public:
  6297.  };
  6298.  
  6299.  /// Stub class
  6300.  ///
  6301.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6302.  ///       information was available for this class.
  6303.  class  tun_443_299_228_5417_front2 : public TunnelConvexShape {
  6304.    public:
  6305.  };
  6306.  
  6307.  /// Stub class
  6308.  ///
  6309.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6310.  ///       information was available for this class.
  6311.  class  tun_443_299_228_5417_bottom2 : public TunnelConvexShape {
  6312.    public:
  6313.  };
  6314.  
  6315.  /// Stub class
  6316.  ///
  6317.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6318.  ///       information was available for this class.
  6319.  class  tun_443_298_228_5422_left2 : public TunnelConvexShape {
  6320.    public:
  6321.  };
  6322.  
  6323.  /// Stub class
  6324.  ///
  6325.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6326.  ///       information was available for this class.
  6327.  class  tun_443_298_228_5422_back2 : public TunnelConvexShape {
  6328.    public:
  6329.  };
  6330.  
  6331.  /// Stub class
  6332.  ///
  6333.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6334.  ///       information was available for this class.
  6335.  class  tun_443_298_228_5422_front10 : public TunnelConvexShape {
  6336.    public:
  6337.  };
  6338.  
  6339.  /// Stub class
  6340.  ///
  6341.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6342.  ///       information was available for this class.
  6343.  class  tun_443_298_228_5422_front9 : public TunnelConvexShape {
  6344.    public:
  6345.  };
  6346.  
  6347.  /// Stub class
  6348.  ///
  6349.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6350.  ///       information was available for this class.
  6351.  class  tun_443_298_228_5422_front8 : public TunnelConvexShape {
  6352.    public:
  6353.  };
  6354.  
  6355.  /// Stub class
  6356.  ///
  6357.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6358.  ///       information was available for this class.
  6359.  class  tun_443_298_228_5422_front7 : public TunnelConvexShape {
  6360.    public:
  6361.  };
  6362.  
  6363.  /// Stub class
  6364.  ///
  6365.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6366.  ///       information was available for this class.
  6367.  class  tun_443_298_228_5422_front6 : public TunnelConvexShape {
  6368.    public:
  6369.  };
  6370.  
  6371.  /// Stub class
  6372.  ///
  6373.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6374.  ///       information was available for this class.
  6375.  class  tun_443_298_228_5422_bottom2 : public TunnelConvexShape {
  6376.    public:
  6377.  };
  6378.  
  6379.  /// Stub class
  6380.  ///
  6381.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6382.  ///       information was available for this class.
  6383.  class  tun_443_300_228_5413_front3 : public TunnelConvexShape {
  6384.    public:
  6385.  };
  6386.  
  6387.  /// Stub class
  6388.  ///
  6389.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6390.  ///       information was available for this class.
  6391.  class  tun_443_300_228_5413_front2 : public TunnelConvexShape {
  6392.    public:
  6393.  };
  6394.  
  6395.  /// Stub class
  6396.  ///
  6397.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6398.  ///       information was available for this class.
  6399.  class  tun_443_300_228_5413_front : public TunnelConvexShape {
  6400.    public:
  6401.  };
  6402.  
  6403.  /// Stub class
  6404.  ///
  6405.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6406.  ///       information was available for this class.
  6407.  class  tun_443_300_228_5413_bottom : public TunnelConvexShape {
  6408.    public:
  6409.  };
  6410.  
  6411.  /// Stub class
  6412.  ///
  6413.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6414.  ///       information was available for this class.
  6415.  class  tun_443_297_228_5427_back : public TunnelConvexShape {
  6416.    public:
  6417.  };
  6418.  
  6419.  /// Stub class
  6420.  ///
  6421.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6422.  ///       information was available for this class.
  6423.  class  tun_443_297_228_5427_front : public TunnelConvexShape {
  6424.    public:
  6425.  };
  6426.  
  6427.  /// Stub class
  6428.  ///
  6429.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6430.  ///       information was available for this class.
  6431.  class  tun_443_297_228_5427_bottom : public TunnelConvexShape {
  6432.    public:
  6433.  };
  6434.  
  6435.  /// Stub class
  6436.  ///
  6437.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6438.  ///       information was available for this class.
  6439.  class  tun_443_296_228_5428_left : public TunnelConvexShape {
  6440.    public:
  6441.  };
  6442.  
  6443.  /// Stub class
  6444.  ///
  6445.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6446.  ///       information was available for this class.
  6447.  class  tun_443_296_228_5428_back : public TunnelConvexShape {
  6448.    public:
  6449.  };
  6450.  
  6451.  /// Stub class
  6452.  ///
  6453.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6454.  ///       information was available for this class.
  6455.  class  tun_443_296_228_5428_front : public TunnelConvexShape {
  6456.    public:
  6457.  };
  6458.  
  6459.  /// Stub class
  6460.  ///
  6461.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6462.  ///       information was available for this class.
  6463.  class  tun_443_296_228_5428_bottom : public TunnelConvexShape {
  6464.    public:
  6465.  };
  6466.  
  6467.  /// Stub class
  6468.  ///
  6469.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6470.  ///       information was available for this class.
  6471.  class  t443 : public TerrainBlock {
  6472.    public:
  6473.  };
  6474.  
  6475.  /// Stub class
  6476.  ///
  6477.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6478.  ///       information was available for this class.
  6479.  class  tun_442_384_225_5300_right3 : public TunnelConvexShape {
  6480.    public:
  6481.  };
  6482.  
  6483.  /// Stub class
  6484.  ///
  6485.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6486.  ///       information was available for this class.
  6487.  class  tun_442_384_225_5300_right2 : public TunnelConvexShape {
  6488.    public:
  6489.  };
  6490.  
  6491.  /// Stub class
  6492.  ///
  6493.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6494.  ///       information was available for this class.
  6495.  class  tun_442_384_225_5300_right : public TunnelConvexShape {
  6496.    public:
  6497.  };
  6498.  
  6499.  /// Stub class
  6500.  ///
  6501.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6502.  ///       information was available for this class.
  6503.  class  tun_442_384_225_5300_left2 : public TunnelConvexShape {
  6504.    public:
  6505.  };
  6506.  
  6507.  /// Stub class
  6508.  ///
  6509.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6510.  ///       information was available for this class.
  6511.  class  tun_442_384_225_5300_left : public TunnelConvexShape {
  6512.    public:
  6513.  };
  6514.  
  6515.  /// Stub class
  6516.  ///
  6517.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6518.  ///       information was available for this class.
  6519.  class  tun_442_384_225_5300_back3 : public TunnelConvexShape {
  6520.    public:
  6521.  };
  6522.  
  6523.  /// Stub class
  6524.  ///
  6525.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6526.  ///       information was available for this class.
  6527.  class  tun_442_384_225_5300_back2 : public TunnelConvexShape {
  6528.    public:
  6529.  };
  6530.  
  6531.  /// Stub class
  6532.  ///
  6533.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6534.  ///       information was available for this class.
  6535.  class  tun_442_384_225_5300_back : public TunnelConvexShape {
  6536.    public:
  6537.  };
  6538.  
  6539.  /// Stub class
  6540.  ///
  6541.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6542.  ///       information was available for this class.
  6543.  class  tun_442_384_225_5300_bottom : public TunnelConvexShape {
  6544.    public:
  6545.  };
  6546.  
  6547.  /// Stub class
  6548.  ///
  6549.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6550.  ///       information was available for this class.
  6551.  class  tun_442_384_225_5300_top : public TunnelConvexShape {
  6552.    public:
  6553.  };
  6554.  
  6555.  /// Stub class
  6556.  ///
  6557.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6558.  ///       information was available for this class.
  6559.  class  tun_442_384_224_5310_left8 : public TunnelConvexShape {
  6560.    public:
  6561.  };
  6562.  
  6563.  /// Stub class
  6564.  ///
  6565.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6566.  ///       information was available for this class.
  6567.  class  tun_442_384_224_5310_left7 : public TunnelConvexShape {
  6568.    public:
  6569.  };
  6570.  
  6571.  /// Stub class
  6572.  ///
  6573.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6574.  ///       information was available for this class.
  6575.  class  tun_442_384_224_5310_left6 : public TunnelConvexShape {
  6576.    public:
  6577.  };
  6578.  
  6579.  /// Stub class
  6580.  ///
  6581.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6582.  ///       information was available for this class.
  6583.  class  tun_442_384_224_5310_left5 : public TunnelConvexShape {
  6584.    public:
  6585.  };
  6586.  
  6587.  /// Stub class
  6588.  ///
  6589.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6590.  ///       information was available for this class.
  6591.  class  tun_442_384_224_5310_front4 : public TunnelConvexShape {
  6592.    public:
  6593.  };
  6594.  
  6595.  /// Stub class
  6596.  ///
  6597.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6598.  ///       information was available for this class.
  6599.  class  tun_442_384_224_5310_front3 : public TunnelConvexShape {
  6600.    public:
  6601.  };
  6602.  
  6603.  /// Stub class
  6604.  ///
  6605.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6606.  ///       information was available for this class.
  6607.  class  tun_442_384_224_5310_bottom2 : public TunnelConvexShape {
  6608.    public:
  6609.  };
  6610.  
  6611.  /// Stub class
  6612.  ///
  6613.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6614.  ///       information was available for this class.
  6615.  class  tun_442_385_224_5291_right2 : public TunnelConvexShape {
  6616.    public:
  6617.  };
  6618.  
  6619.  /// Stub class
  6620.  ///
  6621.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6622.  ///       information was available for this class.
  6623.  class  tun_442_385_224_5291_back6 : public TunnelConvexShape {
  6624.    public:
  6625.  };
  6626.  
  6627.  /// Stub class
  6628.  ///
  6629.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6630.  ///       information was available for this class.
  6631.  class  tun_442_385_224_5291_back5 : public TunnelConvexShape {
  6632.    public:
  6633.  };
  6634.  
  6635.  /// Stub class
  6636.  ///
  6637.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6638.  ///       information was available for this class.
  6639.  class  tun_442_385_224_5291_back4 : public TunnelConvexShape {
  6640.    public:
  6641.  };
  6642.  
  6643.  /// Stub class
  6644.  ///
  6645.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6646.  ///       information was available for this class.
  6647.  class  tun_442_385_224_5291_front4 : public TunnelConvexShape {
  6648.    public:
  6649.  };
  6650.  
  6651.  /// Stub class
  6652.  ///
  6653.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6654.  ///       information was available for this class.
  6655.  class  tun_442_385_224_5291_front3 : public TunnelConvexShape {
  6656.    public:
  6657.  };
  6658.  
  6659.  /// Stub class
  6660.  ///
  6661.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6662.  ///       information was available for this class.
  6663.  class  tun_442_385_224_5291_bottom2 : public TunnelConvexShape {
  6664.    public:
  6665.  };
  6666.  
  6667.  /// Stub class
  6668.  ///
  6669.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6670.  ///       information was available for this class.
  6671.  class  TunnelConvexesGroup : public SimGroup {
  6672.    public:
  6673.  };
  6674.  
  6675.  /// Stub class
  6676.  ///
  6677.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6678.  ///       information was available for this class.
  6679.  class  t442 : public TerrainBlock {
  6680.    public:
  6681.  };
  6682.  
  6683.  /// Stub class
  6684.  ///
  6685.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6686.  ///       information was available for this class.
  6687.  class  EnvDataBlockList : public SimGroup {
  6688.    public:
  6689.  };
  6690.  
  6691.  /*!
  6692.  @brief
  6693.  @ingroup
  6694.  @section Datablock_Networking Datablocks and Networking
  6695.  @section Datablock_ClientSide Client-Side Datablocks
  6696.   */
  6697.  class  SimDataBlock : public SimObject {
  6698.    public:
  6699.     /*!
  6700.     Datablock ID. Do not modify, for internal use.
  6701.    
  6702.      */
  6703.     int id;
  6704.  
  6705.     /*! @name Ungrouped
  6706.     @{ */
  6707.     /*! */
  6708.     /// @}
  6709.  
  6710.  
  6711.     /*! @name Object
  6712.     @{ */
  6713.     /*! */
  6714.     /// @}
  6715.  
  6716.  
  6717.     /*! @name Editing
  6718.     @{ */
  6719.     /*! */
  6720.     /// @}
  6721.  
  6722.  
  6723.     /*! @name Persistence
  6724.     @{ */
  6725.     /*! */
  6726.     /// @}
  6727.  
  6728.  };
  6729.  
  6730.  class  EnvDataBlock : public SimDataBlock {
  6731.    public:
  6732.     virtual bool getFieldEnabled((U32 field)) {}
  6733.     virtual void setFieldEnabled((U32 field, bool enabled)) {}
  6734.     virtual string getFieldStep((U32 field)) {}
  6735.     virtual void setFieldStep((U32 field, const char* value)) {}
  6736.     virtual int getFieldCount() {}
  6737.     virtual string getFieldName((S32 field)) {}
  6738.     virtual int getFieldType((S32 field)) {}
  6739.  
  6740.     /*! @name Internal
  6741.     @{ */
  6742.     /*! */
  6743.     /*!
  6744.     Do not modify, for internal use.
  6745.    
  6746.      */
  6747.     string enabled;
  6748.     /*!
  6749.     Do not modify, for internal use.
  6750.    
  6751.      */
  6752.     string fieldNode;
  6753.     /*!
  6754.     Do not modify, for internal use.
  6755.    
  6756.      */
  6757.     string step;
  6758.     /// @}
  6759.  
  6760.  
  6761.     /*! @name Ungrouped
  6762.     @{ */
  6763.     /*! */
  6764.     /// @}
  6765.  
  6766.  
  6767.     /*! @name Object
  6768.     @{ */
  6769.     /*! */
  6770.     /// @}
  6771.  
  6772.  
  6773.     /*! @name Editing
  6774.     @{ */
  6775.     /*! */
  6776.     /// @}
  6777.  
  6778.  
  6779.     /*! @name Persistence
  6780.     @{ */
  6781.     /*! */
  6782.     /// @}
  6783.  
  6784.  };
  6785.  
  6786.  class  EnvGlobalZone : public EnvDataBlock {
  6787.    public:
  6788.  
  6789.     /*! @name Internal
  6790.     @{ */
  6791.     /*! */
  6792.     /// @}
  6793.  
  6794.  
  6795.     /*! @name Ungrouped
  6796.     @{ */
  6797.     /*! */
  6798.     /// @}
  6799.  
  6800.  
  6801.     /*! @name Object
  6802.     @{ */
  6803.     /*! */
  6804.     /// @}
  6805.  
  6806.  
  6807.     /*! @name Editing
  6808.     @{ */
  6809.     /*! */
  6810.     /// @}
  6811.  
  6812.  
  6813.     /*! @name Persistence
  6814.     @{ */
  6815.     /*! */
  6816.     /// @}
  6817.  
  6818.  
  6819.     /*! @name Global
  6820.     @{ */
  6821.     /*! */
  6822.     /*!
  6823.    
  6824.    
  6825.      */
  6826.     float Weight;
  6827.     /// @}
  6828.  
  6829.  };
  6830.  
  6831.  /// Stub class
  6832.  ///
  6833.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6834.  ///       information was available for this class.
  6835.  class  ENVDATA_Foggy : public EnvGlobalZone {
  6836.    public:
  6837.  };
  6838.  
  6839.  /// Stub class
  6840.  ///
  6841.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6842.  ///       information was available for this class.
  6843.  class  ENVDATA_Sleet : public EnvGlobalZone {
  6844.    public:
  6845.  };
  6846.  
  6847.  /// Stub class
  6848.  ///
  6849.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6850.  ///       information was available for this class.
  6851.  class  ENVDATA_Fair : public EnvGlobalZone {
  6852.    public:
  6853.  };
  6854.  
  6855.  /// Stub class
  6856.  ///
  6857.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6858.  ///       information was available for this class.
  6859.  class  ENVDATA_Cloudy : public EnvGlobalZone {
  6860.    public:
  6861.  };
  6862.  
  6863.  /// Stub class
  6864.  ///
  6865.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6866.  ///       information was available for this class.
  6867.  class  ENVDATA_Shower : public EnvGlobalZone {
  6868.    public:
  6869.  };
  6870.  
  6871.  /// Stub class
  6872.  ///
  6873.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6874.  ///       information was available for this class.
  6875.  class  EnvGlobalZoneList : public SimGroup {
  6876.    public:
  6877.  };
  6878.  
  6879.  /// Stub class
  6880.  ///
  6881.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6882.  ///       information was available for this class.
  6883.  class  EnvDataList : public SimGroup {
  6884.    public:
  6885.  };
  6886.  
  6887.  /// Stub class
  6888.  ///
  6889.  /// @note This is a stub class to ensure a proper class hierarchy. No
  6890.  ///       information was available for this class.
  6891.  class  ClientMissionCleanup : public SimGroup {
  6892.    public:
  6893.  };
  6894.  
  6895.  /*!
  6896.  @brief Base class for all Gui control objects.
  6897.  
  6898.  GuiControl is the basis for the Gui system.  It represents an individual control that can be placed on the canvas and with which the mouse and keyboard can potentially interact with.
  6899.  
  6900.  @section GuiControl_Hierarchy Control Hierarchies
  6901.  GuiControls are arranged in a hierarchy.  All children of a control are placed in their parent's coordinate space, i.e. their coordinates are relative to the upper left corner of their immediate parent.  When a control is moved, all its child controls are moved along with it.
  6902.  
  6903.  Since GuiControl's are SimGroups, hierarchy also implies ownership.  This means that if a control is destroyed, all its children are destroyed along with it.  It also means that a given control can only be part of a single GuiControl hierarchy.  When adding a control to another control, it will automatically be reparented from another control it may have previously been parented to.
  6904.  
  6905.  @section GuiControl_Layout Layout System
  6906.  GuiControls have a two-dimensional position and are rectangular in shape.
  6907.  
  6908.  @section GuiControl_Events Event System
  6909.  @section GuiControl_Profiles Control Profiles
  6910.  Common data accessed by GuiControls is stored in so-called "Control Profiles."  This includes font, color, and texture information. By pooling this data in shared objects, the appearance of any number of controls can be changed quickly and easily by modifying only the shared profile object.
  6911.  
  6912.  If not explicitly assigned a profile, a control will by default look for a profile object that matches its class name.  This means that the class GuiMyCtrl, for example, will look for a profile called 'GuiMyProfile'.  If this profile cannot be found, the control will fall back to GuiDefaultProfile which must be defined in any case for the Gui system to work.
  6913.  
  6914.  In addition to its primary profile, a control may be assigned a second profile called 'tooltipProfile' that will be used to render tooltip popups for the control.
  6915.  
  6916.  @section GuiControl_Actions Triggered Actions
  6917.  @section GuiControl_FirstResponders First Responders
  6918.  At any time, a single control can be what is called the "first responder" on the GuiCanvas is is placed on.  This control will be the first control to receive keyboard events not bound in the global ActionMap.  If the first responder choses to handle a particular keyboard event,
  6919.  
  6920.  @section GuiControl_Waking Waking and Sleeping
  6921.  @section GuiControl_VisibleActive Visibility and Activeness
  6922.  By default, a GuiControl is active which means that it
  6923.  
  6924.  @see GuiCanvas
  6925.  @see GuiControlProfile
  6926.  @ingroup GuiCore
  6927.   */
  6928.  class  GuiControl : public SimGroup {
  6929.    public:
  6930.        /*! Called when the control object is registered with the system after the control has been created. */
  6931.        void onAdd();
  6932.  
  6933.        /*! Called when the control object is removed from the system before it is deleted. */
  6934.        void onRemove();
  6935.  
  6936.        /*! Called when the control is woken up.
  6937. @ref GuiControl_Waking */
  6938.        void onWake();
  6939.  
  6940.        /*! Called when the control is put to sleep.
  6941. @ref GuiControl_Waking */
  6942.        void onSleep();
  6943.  
  6944.        /*! Called when the control gains first responder status on the GuiCanvas.
  6945. @see setFirstResponder
  6946. @see makeFirstResponder
  6947. @see isFirstResponder
  6948. @ref GuiControl_FirstResponders */
  6949.        void onGainFirstResponder();
  6950.  
  6951.        /*! Called when the control loses first responder status on the GuiCanvas.
  6952. @see setFirstResponder
  6953. @see makeFirstResponder
  6954. @see isFirstResponder
  6955. @ref GuiControl_FirstResponders */
  6956.        void onLoseFirstResponder();
  6957.  
  6958.        /*! Called when the control's associated action is triggered and no 'command' is defined for the control.
  6959. @ref GuiControl_Actions */
  6960.        void onAction();
  6961.  
  6962.        /*! Called when the control changes its visibility state, i.e. when going from visible to invisible or vice versa.
  6963. @param state The new visibility state.
  6964. @see isVisible
  6965. @see setVisible
  6966. @ref GuiControl_VisibleActive */
  6967.        void onVisible( bool state );
  6968.  
  6969.        /*! Called when the control changes its activeness state, i.e. when going from active to inactive or vice versa.
  6970. @param stat The new activeness state.
  6971. @see isActive
  6972. @see setActive
  6973. @ref GuiControl_VisibleActive */
  6974.        void onActive( bool state );
  6975.  
  6976.        /*! Called when the control is pushed as a dialog onto the canvas.
  6977. @see GuiCanvas::pushDialog */
  6978.        void onDialogPush();
  6979.  
  6980.        /*! Called when the control is removed as a dialog from the canvas.
  6981. @see GuiCanvas::popDialog */
  6982.        void onDialogPop();
  6983.  
  6984.        /*! Called when a drag&drop operation through GuiDragAndDropControl has entered the control.  This is only called for topmost visible controls as the GuiDragAndDropControl moves over them.
  6985.  
  6986. @param control The payload of the drag operation.
  6987. @param dropPoint The point at which the payload would be dropped if it were released now.  Relative to the canvas. */
  6988.        void onControlDragEnter( GuiControl control, Point2I dropPoint );
  6989.  
  6990.        /*! Called when a drag&drop operation through GuiDragAndDropControl has exited the control and moved over a different control.  This is only called for topmost visible controls as the GuiDragAndDropControl moves off of them.
  6991.  
  6992. @param control The payload of the drag operation.
  6993. @param dropPoint The point at which the payload would be dropped if it were released now.  Relative to the canvas. */
  6994.        void onControlDragExit( GuiControl control, Point2I dropPoint );
  6995.  
  6996.        /*! Called when a drag&drop operation through GuiDragAndDropControl is moving across the control after it has entered it.  This is only called for topmost visible controls as the GuiDragAndDropControl moves across them.
  6997.  
  6998. @param control The payload of the drag operation.
  6999. @param dropPoint The point at which the payload would be dropped if it were released now.  Relative to the canvas. */
  7000.        void onControlDragged( GuiControl control, Point2I dropPoint );
  7001.  
  7002.        /*! Called when a drag&drop operation through GuiDragAndDropControl has completed and is dropping its payload onto the control.  This is only called for topmost visible controls as the GuiDragAndDropControl drops its payload on them.
  7003.  
  7004. @param control The control that is being dropped onto this control.
  7005. @param dropPoint The point at which the control is being dropped.  Relative to the canvas. */
  7006.        void onControlDropped( GuiControl control, Point2I dropPoint );
  7007.  
  7008.        /*!  */
  7009.        void onThisControlDropped( Point2I dropPoint );
  7010.  
  7011.     /*! Find the topmost child control located at the given coordinates.
  7012. @note Only children that are both visible and have the 'modal' flag set in their profile will be considered in the search.@param x The X coordinate in the control's own coordinate space.
  7013. @param y The Y coordinate in the control's own coordinate space.
  7014. @return The topmost child control at the given coordintes or the control on which the method was called if no matching child could be found.
  7015. @see GuiControlProfile::modal
  7016. @see findHitControls */
  7017.     virtual string findHitControl(( int x, int y )) {}
  7018.     /*! Creates tooltip */
  7019.     virtual void createObjectTooltip(( int id )) {}
  7020.     /*! Find all visible child controls that intersect with the given rectangle.
  7021. @note Invisible child controls will not be included in the search.
  7022. @param x The X coordinate of the rectangle's upper left corner in the control's own coordinate space.
  7023. @param y The Y coordinate of the rectangle's upper left corner in the control's own coordinate space.
  7024. @param width The width of the search rectangle in pixels.
  7025. @param height The height of the search rectangle in pixels.
  7026. @return A space-separated list of the IDs of all visible control objects intersecting the given rectangle.
  7027.  
  7028. @tsexample
  7029. // Lock all controls in the rectangle at x=10 and y=10 and the extent width=100 and height=100.
  7030. foreach$( %ctrl in %this.findHitControls( 10, 10, 100, 100 ) )
  7031.    %ctrl.setLocked( true );
  7032. @endtsexample
  7033. @see findHitControl */
  7034.     virtual string findHitControls(( int x, int y, int width, int height )) {}
  7035.     /*! Test whether the given control is a direct or indirect child to this control.
  7036. @param control The potential child control.
  7037. @return True if the given control is a direct or indirect child to this control. */
  7038.     virtual bool controlIsChild(( GuiControl control )) {}
  7039.     /*! Test whether the control is the current first responder.
  7040. @return True if the control is the current first responder.
  7041. @see makeFirstResponder
  7042. @see setFirstResponder
  7043. @ref GuiControl_FirstResponders */
  7044.     virtual bool isFirstResponder(()) {}
  7045.     /*! Make this control the current first responder.
  7046. @note Only controls with a profile that has canKeyFocus enabled are able to become first responders.
  7047. @see GuiControlProfile::canKeyFocus
  7048. @see isFirstResponder
  7049. @ref GuiControl_FirstResponders */
  7050.     virtual void setFirstResponder(()) {}
  7051.     /*! Get the first responder set on this GuiControl tree.
  7052. @return The first responder set on the control's subtree.
  7053. @see isFirstResponder
  7054. @see makeFirstResponder
  7055. @see setFirstResponder
  7056. @ref GuiControl_FirstResponders */
  7057.     virtual string getFirstResponder(()) {}
  7058.     /*! Clear this control from being the first responder in its hierarchy chain.
  7059. @param ignored Ignored.  Supported for backwards-compatibility.
  7060.  */
  7061.     virtual void clearFirstResponder(( bool ignored=false )) {}
  7062.     /*! Test whether the given point lies within the rectangle of the control.
  7063. @param x X coordinate of the point in parent-relative coordinates.
  7064. @param y Y coordinate of the point in parent-relative coordinates.
  7065. @return True if the point is within the control, false if not.
  7066. @see getExtent
  7067. @see getPosition
  7068.  */
  7069.     virtual bool pointInControl(( int x, int y )) {}
  7070.     /*! Add the given control as a child to this control.
  7071. This is synonymous to calling SimGroup::addObject.
  7072. @param control The control to add as a child.
  7073. @note The control will retain its current position and size.
  7074. @see SimGroup::addObject
  7075. @ref GuiControl_Hierarchy
  7076.  */
  7077.     virtual void addGuiControl(( GuiControl control )) {}
  7078.     /*! Get the canvas on which the control is placed.
  7079. @return The canvas on which the control's hierarchy is currently placed or 0 if the control is not currently placed on a GuiCanvas.
  7080. @see GuiControl_Hierarchy
  7081.  */
  7082.     virtual string getRoot(()) {}
  7083.     /*! Get the immediate parent control of the control.
  7084. @return The immediate parent GuiControl or 0 if the control is not parented to a GuiControl.
  7085.  */
  7086.     virtual string getParent(()) {}
  7087.     /*! Indicates if the mouse is locked in this control.
  7088. @return True if the mouse is currently locked.
  7089.  */
  7090.     virtual bool isMouseLocked(()) {}
  7091.     /*! Set the value associated with the control.
  7092. @param value The new value for the control.
  7093.  */
  7094.     virtual void setValue(( string value )) {}
  7095.     virtual string getValue() {}
  7096.     virtual void makeFirstResponder((bool isFirst)) {}
  7097.     virtual bool isActive() {}
  7098.     virtual void setActive(( bool state=true )) {}
  7099.     /*! Test whether the control is currently set to be visible.
  7100. @return True if the control is currently set to be visible.@note This method does not tell anything about whether the control is actually visible to the user at the moment.
  7101.  
  7102. @ref GuiControl_VisibleActive */
  7103.     virtual bool isVisible(()) {}
  7104.     /*! Set whether the control is visible or not.
  7105. @param state The new visiblity flag state for the control.
  7106. @ref GuiControl_VisibleActive */
  7107.     virtual void setVisible(( bool state=true )) {}
  7108.     /*! Test whether the control is currently awake.
  7109. If a control is awake it means that it is part of the GuiControl hierarchy of a GuiCanvas.
  7110. @return True if the control is awake.@ref GuiControl_Waking */
  7111.     virtual bool isAwake(()) {}
  7112.     /*! Set the control profile for the control to use.
  7113. The profile used by a control determines a great part of its behavior and appearance.
  7114. @param profile The new profile the control should use.
  7115. @ref GuiControl_Profiles */
  7116.     virtual void setProfile(( GuiControlProfile profile )) {}
  7117.     /*! Resize and reposition the control using the give coordinates and dimensions.  Child controls will resize according to their layout behaviors.
  7118. @param x The new X coordinate of the control in its parent's coordinate space.
  7119. @param y The new Y coordinate of the control in its parent's coordinate space.
  7120. @param width The new width to which the control should be resized.
  7121. @param height The new height to which the control should be resized. */
  7122.     virtual void resize(( int x, int y, int width, int height )) {}
  7123.     /*! Get the control's current position relative to its parent.
  7124. @return The coordinate of the control in its parent's coordinate space. */
  7125.     virtual string getPosition(()) {}
  7126.     /*! Get the coordinate of the control's center point relative to its parent.
  7127. @return The coordinate of the control's center point in parent-relative coordinates. */
  7128.     virtual string getCenter(()) {}
  7129.     /*! Set the control's position by its center point.
  7130. @param x The X coordinate of the new center point of the control relative to the control's parent.
  7131. @param y The Y coordinate of the new center point of the control relative to the control's parent. */
  7132.     virtual void setCenter(( int x, int y )) {}
  7133.     /*! Get the coordinate of the control's center point in coordinates relative to the root control in its control hierarchy.
  7134. @Return the center coordinate of the control in root-relative coordinates.
  7135.  */
  7136.     virtual string getGlobalCenter(()) {}
  7137.     /*! Get the position of the control relative to the root of the GuiControl hierarchy it is contained in.
  7138. @return The control's current position in root-relative coordinates. */
  7139.     virtual string getGlobalPosition(()) {}
  7140.     /*! Set position of the control relative to the root of the GuiControl hierarchy it is contained in.
  7141. @param x The new X coordinate of the control relative to the root's upper left corner.
  7142. @param y The new Y coordinate of the control relative to the root's upper left corner. */
  7143.     virtual void setPositionGlobal(( int x, int y )) {}
  7144.     /*! Position the control in the local space of the parent control.
  7145. @param x The new X coordinate of the control relative to its parent's upper left corner.
  7146. @param y The new Y coordinate of the control relative to its parent's upper left corner. */
  7147.     virtual void setPosition(( int x, int y )) {}
  7148.     /*! Get the width and height of the control.
  7149. @return A point structure containing the width of the control in x and the height in y. */
  7150.     virtual string getExtent(()) {}
  7151.     /*! Set the width and height of the control.
  7152.  
  7153. @hide */
  7154.     virtual void setExtent(( Point2I p | int x, int y )) {}
  7155.     /*! Get the minimum allowed size of the control.
  7156. @return The minimum size to which the control can be shrunk.
  7157. @see minExtent */
  7158.     virtual string getMinExtent(()) {}
  7159.     /*! Get the aspect ratio of the control's extents.
  7160. @return The width of the control divided by its height.
  7161. @see getExtent */
  7162.     virtual float getAspect(()) {}
  7163.     /*! Set control's tooltip */
  7164.     virtual void setTooltip(( string tooltip )) {}
  7165.  
  7166.     /*! @name Layout
  7167.     @{ */
  7168.     /*! */
  7169.     /*!
  7170.     The position relative to the parent control.
  7171.    
  7172.      */
  7173.     Point2I position;
  7174.     /*!
  7175.     The width and height of the control.
  7176.    
  7177.      */
  7178.     Point2I extent;
  7179.     /*!
  7180.     The minimum width and height of the control. The control will not be resized smaller than this.
  7181.    
  7182.      */
  7183.     Point2I minExtent;
  7184.     /*!
  7185.     The maximum width and height of the control. The control will not be resized more than this.
  7186.    
  7187.      */
  7188.     Point2I maxExtent;
  7189.     /*!
  7190.     The horizontal resizing behavior.
  7191.    
  7192.      */
  7193.     GuiHorizontalSizing horizSizing;
  7194.     /*!
  7195.     The vertical resizing behavior.
  7196.    
  7197.      */
  7198.     GuiVerticalSizing vertSizing;
  7199.     /// @}
  7200.  
  7201.  
  7202.     /*! @name Control
  7203.     @{ */
  7204.     /*! */
  7205.     /*!
  7206.     The control profile that determines fill styles, font settings, etc.
  7207.    
  7208.      */
  7209.     GuiControlProfile profile;
  7210.     /*!
  7211.     Whether the control is visible or hidden.
  7212.    
  7213.      */
  7214.     bool visible;
  7215.     /*!
  7216.     Whether the control is enabled for user interaction.
  7217.    
  7218.      */
  7219.     bool active;
  7220.     /*!
  7221.     @deprecated This member is deprecated, which means that its value is always undefined.
  7222.      */
  7223.     deprecated modal;
  7224.     /*!
  7225.     @deprecated This member is deprecated, which means that its value is always undefined.
  7226.      */
  7227.     deprecated setFirstResponder;
  7228.     /*!
  7229.     Name of the variable to which the value of this control will be synchronized.
  7230.    
  7231.      */
  7232.     string variable;
  7233.     /*!
  7234.     Command to execute on the primary action of the control.
  7235.  
  7236. @note Within this script snippet, the control on which the #command is being executed is bound to the global variable $ThisControl.
  7237.    
  7238.      */
  7239.     string command;
  7240.     /*!
  7241.     Command to execute on the secondary action of the control.
  7242.  
  7243. @note Within this script snippet, the control on which the #altCommand is being executed is bound to the global variable $ThisControl.
  7244.    
  7245.      */
  7246.     string altCommand;
  7247.     /*!
  7248.     Key combination that triggers the control's primary action when the control is on the canvas.
  7249.    
  7250.      */
  7251.     string accelerator;
  7252.     /*!
  7253.     Opacity multiplier for rendering the control.
  7254.    
  7255.      */
  7256.     float opacity;
  7257.     /*!
  7258.     Control will hide on TAB.
  7259.    
  7260.      */
  7261.     bool canHideOnFreelook;
  7262.     /// @}
  7263.  
  7264.  
  7265.     /*! @name ToolTip
  7266.     @{ */
  7267.     /*! */
  7268.     /*!
  7269.     Control profile to use when rendering tooltips for this control.
  7270.    
  7271.      */
  7272.     GuiControlProfile tooltipProfile;
  7273.     /*!
  7274.     String to show in tooltip for this control.
  7275.    
  7276.      */
  7277.     string tooltip;
  7278.     /*!
  7279.     Time for mouse to hover over control until tooltip is shown (in milliseconds).
  7280.    
  7281.      */
  7282.     int hovertime;
  7283.     /// @}
  7284.  
  7285.  
  7286.     /*! @name Editing
  7287.     @{ */
  7288.     /*! */
  7289.     /*!
  7290.     If true, the control may contain child controls.
  7291.    
  7292.      */
  7293.     bool isContainer;
  7294.     /// @}
  7295.  
  7296.  
  7297.     /*! @name Localization
  7298.     @{ */
  7299.     /*! */
  7300.     /*!
  7301.     Name of string table to use for lookup of internationalized text.
  7302.    
  7303.      */
  7304.     string langTableMod;
  7305.     /// @}
  7306.  
  7307.  
  7308.     /*! @name Ungrouped
  7309.     @{ */
  7310.     /*! */
  7311.     /// @}
  7312.  
  7313.  
  7314.     /*! @name Object
  7315.     @{ */
  7316.     /*! */
  7317.     /// @}
  7318.  
  7319.  
  7320.     /*! @name Editing
  7321.     @{ */
  7322.     /*! */
  7323.     /// @}
  7324.  
  7325.  
  7326.     /*! @name Persistence
  7327.     @{ */
  7328.     /*! */
  7329.     /// @}
  7330.  
  7331.  };
  7332.  
  7333.  /*!
  7334.  @brief The base class for the various button controls.
  7335.  
  7336.  This is the base class for the various types of button controls.  If no more specific functionality is required than offered by this class, then it can be instantiated and used directly.  Otherwise, its subclasses should be used:
  7337.  - GuiRadioCtrl (radio buttons)
  7338.  - GuiCheckBoxCtrl (checkboxes)
  7339.  - GuiButtonCtrl (push buttons with text labels)
  7340.  - GuiBitmapButtonCtrl (bitmapped buttons)
  7341.  - GuiBitmapButtonTextCtrl (bitmapped buttons with a text label)
  7342.  - GuiToggleButtonCtrl (toggle buttons, i.e. push buttons with "sticky" behavior)
  7343.  - GuiSwatchButtonCtrl (color swatch buttons)
  7344.  - GuiBorderButtonCtrl (push buttons for surrounding child controls)
  7345.  
  7346.   */
  7347.  class  GuiButtonBaseCtrl : public GuiControl {
  7348.    public:
  7349.        /*! If #useMouseEvents is true, this is called when the left mouse button is pressed on an (active) button. */
  7350.        void onMouseDown();
  7351.  
  7352.        /*! If #useMouseEvents is true, this is called when the left mouse button is release over an (active) button.
  7353.  
  7354. @note To trigger actions, better use onClick() since onMouseUp() will also be called when the mouse was not originally pressed on the button. */
  7355.        void onMouseUp();
  7356.  
  7357.        /*! Called when the primary action of the button is triggered (e.g. by a left mouse click). */
  7358.        void onClick();
  7359.  
  7360.        /*! Called when the left mouse button is double-clicked on the button. */
  7361.        void onDoubleClick();
  7362.  
  7363.        /*! Called when the right mouse button is clicked on the button. */
  7364.        void onRightClick();
  7365.  
  7366.        /*! If #useMouseEvents is true, this is called when the mouse cursor moves over the button (only if the button is the front-most visible control, though). */
  7367.        void onMouseEnter();
  7368.  
  7369.        /*! If #useMouseEvents is true, this is called when the mouse cursor moves off the button (only if the button had previously received an onMouseEvent() event). */
  7370.        void onMouseLeave();
  7371.  
  7372.        /*! If #useMouseEvents is true, this is called when a left mouse button drag is detected, i.e. when the user pressed the left mouse button on the control and then moves the mouse over a certain distance threshold with the mouse button still pressed. */
  7373.        void onMouseDragged();
  7374.  
  7375.        /*!  */
  7376.        void onStateChanged( bool state );
  7377.  
  7378.     /*! Simulate a click on the button.
  7379. This method will trigger the button's action just as if the button had been pressed by the user.
  7380.  
  7381.  */
  7382.     virtual void performClick(()) {}
  7383.     /*! Set the text displayed on the button's label.
  7384. @param text The text to display as the button's text label.
  7385. @note Not all buttons render text labels.
  7386.  
  7387. @see getText
  7388. @see setTextID
  7389.  */
  7390.     virtual void setText(( string text )) {}
  7391.     /*! Set the text displayed on the button's label using a string from the string table assigned to the control.
  7392.  
  7393. @param id Name of the variable that contains the integer string ID.  Used to look up string in table.
  7394.  
  7395. @note Not all buttons render text labels.
  7396.  
  7397. @see setText
  7398. @see getText
  7399. @see GuiControl::langTableMod
  7400. @see LangTable
  7401.  
  7402. @ref Gui_i18n */
  7403.     virtual void setTextID(( string id )) {}
  7404.     /*! Get the text display on the button's label (if any).
  7405.  
  7406. @return The button's label. */
  7407.     virtual string getText(()) {}
  7408.     /*! For toggle or radio buttons, set whether the button is currently activated or not.  For radio buttons, toggling a button on will toggle all other radio buttons in its group to off.
  7409.  
  7410. @param isOn If true, the button will be toggled on (if not already); if false, it will be toggled off.
  7411.  
  7412. @note Toggling the state of a button with this method will <em>not</em> not trigger the action associated with the button.  To do that, use performClick(). */
  7413.     virtual void setStateOn(( bool isOn=true )) {}
  7414.     /*! Reset the mousing state of the button.
  7415.  
  7416. This method should not generally be called. */
  7417.     virtual void resetState(()) {}
  7418.  
  7419.     /*! @name Button
  7420.     @{ */
  7421.     /*! */
  7422.     /*!
  7423.     Text label to display on button (if button class supports text labels).
  7424.    
  7425.      */
  7426.     caseString text;
  7427.     /*!
  7428.     ID of string in string table to use for text label on button.
  7429.  
  7430. @see setTextID
  7431. @see GuiControl::langTableMod
  7432. @see LangTable
  7433.  
  7434.  
  7435.    
  7436.      */
  7437.     string textID;
  7438.     /*!
  7439.     Radio button toggle group number.  All radio buttons that are assigned the same #groupNum and that are parented to the same control will synchronize their toggle state, i.e. if one radio button is toggled on all other radio buttons in its group will be toggled off.
  7440.  
  7441. The default group is -1.
  7442.    
  7443.      */
  7444.     int groupNum;
  7445.     /*!
  7446.     Button behavior type.
  7447.  
  7448.    
  7449.      */
  7450.     GuiButtonType buttonType;
  7451.     /*!
  7452.     If true, mouse events will be passed on to script.  Default is false.
  7453.  
  7454.    
  7455.      */
  7456.     bool useMouseEvents;
  7457.     /*!
  7458.     Default button state.
  7459.  
  7460.    
  7461.      */
  7462.     bool defaultState;
  7463.     /// @}
  7464.  
  7465.  
  7466.     /*! @name Layout
  7467.     @{ */
  7468.     /*! */
  7469.     /// @}
  7470.  
  7471.  
  7472.     /*! @name Control
  7473.     @{ */
  7474.     /*! */
  7475.     /// @}
  7476.  
  7477.  
  7478.     /*! @name ToolTip
  7479.     @{ */
  7480.     /*! */
  7481.     /// @}
  7482.  
  7483.  
  7484.     /*! @name Editing
  7485.     @{ */
  7486.     /*! */
  7487.     /// @}
  7488.  
  7489.  
  7490.     /*! @name Localization
  7491.     @{ */
  7492.     /*! */
  7493.     /// @}
  7494.  
  7495.  
  7496.     /*! @name Ungrouped
  7497.     @{ */
  7498.     /*! */
  7499.     /// @}
  7500.  
  7501.  
  7502.     /*! @name Object
  7503.     @{ */
  7504.     /*! */
  7505.     /// @}
  7506.  
  7507.  
  7508.     /*! @name Editing
  7509.     @{ */
  7510.     /*! */
  7511.     /// @}
  7512.  
  7513.  
  7514.     /*! @name Persistence
  7515.     @{ */
  7516.     /*! */
  7517.     /// @}
  7518.  
  7519.  };
  7520.  
  7521.  /*!
  7522.  @brief The most widely used button class.
  7523.  
  7524.  GuiButtonCtrl renders seperately of, but utilizes all of the functionality of GuiBaseButtonCtrl.
  7525.  This grants GuiButtonCtrl the versatility to be either of the 3 button types.
  7526.  
  7527.  @tsexample
  7528.  // Create a PushButton GuiButtonCtrl that calls randomFunction when clicked
  7529.  %button = new GuiButtonCtrl()
  7530.  {
  7531.     profile    = "GuiButtonProfile";
  7532.     buttonType = "PushButton";
  7533.     command    = "randomFunction();";
  7534.  };
  7535.  @endtsexample
  7536.  
  7537.   */
  7538.  class  GuiButtonCtrl : public GuiButtonBaseCtrl {
  7539.    public:
  7540.  
  7541.     /*! @name Button
  7542.     @{ */
  7543.     /*! */
  7544.     /*!
  7545.    
  7546.    
  7547.      */
  7548.     ColorI FontColor;
  7549.     /// @}
  7550.  
  7551.  
  7552.     /*! @name Button
  7553.     @{ */
  7554.     /*! */
  7555.     /// @}
  7556.  
  7557.  
  7558.     /*! @name Layout
  7559.     @{ */
  7560.     /*! */
  7561.     /// @}
  7562.  
  7563.  
  7564.     /*! @name Control
  7565.     @{ */
  7566.     /*! */
  7567.     /// @}
  7568.  
  7569.  
  7570.     /*! @name ToolTip
  7571.     @{ */
  7572.     /*! */
  7573.     /// @}
  7574.  
  7575.  
  7576.     /*! @name Editing
  7577.     @{ */
  7578.     /*! */
  7579.     /// @}
  7580.  
  7581.  
  7582.     /*! @name Localization
  7583.     @{ */
  7584.     /*! */
  7585.     /// @}
  7586.  
  7587.  
  7588.     /*! @name Ungrouped
  7589.     @{ */
  7590.     /*! */
  7591.     /// @}
  7592.  
  7593.  
  7594.     /*! @name Object
  7595.     @{ */
  7596.     /*! */
  7597.     /// @}
  7598.  
  7599.  
  7600.     /*! @name Editing
  7601.     @{ */
  7602.     /*! */
  7603.     /// @}
  7604.  
  7605.  
  7606.     /*! @name Persistence
  7607.     @{ */
  7608.     /*! */
  7609.     /// @}
  7610.  
  7611.  };
  7612.  
  7613.  /*!
  7614.  @brief A button that renders its various states (mouse over, pushed, etc.) from separate bitmaps.
  7615.  
  7616.  A bitmapped button is a push button that uses one or more texture images for rendering its individual states.
  7617.  
  7618.  To find the individual textures associated with the button, a naming scheme is used.  For each state a suffix is appended to the texture file name given in the GuiBitmapButtonCtrl::bitmap field:
  7619.  - "_n": Normal state.  This one will be active when no other state applies.
  7620.  - "_h": Highlighted state.  This applies when the mouse is hovering over the button.
  7621.  - "_d": Depressed state.  This applies when the left mouse button has been clicked on the button but not yet released.
  7622.  - "_i": Inactive state.  This applies when the button control has been deactivated (GuiControl::setActive())
  7623.  
  7624.  If a bitmap for a particular state cannot be found, the default bitmap will be used.  To disable all state-based bitmap functionality, set useStates to false which will make the control solely render from the bitmap specified in the bitmap field.
  7625.  
  7626.  @section guibitmapbutton_modifiers Per-Modifier Button Actions
  7627.  If GuiBitmapButtonCtrl::useModifiers is set to true, per-modifier button actions and textures are enabled.  This functionality allows to associate different images and different actions with a button depending on which modifiers are pressed on the keyboard by the user.
  7628.  
  7629.  When enabled, this functionality alters the texture lookup above by prepending the following strings to the suffixes listed above:
  7630.  - "": Default.  No modifier is pressed.
  7631.  - "_ctrl": Image to use when CTRL/CMD is down.
  7632.  - "_alt": Image to use when ALT is down.
  7633.  - "_shift": Image to use when SHIFT is down
  7634.  
  7635.  When this functionality is enabled, a new set of callbacks is used:
  7636.  - onDefaultClick: Button was clicked without a modifier being presssed.
  7637.  - onCtrlClick: Button was clicked with the CTRL/CMD key down.
  7638.  - onAltClick: Button was clicked with the ALT key down.
  7639.  - onShiftClick: Button was clicked with the SHIFT key down.
  7640.  
  7641.  GuiControl::command or GuiControl::onAction() still work as before when per-modifier functionality is enabled.
  7642.  
  7643.  Note that modifiers cannot be mixed.  If two or more modifiers are pressed, a single one will take precedence over the remaining modifiers.  The order of precedence corresponds to the order listed above.
  7644.  
  7645.  @tsexample
  7646.  // Create an OK button that will trigger an onOk() call on its parent when clicked:
  7647.  %okButton = new GuiBitmapButtonCtrl()
  7648.  {
  7649.     bitmap = "art/gui/okButton";
  7650.     autoFitExtents = true;
  7651.     command = "$ThisControl.getParent().onOk();";
  7652.  };
  7653.  @endtsexample
  7654.  
  7655.   */
  7656.  class  GuiBitmapButtonCtrl : public GuiButtonCtrl {
  7657.    public:
  7658.        /*! Called when per-modifier functionality is enabled and the user clicks on the button without any modifier pressed.
  7659. @ref guibitmapbutton_modifiers */
  7660.        void onDefaultClick();
  7661.  
  7662.        /*! Called when per-modifier functionality is enabled and the user clicks on the button with the CTRL key pressed.
  7663. @ref guibitmapbutton_modifiers */
  7664.        void onCtrlClick();
  7665.  
  7666.        /*! Called when per-modifier functionality is enabled and the user clicks on the button with the ALT key pressed.
  7667. @ref guibitmapbutton_modifiers */
  7668.        void onAltClick();
  7669.  
  7670.        /*! Called when per-modifier functionality is enabled and the user clicks on the button with the SHIFT key pressed.
  7671. @ref guibitmapbutton_modifiers */
  7672.        void onShiftClick();
  7673.  
  7674.     /*! Set the bitmap to show on the button.
  7675. @param path Path to the texture file in any of the supported formats.
  7676.  */
  7677.     virtual void setBitmap(( string path )) {}
  7678.  
  7679.     /*! @name Bitmap
  7680.     @{ */
  7681.     /*! */
  7682.     /*!
  7683.     Texture file to display on this button.
  7684. If useStates is false, this will be the file that renders on the control.  Otherwise, this will specify the default texture name to which the various state and modifier suffixes are appended to find the per-state and per-modifier (if enabled) textures.
  7685.    
  7686.      */
  7687.     filename bitmap;
  7688.     /*!
  7689.     Behavior for fitting the bitmap to the control extents.
  7690. If set to 'Stretched', the bitmap will be stretched both verticall and horizontally to fit inside the control's extents.
  7691.  
  7692. If set to 'Centered', the bitmap will stay at its original resolution centered in the control's rectangle (getting clipped if the control is smaller than the texture).
  7693.    
  7694.      */
  7695.     GuiBitmapMode bitmapMode;
  7696.     /*!
  7697.     If true, the control's extents will be set to match the bitmap's extents when setting the bitmap.
  7698. The bitmap extents will always be taken from the default/normal bitmap (in case the extents of the various bitmaps do not match up.)
  7699.    
  7700.      */
  7701.     bool autoFitExtents;
  7702.     /*!
  7703.     If true, per-modifier button functionality is enabled.
  7704. @ref guibitmapbutton_modifiers
  7705.    
  7706.      */
  7707.     bool useModifiers;
  7708.     /*!
  7709.     If true, per-mouse state button functionality is enabled.
  7710. Defaults to true.
  7711.  
  7712. If you do not use per-state images on this button set this to false to speed up the loading process by inhibiting searches for the individual images.
  7713.    
  7714.      */
  7715.     bool useStates;
  7716.     /// @}
  7717.  
  7718.  
  7719.     /*! @name Button
  7720.     @{ */
  7721.     /*! */
  7722.     /// @}
  7723.  
  7724.  
  7725.     /*! @name Button
  7726.     @{ */
  7727.     /*! */
  7728.     /// @}
  7729.  
  7730.  
  7731.     /*! @name Layout
  7732.     @{ */
  7733.     /*! */
  7734.     /// @}
  7735.  
  7736.  
  7737.     /*! @name Control
  7738.     @{ */
  7739.     /*! */
  7740.     /// @}
  7741.  
  7742.  
  7743.     /*! @name ToolTip
  7744.     @{ */
  7745.     /*! */
  7746.     /// @}
  7747.  
  7748.  
  7749.     /*! @name Editing
  7750.     @{ */
  7751.     /*! */
  7752.     /// @}
  7753.  
  7754.  
  7755.     /*! @name Localization
  7756.     @{ */
  7757.     /*! */
  7758.     /// @}
  7759.  
  7760.  
  7761.     /*! @name Ungrouped
  7762.     @{ */
  7763.     /*! */
  7764.     /// @}
  7765.  
  7766.  
  7767.     /*! @name Object
  7768.     @{ */
  7769.     /*! */
  7770.     /// @}
  7771.  
  7772.  
  7773.     /*! @name Editing
  7774.     @{ */
  7775.     /*! */
  7776.     /// @}
  7777.  
  7778.  
  7779.     /*! @name Persistence
  7780.     @{ */
  7781.     /*! */
  7782.     /// @}
  7783.  
  7784.  };
  7785.  
  7786.  class  GuiClickBitmapButton : public GuiBitmapButtonCtrl {
  7787.    public:
  7788.  
  7789.     /*! @name Bitmap
  7790.     @{ */
  7791.     /*! */
  7792.     /// @}
  7793.  
  7794.  
  7795.     /*! @name Button
  7796.     @{ */
  7797.     /*! */
  7798.     /// @}
  7799.  
  7800.  
  7801.     /*! @name Button
  7802.     @{ */
  7803.     /*! */
  7804.     /// @}
  7805.  
  7806.  
  7807.     /*! @name Layout
  7808.     @{ */
  7809.     /*! */
  7810.     /// @}
  7811.  
  7812.  
  7813.     /*! @name Control
  7814.     @{ */
  7815.     /*! */
  7816.     /// @}
  7817.  
  7818.  
  7819.     /*! @name ToolTip
  7820.     @{ */
  7821.     /*! */
  7822.     /// @}
  7823.  
  7824.  
  7825.     /*! @name Editing
  7826.     @{ */
  7827.     /*! */
  7828.     /// @}
  7829.  
  7830.  
  7831.     /*! @name Localization
  7832.     @{ */
  7833.     /*! */
  7834.     /// @}
  7835.  
  7836.  
  7837.     /*! @name Ungrouped
  7838.     @{ */
  7839.     /*! */
  7840.     /// @}
  7841.  
  7842.  
  7843.     /*! @name Object
  7844.     @{ */
  7845.     /*! */
  7846.     /// @}
  7847.  
  7848.  
  7849.     /*! @name Editing
  7850.     @{ */
  7851.     /*! */
  7852.     /// @}
  7853.  
  7854.  
  7855.     /*! @name Persistence
  7856.     @{ */
  7857.     /*! */
  7858.     /// @}
  7859.  
  7860.  };
  7861.  
  7862.  /// Stub class
  7863.  ///
  7864.  /// @note This is a stub class to ensure a proper class hierarchy. No
  7865.  ///       information was available for this class.
  7866.  class  del0 : public GuiClickBitmapButton {
  7867.    public:
  7868.  };
  7869.  
  7870.  /// Stub class
  7871.  ///
  7872.  /// @note This is a stub class to ensure a proper class hierarchy. No
  7873.  ///       information was available for this class.
  7874.  class  slot0 : public GuiButtonCtrl {
  7875.    public:
  7876.  };
  7877.  
  7878.  class  StreamGroup : public SimGroup {
  7879.    public:
  7880.     /*! const char* command */
  7881.     virtual void abort() {}
  7882.     virtual int getNumOfRegisteredObjects() {}
  7883.     virtual void addSortingGroup((U32 id, F32 maxDistance, F32 weight)) {}
  7884.  
  7885.     /*! @name Ungrouped
  7886.     @{ */
  7887.     /*! */
  7888.     /// @}
  7889.  
  7890.  
  7891.     /*! @name Object
  7892.     @{ */
  7893.     /*! */
  7894.     /// @}
  7895.  
  7896.  
  7897.     /*! @name Editing
  7898.     @{ */
  7899.     /*! */
  7900.     /// @}
  7901.  
  7902.  
  7903.     /*! @name Persistence
  7904.     @{ */
  7905.     /*! */
  7906.     /// @}
  7907.  
  7908.  
  7909.     /*! @name Callbacks
  7910.     @{ */
  7911.     /*! */
  7912.     /*!
  7913.    
  7914.    
  7915.      */
  7916.     string onBeginFastLoadCommand;
  7917.     /*!
  7918.    
  7919.    
  7920.      */
  7921.     string onEndFastLoadCommand;
  7922.     /*!
  7923.    
  7924.    
  7925.      */
  7926.     string onBeginLoadCommand;
  7927.     /*!
  7928.    
  7929.    
  7930.      */
  7931.     string onEndLoadCommand;
  7932.     /*!
  7933.    
  7934.    
  7935.      */
  7936.     string onMainLoopCommand;
  7937.     /// @}
  7938.  
  7939.  };
  7940.  
  7941.  /// Stub class
  7942.  ///
  7943.  /// @note This is a stub class to ensure a proper class hierarchy. No
  7944.  ///       information was available for this class.
  7945.  class  theStreamGroup : public StreamGroup {
  7946.    public:
  7947.  };
  7948.  
  7949.  class  SimManagerEx : public SimGroup {
  7950.    public:
  7951.     /*! ZoneID newBaseZone */
  7952.     virtual bool changeBaseZone() {}
  7953.     /*! bool flag */
  7954.     virtual void setShutdownFlag() {}
  7955.     virtual void performShutdown() {}
  7956.     /*! U32 geoID */
  7957.     virtual void loadStartRegion() {}
  7958.     /*! U32 geoID */
  7959.     virtual void reloadRegion() {}
  7960.  
  7961.     /*! @name Ungrouped
  7962.     @{ */
  7963.     /*! */
  7964.     /// @}
  7965.  
  7966.  
  7967.     /*! @name Object
  7968.     @{ */
  7969.     /*! */
  7970.     /// @}
  7971.  
  7972.  
  7973.     /*! @name Editing
  7974.     @{ */
  7975.     /*! */
  7976.     /// @}
  7977.  
  7978.  
  7979.     /*! @name Persistence
  7980.     @{ */
  7981.     /*! */
  7982.     /// @}
  7983.  
  7984.  
  7985.     /*! @name Misc
  7986.     @{ */
  7987.     /*! */
  7988.     /*!
  7989.      */
  7990.     float baseZoneBorderSize;
  7991.     /// @}
  7992.  
  7993.  };
  7994.  
  7995.  /// Stub class
  7996.  ///
  7997.  /// @note This is a stub class to ensure a proper class hierarchy. No
  7998.  ///       information was available for this class.
  7999.  class  MissionGroup : public SimManagerEx {
  8000.    public:
  8001.  };
  8002.  
  8003.  /*!
  8004.  @brief A datablock describing an individual decal.
  8005.  
  8006.  @tsexample
  8007.  datablock DecalData(ScorchRXDecal)
  8008.  {
  8009.     Material = "DECAL_RocketEXP";
  8010.     size = "5.0";
  8011.     lifeSpan = "50000";
  8012.     randomize = "1";
  8013.     texRows = "2";
  8014.     texCols = "2";
  8015.     clippingAngle = "60";
  8016.  };
  8017.  @endtsexample
  8018.  
  8019.  @ingroup FX
  8020.   */
  8021.  class  DecalData : public SimDataBlock {
  8022.    public:
  8023.     /*! Reloads imagemap textures for this DecalData.
  8024. @tsexample
  8025. // Inform the decal object to reload its imagemap and frame data.
  8026. %decalData.postApply();
  8027. @endtsexample
  8028.  */
  8029.     virtual void postApply(()) {}
  8030.  
  8031.     /*! @name Decal
  8032.     @{ */
  8033.     /*! */
  8034.     /*!
  8035.     Width/height in meters before scale is applied.
  8036.    
  8037.      */
  8038.     float size;
  8039.     /*!
  8040.     Material for this decal type.
  8041.    
  8042.      */
  8043.     string Material;
  8044.     /*!
  8045.     Milliseconds of sim time for decal to expire.
  8046.    
  8047.      */
  8048.     int lifeSpan;
  8049.     /*!
  8050.     Milliseconds of sim time for decal to fade after expiration.
  8051.    
  8052.      */
  8053.     int fadeTime;
  8054.     /// @}
  8055.  
  8056.  
  8057.     /*! @name Rendering
  8058.     @{ */
  8059.     /*! */
  8060.     /*!
  8061.     LOD value - size in pixels at which decals of this type begin to fade out. This should be a larger value than fadeEndPixelSize. However, you may also set this to a negative value to disable lod-based fading.
  8062.    
  8063.      */
  8064.     float fadeStartPixelSize;
  8065.     /*!
  8066.     LOD value - size in pixels at which decals of this type are fully faded out. This should be a smaller value than fadeStartPixelSize.
  8067.    
  8068.      */
  8069.     float fadeEndPixelSize;
  8070.     /*!
  8071.     Default renderPriority for decals of this type.
  8072.    
  8073.      */
  8074.     char renderPriority;
  8075.     /*!
  8076.     The angle in degrees used to clip geometry that faces away from the decal projection direction.
  8077.    
  8078.      */
  8079.     float clippingAngle;
  8080.     /// @}
  8081.  
  8082.  
  8083.     /*! @name Texturing
  8084.     @{ */
  8085.     /*! */
  8086.     /*!
  8087.     Index of texture rectangle to use for this decal.
  8088.    
  8089.      */
  8090.     int frame;
  8091.     /*!
  8092.     If true, a random texture rectangle is picked for each instance of this decal.
  8093.    
  8094.      */
  8095.     bool randomize;
  8096.     /*!
  8097.     Number of rows on the supplied imagemap.
  8098.    
  8099.      */
  8100.     int texRows;
  8101.     /*!
  8102.     Number of columns on the supplied imagemap.
  8103.    
  8104.      */
  8105.     int texCols;
  8106.     /*!
  8107.     Number of individual frames in this imagemap.
  8108.    
  8109.      */
  8110.     int textureCoordCount;
  8111.     /*!
  8112.     A RectF in uv space - eg ( topleft.x topleft.y extent.x extent.y )
  8113.    
  8114.      */
  8115.     RectF textureCoords;
  8116.     /// @}
  8117.  
  8118.  
  8119.     /*! @name Ungrouped
  8120.     @{ */
  8121.     /*! */
  8122.     /// @}
  8123.  
  8124.  
  8125.     /*! @name Object
  8126.     @{ */
  8127.     /*! */
  8128.     /// @}
  8129.  
  8130.  
  8131.     /*! @name Editing
  8132.     @{ */
  8133.     /*! */
  8134.     /// @}
  8135.  
  8136.  
  8137.     /*! @name Persistence
  8138.     @{ */
  8139.     /*! */
  8140.     /// @}
  8141.  
  8142.  };
  8143.  
  8144.  /// Stub class
  8145.  ///
  8146.  /// @note This is a stub class to ensure a proper class hierarchy. No
  8147.  ///       information was available for this class.
  8148.  class  AnimalFootMark : public DecalData {
  8149.    public:
  8150.  };
  8151.  
  8152.  /// Stub class
  8153.  ///
  8154.  /// @note This is a stub class to ensure a proper class hierarchy. No
  8155.  ///       information was available for this class.
  8156.  class  ScorchRXDecal : public DecalData {
  8157.    public:
  8158.  };
  8159.  
  8160.  /// Stub class
  8161.  ///
  8162.  /// @note This is a stub class to ensure a proper class hierarchy. No
  8163.  ///       information was available for this class.
  8164.  class  ScorchBigDecal : public DecalData {
  8165.    public:
  8166.  };
  8167.  
  8168.  /*!
  8169.  @brief Provides the basis for implementing a multiplayer game protocol.
  8170.  
  8171.  NetConnection combines a low-level notify protocol implemented in ConnectionProtocol with a SimGroup, and implements several distinct subsystems:
  8172.  
  8173.  - <b>Event Manager</b>  This is responsible for transmitting NetEvents over the wire.  It deals with ensuring that the various types of NetEvents are delivered appropriately, and with notifying the event of its delivery status.
  8174.  
  8175.  - <b>Move Manager</b>  This is responsible for transferring a Move to the server 32 times a second (on the client) and applying it to the control object (on the server).
  8176.  
  8177.  - <b>Ghost Manager</b>  This is responsible for doing scoping calculations (on the server side) and transmitting most-recent ghost information to the client.
  8178.  
  8179.  - <b>File Transfer</b>  It is often the case that clients will lack important files when connecting to a server which is running a mod or new map. This subsystem allows the server to transfer such files to the client.
  8180.  
  8181.  - <b>Networked String Table</b>  String data can easily soak up network bandwidth, so for efficiency, we implement a networked string table. We can then notify the connection of strings we will reference often, such as player names, and transmit only a tag, instead of the whole string.
  8182.  
  8183.  - <b>Demo Recording</b>  A demo in Torque is a log of the network traffic between client and server; when a NetConnection records a demo, it simply logs this data to a file. When it plays a demo back, it replays the logged data.
  8184.  
  8185.  - <b>Connection Database</b>  This is used to keep track of all the NetConnections; it can be iterated over (for instance, to send an event to all active connections), or queried by address.
  8186.  
  8187.  The NetConnection is a SimGroup. On the client side, it contains all the objects which have been ghosted to that client. On the server side, it is empty; it can be used (typically in script) to hold objects related to the connection. For instance, you might place an observation camera in the NetConnnection. In both cases, when the connection is destroyed, so are the contained objects.
  8188.  
  8189.  The NetConnection also has the concept of local connections.  These are used when the client and server reside in the same process.  A local connection is typically required to use the standard Torque world building tools.  A local connection is also required when building a single player game.
  8190.  
  8191.  @see @ref Networking, @ref ghosting_scoping, @ref local_connections, GameConnection, AIConnection, and AIClient.
  8192.  
  8193.  @ingroup Networking
  8194.   */
  8195.  class  NetConnection : public SimGroup {
  8196.    public:
  8197.     virtual Script onConnectRequestRejected(( string this, string msg )) {}
  8198.     /*! Returns the ghost-index for an object.
  8199.  
  8200. @ingroup AFX */
  8201.     virtual int GetGhostIndex(( NetObject obj )) {}
  8202.     /*! Resolves a ghost-index into an object ID.
  8203.  
  8204. @ingroup AFX */
  8205.     virtual int ResolveGhost(( int ghostIndex )) {}
  8206.     /*! tagstring func, ... */
  8207.     virtual void sendCommand() {}
  8208.     /*! Returns amount of pending GuaranteedOrdered netEvents on this NetConnection. */
  8209.     virtual int getEventQueueSize() {}
  8210.     /*! Returns amount of NetEvents sent over this NetConnection. */
  8211.     virtual int getEventsSent() {}
  8212.     virtual int getMaxPacketDataSize() {}
  8213.     virtual int getBytesSentPerTick() {}
  8214.     virtual int getBytesReceivedPerTick() {}
  8215.     virtual int getEventsSentPerTick() {}
  8216.     virtual int getEventBytesSentPerTick() {}
  8217.     virtual int getEventsReceivedPerTick() {}
  8218.     virtual int getEventsBytesReceivedPerTick() {}
  8219.     virtual int getGhostUpdatesPerTick() {}
  8220.     virtual int getGhostUpdatesBytesPerTick() {}
  8221.     /*! @brief Returns the far end network address for the connection.
  8222.  
  8223. The address will be in one of the following forms:
  8224. - <b>IP:Broadcast:&lt;port&gt;</b> for broadcast type addresses
  8225. - <b>IP:&lt;address&gt;:&lt;port&gt;</b> for IP addresses
  8226. - <b>local</b> when connected locally (server and client running in same process
  8227.  */
  8228.     virtual string getAddress(()) {}
  8229.     /*! Returns the IP-address we're connected to. */
  8230.     virtual string getIP() {}
  8231.     /*! Returns the port we're connected to. */
  8232.     virtual string getPort() {}
  8233.     /*! @brief Returns the average round trip time (in ms) for the connection.
  8234.  
  8235. The round trip time is recalculated every time a notify packet is received.  Notify packets are used to information the connection that the far end successfully received the sent packet.
  8236.  */
  8237.     virtual int getPing(()) {}
  8238.     /*! @brief Returns the percentage of packets lost per tick.
  8239.  
  8240. @note This method is not yet hooked up.
  8241.  */
  8242.     virtual int getPacketLoss(()) {}
  8243.     /*! @brief Ensures that all configured packet rates and sizes meet minimum requirements.
  8244.  
  8245. This method is normally only called when a NetConnection class is first constructed.  It need only be manually called if the global variables that set the packet rate or size have changed.
  8246.  
  8247. @note If $pref::Net::PacketRateToServer, $pref::Net::PacketRateToClient or $pref::Net::PacketSize have been changed since a NetConnection has been created, this method must be called on all connections for them to follow the new rates or size.
  8248.  */
  8249.     virtual void checkMaxRate(()) {}
  8250.     /*! @brief Sets if debug statements should be written to the console log.
  8251.  
  8252. @note Only valid if the executable has been compiled with TORQUE_DEBUG_NET.
  8253.  */
  8254.     virtual void setLogging(( bool state )) {}
  8255.     /*! @brief On the client, convert a ghost ID from this connection to a real SimObject ID.
  8256.  
  8257. Torque's network ghosting system only exchanges ghost ID's between the server and client.  Use this method on the client to discover an object's local SimObject ID when you only have a ghost ID.
  8258. @param ghostID The ghost ID of the object as sent by the server.
  8259. @returns The SimObject ID of the object, or 0 if it could not be resolved.
  8260.  
  8261. @tsexample
  8262. %object = ServerConnection.resolveGhostID( %ghostId );
  8263. @endtsexample
  8264.  
  8265. @see @ref ghosting_scoping for a description of the ghosting system.
  8266.  
  8267.  */
  8268.     virtual int resolveGhostID(( int ghostID )) {}
  8269.     /*! @brief Connects to the remote address.
  8270.  
  8271. Attempts to connect with another NetConnection on the given address.  Typically once connected, a game's information is passed along from the server to the client, followed by the player entering the game world.  The actual procedure is dependent on the NetConnection subclass that is used.  i.e. GameConnection.
  8272. @param remoteAddress The address to connect to in the form of IP:&lt;address&gt;:&lt;port&rt; although the <i>IP:</i> portion is optional.  The <i>address</i> portion may be in the form of w.x.y.z or as a host name, in which case a DNS lookup will be performed.  You may also substitue the word <i>broadcast</i> for the address to broadcast the connect request over the local subnet.
  8273.  
  8274. @see NetConnection::connectLocal() to connect to a server running within the same process as the client.
  8275.  */
  8276.     virtual void connect(( string remoteAddress )) {}
  8277.     virtual bool isConnectionToServer(()) {}
  8278.     virtual int getRemoteServerID(()) {}
  8279.     /*! @brief Returns the number of active ghosts on the connection. */
  8280.     virtual int getGhostsActive(()) {}
  8281.     virtual void dumpGhostInfo(()) {}
  8282.  
  8283.     /*! @name Character
  8284.     @{ */
  8285.     /*! */
  8286.     /*!
  8287.    
  8288.    
  8289.      */
  8290.     int accountId;
  8291.     /*!
  8292.    
  8293.    
  8294.      */
  8295.     int charId;
  8296.     /// @}
  8297.  
  8298.  
  8299.     /*! @name Ungrouped
  8300.     @{ */
  8301.     /*! */
  8302.     /// @}
  8303.  
  8304.  
  8305.     /*! @name Object
  8306.     @{ */
  8307.     /*! */
  8308.     /// @}
  8309.  
  8310.  
  8311.     /*! @name Editing
  8312.     @{ */
  8313.     /*! */
  8314.     /// @}
  8315.  
  8316.  
  8317.     /*! @name Persistence
  8318.     @{ */
  8319.     /*! */
  8320.     /// @}
  8321.  
  8322.  };
  8323.  
  8324.  /*!
  8325.  @brief The game-specific subclass of NetConnection.
  8326.  
  8327.  The GameConnection introduces the concept of the control object.  The control object is simply the object that the client is associated with that network connection controls.  By default the control object is an instance of the Player class, but can also be an instance of Camera (when editing the mission, for example), or any other ShapeBase derived class as appropriate for the game.
  8328.  
  8329.  Torque uses a model in which the server is the authoritative master of the simulation.  To prevent clients from cheating, the server simulates all player moves and then tells the client where his player is in the world.  This model, while secure, can have problems.  If the network latency is high, this round-trip time can give the player a very noticeable sense of movement lag.  To correct this problem, the game uses a form of prediction - it simulates the movement of the control object on the client and on the server both.  This way the client doesn't need to wait for round-trip verification of his moves.  Only in the case of a force acting on the control object on the server that doesn't exist on the client does the client's position need to be forcefully changed.
  8330.  
  8331.  To support this, all control objects (derivative of ShapeBase) must supply a writePacketData() and readPacketData() function that send enough data to accurately simulate the object on the client.  These functions are only called for the current control object, and only when the server can determine that the client's simulation is somehow out of sync with the server.  This occurs usually if the client is affected by a force not present on the server (like an interpolating object) or if the server object is affected by a server only force (such as the impulse from an explosion).
  8332.  
  8333.  The Move structure is a 32 millisecond snapshot of player input, containing x, y, and z positional and rotational changes as well as trigger state changes. When time passes in the simulation moves are collected (depending on how much time passes), and applied to the current control object on the client. The same moves are then packed over to the server in GameConnection::writePacket(), for processing on the server's version of the control object.
  8334.  
  8335.  @see @ref Networking, NetConnection, ShapeBase
  8336.  
  8337.  @ingroup Networking
  8338.   */
  8339.  class  GameConnection : public NetConnection {
  8340.    public:
  8341.     virtual Script onObjectRollover(()) {}
  8342.     virtual Script resetSelection(( string this )) {}
  8343.     virtual Script onObjectDeselected(( string this, string obj )) {}
  8344.     virtual Script onObjectSelected(( string this, string obj )) {}
  8345.     virtual Script onConnectRequestTimedOut(( string this )) {}
  8346.     virtual Script onConnectionError(( string this, string msg )) {}
  8347.     virtual Script onConnectionDropped(( string this, string msg )) {}
  8348.     virtual Script onConnectionTimedOut(( string this )) {}
  8349.     virtual Script listObjects(( string this )) {}
  8350.     virtual Script onConnectionAccepted(( string this )) {}
  8351.     virtual Script onFlash(( string this, string state )) {}
  8352.     virtual Script setLagIcon(( string this, string state )) {}
  8353.     virtual Script initialControlSet(( string this )) {}
  8354.        /*! @brief Called on the client when the connection to the server times out.
  8355.  
  8356.  */
  8357.        void onConnectionTimedOut();
  8358.  
  8359.        /*! @brief Called on the client when the connection to the server has been established.
  8360.  
  8361.  */
  8362.        void onConnectionAccepted();
  8363.  
  8364.        /*! @brief Called when connection attempts have timed out.
  8365.  
  8366.  */
  8367.        void onConnectRequestTimedOut();
  8368.  
  8369.        /*! @brief Called on the client when the connection to the server has been dropped.
  8370.  
  8371. @param reason The reason why the connection was dropped.
  8372.  
  8373.  */
  8374.        void onConnectionDropped( string reason );
  8375.  
  8376.        /*! @brief Called on the client when the connection to the server has been rejected.
  8377.  
  8378. @param reason The reason why the connection request was rejected.
  8379.  
  8380.  */
  8381.        void onConnectRequestRejected( string reason );
  8382.  
  8383.        /*! @brief Called on the client when there is an error with the connection to the server.
  8384.  
  8385. @param errorString The connection error text.
  8386.  
  8387.  */
  8388.        void onConnectionError( string errorString );
  8389.  
  8390.        /*! @brief Called on the server when the client's connection has been dropped.
  8391.  
  8392. @param disconnectReason The reason why the connection was dropped.
  8393.  
  8394.  */
  8395.        void onDrop( string disconnectReason );
  8396.  
  8397.        /*! @brief Called on the client when the first control object has been set by the server and we are now ready to go.
  8398.  
  8399. A common action to perform when this callback is called is to switch the GUI canvas from the loading screen and over to the 3D game GUI. */
  8400.        void initialControlSet();
  8401.  
  8402.        /*! @brief Called on the client to display the lag icon.
  8403.  
  8404. When the connection with the server is lagging, this callback is called to allow the game GUI to display some indicator to the player.
  8405.  
  8406. @param state Set to true if the lag icon should be displayed.
  8407.  
  8408.  */
  8409.        void setLagIcon( bool state );
  8410.  
  8411.        /*! @brief Called on the server when all datablocks has been sent to the client.
  8412.  
  8413. During phase 1 of the mission download, all datablocks are sent from the server to the client.  Once all datablocks have been sent, this callback is called and the mission download procedure may move on to the next phase.
  8414.  
  8415. @param sequence The sequence is common between the server and client and ensures that the client is acting on the most recent mission start process.  If an errant network packet (one that was lost but has now been found) is received by the client with an incorrect sequence, it is just ignored.  This sequence number is updated on the server every time a mission is loaded.
  8416.  
  8417. @see GameConnection::transmitDataBlocks()
  8418.  
  8419.  */
  8420.        void onDataBlocksDone( int sequence );
  8421.  
  8422.        /*! @brief Called on the client when the damage flash or white out states change.
  8423.  
  8424. When the server changes the damage flash or white out values, this callback is called either is on or both are off.  Typically this is used to enable the flash postFx.
  8425.  
  8426. @param state Set to true if either the damage flash or white out conditions are active.
  8427.  
  8428.  */
  8429.        void onFlash( bool state );
  8430.  
  8431.     /*! @brief On the server, sets the object that the client will control.
  8432.  
  8433. By default the control object is an instance of the Player class, but can also be an instance of Camera (when editing the mission, for example), or any other ShapeBase derived class as appropriate for the game.
  8434.  
  8435. @param ctrlObj The GameBase object on the server to control. */
  8436.     virtual bool setControlObject(( GameBase ctrlObj )) {}
  8437.     /*! @brief On the server, returns the object that the client is controlling.By default the control object is an instance of the Player class, but can also be an instance of Camera (when editing the mission, for example), or any other ShapeBase derived class as appropriate for the game.
  8438.  
  8439. @see GameConnection::setControlObject()
  8440.  
  8441.  */
  8442.     virtual string getControlObject(()) {}
  8443.     /*! Resets move list and takes out the client from backlogged state. */
  8444.     virtual void resetMoveList(()) {}
  8445.     /*! @brief Returns true if the object being controlled by the client is making use of a rotation damped camera.
  8446.  
  8447. @see Camera */
  8448.     virtual bool isControlObjectRotDampedCamera(()) {}
  8449.     /*! @brief Used on the server to play a 2D sound that is not attached to any object.
  8450.  
  8451. @param profile The SFXProfile that defines the sound to play.
  8452.  
  8453. @tsexample
  8454. function ServerPlay2D(%profile)
  8455. {
  8456.    // Play the given sound profile on every client.
  8457.    // The sounds will be transmitted as an event, not attached to any object.
  8458.    for(%idx = 0; %idx < ClientGroup.getCount(); %idx++)
  8459.       ClientGroup.getObject(%idx).play2D(%profile);
  8460. }
  8461. @endtsexample
  8462.  
  8463.  */
  8464.     virtual bool play2D(( SFXProfile profile )) {}
  8465.     /*! @brief Used on the server to play a 3D sound that is not attached to any object.
  8466.  
  8467. @param profile The SFXProfile that defines the sound to play.
  8468. @param location The position and orientation of the 3D sound given in the form of "x y z ax ay az aa".
  8469.  
  8470. @tsexample
  8471. function ServerPlay3D(%profile,%transform)
  8472. {
  8473.    // Play the given sound profile at the given position on every client
  8474.    // The sound will be transmitted as an event, not attached to any object.
  8475.    for(%idx = 0; %idx < ClientGroup.getCount(); %idx++)
  8476.       ClientGroup.getObject(%idx).play3D(%profile,%transform);
  8477. }
  8478. @endtsexample
  8479.  
  8480.  */
  8481.     virtual bool play3D(( SFXProfile profile, TransformF location )) {}
  8482.     /*! @brief Sets the size of the chase camera's matrix queue.
  8483.  
  8484. @note This sets the queue size across all GameConnections.
  8485.  
  8486. @note This is not currently hooked up.
  8487.  
  8488.  */
  8489.     virtual bool chaseCam(( int size )) {}
  8490.     /*! @brief Returns the default field of view as used by the control object's camera.
  8491.  
  8492.  */
  8493.     virtual float getControlCameraDefaultFov(()) {}
  8494.     /*! @brief On the server, sets the control object's camera's field of view.
  8495.  
  8496. @param newFOV New field of view (in degrees) to force the control object's camera to use.  This value is clamped to be within the range of 1 to 179 degrees.
  8497.  
  8498. @note When transmitted over the network to the client, the resolution is limited to one degree.  Any fraction is dropped. */
  8499.     virtual void setControlCameraFov(( float newFOV )) {}
  8500.     /*! @brief Returns the field of view as used by the control object's camera.
  8501.  
  8502.  */
  8503.     virtual float getControlCameraFov(()) {}
  8504.     virtual int getCharacterId(()) {}
  8505.     virtual void setPrimaryConnection(( bool isPrimary )) {}
  8506.     virtual bool isPrimaryConnection(()) {}
  8507.     /*! @brief On the client, this static mehtod will return the connection to the server, if any.
  8508.  
  8509. @returns The SimObject ID of the server connection, or -1 if none is found.
  8510.  
  8511.  */
  8512.     virtual int getServerConnection(()) {}
  8513.     /*! @brief On the server, set the connection's camera object used when not viewing through the control object.
  8514.  
  8515. @see GameConnection::getCameraObject() and GameConnection::clearCameraObject()
  8516.  
  8517.  */
  8518.     virtual bool setCameraObject(( GameBase camera )) {}
  8519.     /*! @brief Returns the connection's camera object used when not viewing through the control object.
  8520.  
  8521. @see GameConnection::setCameraObject() and GameConnection::clearCameraObject()
  8522.  
  8523.  */
  8524.     virtual string getCameraObject(()) {}
  8525.     /*! @brief Clear the connection's camera object reference.
  8526.  
  8527. @see GameConnection::setCameraObject() and GameConnection::getCameraObject()
  8528.  
  8529.  */
  8530.     virtual void clearCameraObject(()) {}
  8531.     /*! @brief Returns true if this connection is in first person mode.
  8532.  
  8533. @note Transition to first person occurs over time via mCameraPos, so this won't immediately return true after a set.
  8534.  
  8535.  */
  8536.     virtual bool isFirstPerson(()) {}
  8537.     /*! @brief On the server, sets this connection into or out of first person mode.
  8538.  
  8539. @param firstPerson Set to true to put the connection into first person mode.
  8540.  
  8541.  */
  8542.     virtual void setFirstPerson(( bool firstPerson )) {}
  8543.     virtual bool setSelectedObj((object, [propagate_to_client])) {}
  8544.     virtual int getSelectedObj(()) {}
  8545.     virtual int getRolloverObj(()) {}
  8546.     virtual int getPreSelectedObj(()) {}
  8547.     virtual void clearSelectedObj(([propagate_to_client])) {}
  8548.     virtual void setPreSelectedObjFromRollover(()) {}
  8549.     virtual bool setRolloverObj((string objName)) {}
  8550.     virtual bool setPreSelectedObj((string objName)) {}
  8551.     virtual void clearPreSelectedObj(()) {}
  8552.     virtual void setSelectedObjFromPreSelected(()) {}
  8553.  
  8554.     /*! @name Character
  8555.     @{ */
  8556.     /*! */
  8557.     /// @}
  8558.  
  8559.  
  8560.     /*! @name Ungrouped
  8561.     @{ */
  8562.     /*! */
  8563.     /// @}
  8564.  
  8565.  
  8566.     /*! @name Object
  8567.     @{ */
  8568.     /*! */
  8569.     /// @}
  8570.  
  8571.  
  8572.     /*! @name Editing
  8573.     @{ */
  8574.     /*! */
  8575.     /// @}
  8576.  
  8577.  
  8578.     /*! @name Persistence
  8579.     @{ */
  8580.     /*! */
  8581.     /// @}
  8582.  
  8583.  };
  8584.  
  8585.  class  ServerConnection : public ServerConnection {
  8586.    public:
  8587.     virtual Script onCharSelected(( string this, string geoID )) {}
  8588.  };
  8589.  
  8590.  /*!
  8591.  @brief A boolean switch used to modify playlist behavior.
  8592.  
  8593.  Sound system states are used to allow playlist controllers to make decisions based on global state.  This is useful, for example, to couple audio playback to gameplay state.  Certain states may, for example, represent different locations that the listener can be in, like underwater, in open space, or indoors.  Other states could represent moods of the current gameplay situation, like, for example, an aggressive mood during combat.
  8594.  
  8595.  By activating and deactivating sound states according to gameplay state, a set of concurrently running playlists may react and adapt to changes in the game.
  8596.  
  8597.  @section SFXState_activation Activation and Deactivation
  8598.  At any time, a given state can be either active or inactive.  Calling activate() on a state increases an internal counter and calling deactivate() decreases the counter.  Only when the count reaches zero will the state be deactivated.
  8599.  
  8600.  In addition to the activation count, states also maintain a disabling count.  Calling disable() increases this count and calling enable() decreases it.  As long as this count is greater than zero, a given state will not be activated even if its activation count is non-zero.  Calling disable() on an active state will not only increase the disabling count but also deactivate the state.  Calling enable() on a state with a positive activation count will re-activate the state when the disabling count reaches zero.
  8601.  
  8602.  @section SFXState_dependencies State Dependencies
  8603.  By listing other states in in its #includedStates and #excludedStates fields, a state may automatically trigger the activation or disabling of other states in the sytem when it is activated.  This allows to form dependency chains between individual states.
  8604.  
  8605.  @tsexample
  8606.  // State indicating that the listener is submerged.
  8607.  singleton SFXState( AudioLocationUnderwater )
  8608.  {
  8609.     parentGroup = AudioLocation;
  8610.     // AudioStateExclusive is a class defined in the core scripts that will automatically
  8611.     // ensure for a state to deactivate all the sibling SFXStates in its parentGroup when it
  8612.     // is activated.
  8613.     className = "AudioStateExclusive";
  8614.  };
  8615.  
  8616.  // State suitable e.g. for combat.
  8617.  singleton SFXState( AudioMoodAggressive )
  8618.  {
  8619.     parentGroup = AudioMood;
  8620.     className = "AudioStateExclusive";
  8621.  };
  8622.  @endtsexample
  8623.  
  8624.  @see SFXPlayList
  8625.  @see SFXController
  8626.  @see SFXPlayList::state
  8627.  @see SFXPlayList::stateMode
  8628.  
  8629.  @ref SFX_interactive
  8630.  
  8631.  @ingroup SFX
  8632.   */
  8633.  class  SFXState : public SimDataBlock {
  8634.    public:
  8635.        /*! Called when the state goes from inactive to active. */
  8636.        void onActivate();
  8637.  
  8638.        /*! called when the state goes from active to deactive. */
  8639.        void onDeactivate();
  8640.  
  8641.     /*! Test whether the state is currently active.
  8642. This is true when the activation count is >0 and the disabling count is =0.
  8643. @return True if the state is currently active.
  8644. @see activate */
  8645.     virtual bool isActive(()) {}
  8646.     /*! Increase the activation count on the state.
  8647. If the state isn't already active and it is not disabled, the state will be activated.
  8648. @see isActive
  8649. @see deactivate
  8650.  */
  8651.     virtual void activate(()) {}
  8652.     /*! Decrease the activation count on the state.
  8653. If the count reaches zero and the state was not disabled, the state will be deactivated.
  8654. @see isActive
  8655. @see activate
  8656.  */
  8657.     virtual void deactivate(()) {}
  8658.     /*! Test whether the state is currently disabled.
  8659. This is true when the disabling count of the state is non-zero.
  8660. @return True if the state is disabled.
  8661.  
  8662. @see disable
  8663.  */
  8664.     virtual bool isDisabled(()) {}
  8665.     /*! Increase the disabling count of the state.
  8666. If the state is currently active, it will be deactivated.
  8667. @see isDisabled
  8668.  */
  8669.     virtual void disable(()) {}
  8670.     /*! Decrease the disabling count of the state.
  8671. If the disabling count reaches zero while the activation count is still non-zero, the state will be reactivated again.
  8672. @see isDisabled
  8673.  */
  8674.     virtual void enable(()) {}
  8675.  
  8676.     /*! @name State
  8677.     @{ */
  8678.     /*! */
  8679.     /*!
  8680.     States that will automatically be activated when this state is activated.
  8681.  
  8682. @ref SFXState_activation
  8683.    
  8684.      */
  8685.     SFXState includedStates;
  8686.     /*!
  8687.     States that will automatically be disabled when this state is activated.
  8688.  
  8689. @ref SFXState_activation
  8690.    
  8691.      */
  8692.     SFXState excludedStates;
  8693.     /// @}
  8694.  
  8695.  
  8696.     /*! @name Ungrouped
  8697.     @{ */
  8698.     /*! */
  8699.     /// @}
  8700.  
  8701.  
  8702.     /*! @name Object
  8703.     @{ */
  8704.     /*! */
  8705.     /// @}
  8706.  
  8707.  
  8708.     /*! @name Editing
  8709.     @{ */
  8710.     /*! */
  8711.     /// @}
  8712.  
  8713.  
  8714.     /*! @name Persistence
  8715.     @{ */
  8716.     /*! */
  8717.     /// @}
  8718.  
  8719.  };
  8720.  
  8721.  /// Stub class
  8722.  ///
  8723.  /// @note This is a stub class to ensure a proper class hierarchy. No
  8724.  ///       information was available for this class.
  8725.  class  AudioBattleState : public SFXState {
  8726.    public:
  8727.  };
  8728.  
  8729.  /// Stub class
  8730.  ///
  8731.  /// @note This is a stub class to ensure a proper class hierarchy. No
  8732.  ///       information was available for this class.
  8733.  class  AudioTensionState : public SFXState {
  8734.    public:
  8735.  };
  8736.  
  8737.  /// Stub class
  8738.  ///
  8739.  /// @note This is a stub class to ensure a proper class hierarchy. No
  8740.  ///       information was available for this class.
  8741.  class  AudioPeacefulState : public SFXState {
  8742.    public:
  8743.  };
  8744.  
  8745.  /// Stub class
  8746.  ///
  8747.  /// @note This is a stub class to ensure a proper class hierarchy. No
  8748.  ///       information was available for this class.
  8749.  class  AudioState : public SimGroup {
  8750.    public:
  8751.  };
  8752.  
  8753.  /*!
  8754.  @brief Abstract base class for sound data that can be played back by the sound system.
  8755.  
  8756.  The term "track" is used in the sound system to refer to any entity that can be played back as a sound source.  These can be individual files (SFXProfile), patterns of other tracks (SFXPlayList), or special sound data defined by a device layer (SFXFMODEvent).
  8757.  
  8758.  Any track must be paired with a SFXDescription that tells the sound system how to set up playback for the track.
  8759.  
  8760.  All objects that are of type SFXTrack will automatically be added to @c SFXTrackSet.
  8761.  
  8762.  @note This class cannot be instantiated directly.
  8763.  
  8764.  @ingroup SFX
  8765.  @ingroup Datablocks
  8766.   */
  8767.  class  SFXTrack : public SimDataBlock {
  8768.    public:
  8769.  
  8770.     /*! @name Sound
  8771.     @{ */
  8772.     /*! */
  8773.     /*!
  8774.     Playback setup description for this track.
  8775.  
  8776. If unassigned, the description named "AudioEffects" will automatically be assigned to the track.  If this description is not defined, track creation will fail.
  8777.    
  8778.      */
  8779.     SFXDescription Description;
  8780.     /*!
  8781.     Parameters to automatically attach to SFXSources created from this track.
  8782. Individual parameters are identified by their #internalName.
  8783.    
  8784.      */
  8785.     string parameters;
  8786.     /// @}
  8787.  
  8788.  
  8789.     /*! @name Ungrouped
  8790.     @{ */
  8791.     /*! */
  8792.     /// @}
  8793.  
  8794.  
  8795.     /*! @name Object
  8796.     @{ */
  8797.     /*! */
  8798.     /// @}
  8799.  
  8800.  
  8801.     /*! @name Editing
  8802.     @{ */
  8803.     /*! */
  8804.     /// @}
  8805.  
  8806.  
  8807.     /*! @name Persistence
  8808.     @{ */
  8809.     /*! */
  8810.     /// @}
  8811.  
  8812.  };
  8813.  
  8814.  /*!
  8815.  @brief Encapsulates a single sound file for playback by the sound system.
  8816.  
  8817.  SFXProfile combines a sound description (SFXDescription) with a sound file such that it can be played by the sound system.  To be able to play a sound file, the sound system will always require a profile for it to be created.  However, several of the SFX functions (sfxPlayOnce(), sfxCreateSource()) perform this creation internally for convenience using temporary profile objects.
  8818.  
  8819.  Sound files can be in either OGG or WAV format.  However, extended format support is available when using FMOD. See @ref SFX_formats.
  8820.  
  8821.  @section SFXProfile_loading Profile Loading
  8822.  
  8823.  By default, the sound data referenced by a profile will be loaded when the profile is first played and the data then kept until either the profile is deleted or until the sound device on which the sound data is held is deleted.
  8824.  
  8825.  This initial loading my incur a small delay when the sound is first played.  To avoid this, a profile may be expicitly set to load its sound data immediately when the profile is added to the system.  This is done by setting the #preload property to true.
  8826.  
  8827.  @note Sounds using streamed playback (SFXDescription::isStreaming) cannot be preloaded and will thus ignore the #preload flag.
  8828.  
  8829.  @tsexample
  8830.  datablock SFXProfile( Shore01Snd )
  8831.  {
  8832.     fileName     = "art/sound/Lakeshore_mono_01";
  8833.     description  = Shore01Looping3d;
  8834.     preload      = true;
  8835.  };
  8836.  @endtsexample
  8837.  
  8838.  @ingroup SFX
  8839.  @ingroup Datablocks
  8840.   */
  8841.  class  SFXProfile : public SFXTrack {
  8842.    public:
  8843.     /*! Return the length of the sound data in seconds.
  8844.  
  8845. @return The length of the sound data in seconds or 0 if the sound referenced by the profile could not be found. */
  8846.     virtual float getSoundDuration(()) {}
  8847.  
  8848.     /*! @name Sound
  8849.     @{ */
  8850.     /*! */
  8851.     /*!
  8852.     %Path to the sound file.
  8853. If the extension is left out, it will be inferred by the sound system.  This allows to easily switch the sound format without having to go through the profiles and change the filenames there, too.
  8854.  
  8855.    
  8856.      */
  8857.     filename fileName;
  8858.     /*!
  8859.     Whether to preload sound data when the profile is added to system.
  8860. @note This flag is ignored by streamed sounds.
  8861.  
  8862. @ref SFXProfile_loading
  8863.    
  8864.      */
  8865.     bool preload;
  8866.     /// @}
  8867.  
  8868.  
  8869.     /*! @name Sound
  8870.     @{ */
  8871.     /*! */
  8872.     /// @}
  8873.  
  8874.  
  8875.     /*! @name Ungrouped
  8876.     @{ */
  8877.     /*! */
  8878.     /// @}
  8879.  
  8880.  
  8881.     /*! @name Object
  8882.     @{ */
  8883.     /*! */
  8884.     /// @}
  8885.  
  8886.  
  8887.     /*! @name Editing
  8888.     @{ */
  8889.     /*! */
  8890.     /// @}
  8891.  
  8892.  
  8893.     /*! @name Persistence
  8894.     @{ */
  8895.     /*! */
  8896.     /// @}
  8897.  
  8898.  };
  8899.  
  8900.  /// Stub class
  8901.  ///
  8902.  /// @note This is a stub class to ensure a proper class hierarchy. No
  8903.  ///       information was available for this class.
  8904.  class  MusicBattle1 : public SFXProfile {
  8905.    public:
  8906.  };
  8907.  
  8908.  /// Stub class
  8909.  ///
  8910.  /// @note This is a stub class to ensure a proper class hierarchy. No
  8911.  ///       information was available for this class.
  8912.  class  MusicTension2 : public SFXProfile {
  8913.    public:
  8914.  };
  8915.  
  8916.  /// Stub class
  8917.  ///
  8918.  /// @note This is a stub class to ensure a proper class hierarchy. No
  8919.  ///       information was available for this class.
  8920.  class  MusicTension1 : public SFXProfile {
  8921.    public:
  8922.  };
  8923.  
  8924.  /// Stub class
  8925.  ///
  8926.  /// @note This is a stub class to ensure a proper class hierarchy. No
  8927.  ///       information was available for this class.
  8928.  class  MusicPeaceful4 : public SFXProfile {
  8929.    public:
  8930.  };
  8931.  
  8932.  /// Stub class
  8933.  ///
  8934.  /// @note This is a stub class to ensure a proper class hierarchy. No
  8935.  ///       information was available for this class.
  8936.  class  MusicPeaceful3 : public SFXProfile {
  8937.    public:
  8938.  };
  8939.  
  8940.  /// Stub class
  8941.  ///
  8942.  /// @note This is a stub class to ensure a proper class hierarchy. No
  8943.  ///       information was available for this class.
  8944.  class  MusicPeaceful2 : public SFXProfile {
  8945.    public:
  8946.  };
  8947.  
  8948.  /// Stub class
  8949.  ///
  8950.  /// @note This is a stub class to ensure a proper class hierarchy. No
  8951.  ///       information was available for this class.
  8952.  class  MusicPeaceful1 : public SFXProfile {
  8953.    public:
  8954.  };
  8955.  
  8956.  /*!
  8957.  @brief A description for how a sound should be played.
  8958.  
  8959.  SFXDescriptions are used by the sound system to collect all parameters needed to set up a given sound for playback.  This includes information like its volume level, its pitch shift, etc. as well as more complex information like its fade behavior, 3D properties, and per-sound reverb properties.
  8960.  
  8961.  Any sound playback will require a valid SFXDescription.
  8962.  
  8963.  As datablocks, SFXDescriptions can be set up as either networked datablocks or non-networked datablocks, though it generally makes sense to keep all descriptions non-networked since they will be used exclusively by clients.
  8964.  
  8965.  @tsexample
  8966.  // A description for a 3D sound with a reasonable default range setting.
  8967.  // The description is set up to assign sounds to the AudioChannelEffects source group
  8968.  // (defined in the core scripts).  An alternative means to achieve this is to use the
  8969.  // AudioEffects description as a copy source (": AudioEffects").
  8970.  
  8971.  singleton SFXDescription( Audio3DSound )
  8972.  {
  8973.    sourceGroup       = AudioChannelEffects;
  8974.    is3D              = true;
  8975.    referenceDistance = 20.0;
  8976.    maxDistance       = 100.0;
  8977.  };
  8978.  @endtsexample
  8979.  
  8980.  @ingroup SFX
  8981.  @ingroup Datablocks
  8982.   */
  8983.  class  SFXDescription : public SimDataBlock {
  8984.    public:
  8985.  
  8986.     /*! @name Playback
  8987.     @{ */
  8988.     /*! */
  8989.     /*!
  8990.     Group that sources playing with this description should be put into.
  8991.  
  8992. When a sound source is allocated, it will be made a child of the source group that is listed in its
  8993. description.  This group will then modulate several properties of the sound as it is played.
  8994.  
  8995. For example, one use of groups is to segregate sounds so that volume levels of different sound groups such as interface audio and game audio can be controlled independently.
  8996.  
  8997. @ref SFXSource_hierarchies
  8998.    
  8999.      */
  9000.     SFXSource sourceGroup;
  9001.     /*!
  9002.     Base volume level for the sound.
  9003.  
  9004. This will be the starting point for volume attenuation on the sound.  The final effective volume of a sound will be dependent on a number of parameters.
  9005.  
  9006. Must be between 0 (mute) and 1 (full volume).  Default is 1.
  9007.  
  9008. @ref SFXSource_volume
  9009.    
  9010.      */
  9011.     float volume;
  9012.     /*!
  9013.     Pitch shift to apply to playback.
  9014.  
  9015. The pitch assigned to a sound determines the speed at which it is played back.  A pitch shift of 1 plays the sound at its default speed.  A greater shift factor speeds up playback and a smaller shift factor slows it down.
  9016.  
  9017. Must be >0.  Default is 1.
  9018.    
  9019.      */
  9020.     float pitch;
  9021.     /*!
  9022.     If true, the sound will be played in an endless loop.
  9023.  
  9024. Default is false.
  9025.    
  9026.      */
  9027.     bool isLooping;
  9028.     /*!
  9029.     Priority level for virtualization of sounds (1 = base level).
  9030. When there are more concurrently active sounds than supported by the audio mixer, some of the sounds need to be culled.  Which sounds are culled first depends primarily on total audibility of individual sounds. However, the priority of invidual sounds may be decreased or decreased through this field.
  9031.  
  9032. @ref SFXSound_virtualization
  9033.    
  9034.      */
  9035.     float priority;
  9036.     /*!
  9037.     Whether the sound is allowed to be mixed in hardware.
  9038. If true, the sound system will try to allocate the voice for the sound directly on the sound hardware for mixing by the hardware mixer.  Be aware that a hardware mixer may not provide all features available to sounds mixed in software.
  9039.  
  9040. @note This flag currently only takes effect when using FMOD.
  9041.  
  9042. @note Generally, it is preferable to let sounds be mixed in software.
  9043.  
  9044.  
  9045.    
  9046.      */
  9047.     bool useHardware;
  9048.     /*!
  9049.     Names of the parameters to which sources using this description will automatically be linked.
  9050.  
  9051. Individual parameters are identified by their #internalName.
  9052.  
  9053. @ref SFX_interactive
  9054.    
  9055.      */
  9056.     string parameters;
  9057.     /// @}
  9058.  
  9059.  
  9060.     /*! @name Fading
  9061.     @{ */
  9062.     /*! */
  9063.     /*!
  9064.     Number of seconds to gradually fade in volume from zero when playback starts.
  9065. Must be >= 0.
  9066.  
  9067. @ref SFXSource_fades
  9068.    
  9069.      */
  9070.     float fadeInTime;
  9071.     /*!
  9072.     Number of seconds to gradually fade out volume down to zero when playback is stopped or paused.
  9073. Must be >=0.
  9074.  
  9075. @ref SFXSource_fades
  9076.    
  9077.      */
  9078.     float fadeOutTime;
  9079.     /*!
  9080.     Easing curve for fade-in transition.
  9081. Volume fade-ins will interpolate volume along this curve.
  9082.  
  9083. @ref SFXSource_fades
  9084.    
  9085.      */
  9086.     EaseF fadeInEase;
  9087.     /*!
  9088.     Easing curve for fade-out transition.
  9089. Volume fade-outs will interpolate volume along this curve.
  9090.  
  9091. @ref SFXSource_fades
  9092.    
  9093.      */
  9094.     EaseF fadeOutEase;
  9095.     /*!
  9096.     Fade each cycle of a loop in and/or out; otherwise only fade-in first cycle.
  9097. By default, volume fading is applied to the beginning and end of the playback range, i.e. a fade-in segment is placed at the beginning of the sound and a fade-out segment is paced at the end of a sound.  However, when looping playback, this may be undesirable as each iteration of the sound will then have a fade-in and fade-out effect.
  9098.  
  9099. To set up looping sounds such that a fade-in is applied only when the sound is first started (or playback resumed) and a fade-out is only applied when the sound is explicitly paused or stopped, set this field to true.
  9100.  
  9101. Default is false.
  9102.  
  9103. @ref SFXSource_fades
  9104.    
  9105.      */
  9106.     bool fadeLoops;
  9107.     /// @}
  9108.  
  9109.  
  9110.     /*! @name 3D
  9111.     @{ */
  9112.     /*! */
  9113.     /*!
  9114.     If true, sounds played with this description will have a position and orientation in space.
  9115. Unlike a non-positional sound, a 3D sound will have its volume attenuated depending on the distance to the listener in space.  The farther the sound moves away from the listener, the less audible it will be.
  9116.  
  9117. Non-positional sounds, in contrast, will remain at their original volume regardless of where the listener is.
  9118.  
  9119. @note Whether a sound is positional or non-positional cannot be changed once the sound was created so this field determines up front which is the case for a given sound.
  9120.  
  9121. @ref SFX_3d
  9122. @ref SFXSource_volume
  9123.    
  9124.      */
  9125.     bool is3D;
  9126.     /*!
  9127.     Distance at which volume attenuation begins.
  9128. Up to this distance, the sound retains its base volume.
  9129.  
  9130. In the linear distance model, the volume will linearly from this distance onwards up to maxDistance where it reaches zero.
  9131.  
  9132. In the logarithmic distance model, the reference distance determine how fast the sound volume decreases with distance.  Each referenceDistance steps (scaled by the rolloff factor), the volume halves.
  9133.  
  9134. A rule of thumb is that for sounds that require you to be close to hear them in the real world, set the reference distance to small values whereas for sounds that are widely audible set it to larger values.
  9135.  
  9136. Only applies to 3D sounds.
  9137. @see LevelInfo::soundDistanceModel
  9138.  
  9139. @ref SFX_3d
  9140. @ref SFXSource_volume
  9141.    
  9142.      */
  9143.     float referenceDistance;
  9144.     /*!
  9145.     The distance at which attenuation stops.
  9146. In the linear distance model, the attenuated volume will be zero at this distance.
  9147.  
  9148. In the logarithmic model, attenuation will simply stop at this distance and the sound will keep its attenuated volume from there on out.  As such, it primarily functions as a cutoff factor to exponential distance attentuation to limit the number of voices relevant to updates.
  9149.  
  9150. Only applies to 3D sounds.
  9151. @see LevelInfo::soundDistanceModel
  9152.  
  9153. @ref SFX_3d
  9154. @ref SFXSource_volume
  9155.    
  9156.      */
  9157.     float maxDistance;
  9158.     /*!
  9159.     Bounds on random displacement of 3D sound positions.
  9160. When a 3D sound is created and given its initial position in space, this field is used to determine the amount of randomization applied to the actual position given to the sound system.
  9161.  
  9162. The randomization uses the following scheme:@verbatim
  9163. x += rand( - scatterDistance[ 0 ], scatterDistance[ 0 ] );
  9164. y += rand( - scatterDistance[ 1 ], scatterDistance[ 1 ] );
  9165. z += rand( - scatterDistance[ 2 ], scatterDistance[ 2 ] );
  9166. @endverbatim
  9167.  
  9168.    
  9169.      */
  9170.     Point3F scatterDistance;
  9171.     /*!
  9172.     Inner sound cone angle in degrees.
  9173. This value determines the angle of the inner volume cone that protrudes out in the direction of a sound.  Within this cone, the sound source retains full volume that is unaffected by sound cone settings (though still affected by distance attenuation.)
  9174.  
  9175. Valid values are from 0 to 360. Must be less than coneOutsideAngle. Default is 360. Only for 3D sounds.
  9176.  
  9177. @ref SFXSource_cones
  9178.    
  9179.      */
  9180.     int coneInsideAngle;
  9181.     /*!
  9182.     Outer sound cone angle in degrees.
  9183. This value determines the angle of the outer volume cone that protrudes out in the direction of a sound and surrounds the inner volume cone.  Within this cone, volume will linearly interpolate from the outer cone hull inwards to the inner coner hull starting with the base volume scaled by coneOutsideVolume and ramping up/down to the full base volume.
  9184.  
  9185. Valid values are from 0 to 360.  Must be >= coneInsideAngle.  Default is 360.  Only for 3D sounds.
  9186.  
  9187. @ref SFXSource_cones
  9188.    
  9189.      */
  9190.     int coneOutsideAngle;
  9191.     /*!
  9192.     Determines the volume scale factor applied the a source's base volume level outside of the outer cone.
  9193. In the outer cone, starting from outside the inner cone, the scale factor smoothly interpolates from 1.0 (within the inner cone) to this value.  At the moment, the allowed range is 0.0 (silence) to 1.0 (no attenuation) as amplification is only supported on XAudio2 but not on the other devices.
  9194.  
  9195. Only for 3D sound.
  9196.  
  9197. @ref SFXSource_cones
  9198.    
  9199.      */
  9200.     float coneOutsideVolume;
  9201.     /*!
  9202.     Scale factor to apply to logarithmic distance attenuation curve.  If -1, the global rolloff setting is used.
  9203.  
  9204. @note Per-sound rolloff is only supported on OpenAL and FMOD at the moment.  With other divices, the global rolloff setting is used for all sounds.
  9205. @see LevelInfo::soundDistanceModel
  9206.    
  9207.      */
  9208.     float rolloffFactor;
  9209.     /// @}
  9210.  
  9211.  
  9212.     /*! @name Streaming
  9213.     @{ */
  9214.     /*! */
  9215.     /*!
  9216.     If true, incrementally stream sounds; otherwise sounds are loaded in full.
  9217.  
  9218. @ref SFX_streaming
  9219.    
  9220.      */
  9221.     bool isStreaming;
  9222.     /*!
  9223.     Number of milliseconds of sample data per single streaming packet.
  9224. This field allows to fine-tune streaming for individual sounds.  The streaming system processes streamed sounds in batches called packets.  Each packet will contain a set amount of sample data determined by this field.  The greater its value, the more sample data each packet contains, the more work is done per packet.
  9225.  
  9226. @note This field only takes effect when Torque's own sound system performs the streaming. When FMOD is used, this field is ignored and streaming is performed by FMOD.
  9227.  
  9228. @ref SFX_streaming
  9229.    
  9230.      */
  9231.     float streamPacketSize;
  9232.     /*!
  9233.     Number of sample packets to read and buffer in advance.
  9234. This field determines the number of packets that the streaming system will try to keep buffered in advance.  As such it determines the number of packets that can be consumed by the sound device before the playback queue is running dry.  Greater values thus allow for more lag in the streaming pipeline.
  9235.  
  9236. @note This field only takes effect when Torque's own sound system performs the streaming. When FMOD is used, this field is ignored and streaming is performed by FMOD.
  9237.  
  9238. @ref SFX_streaming
  9239.    
  9240.      */
  9241.     int streamReadAhead;
  9242.     /// @}
  9243.  
  9244.  
  9245.     /*! @name Reverb
  9246.     @{ */
  9247.     /*! */
  9248.     /*!
  9249.     If true, use the reverb properties defined here on sounds.
  9250. By default, sounds will be assigned a generic reverb profile.  By setting this flag to true, a custom reverb setup can be defined using the "Reverb" properties that will then be assigned to sounds playing with the description.
  9251.  
  9252. @ref SFX_reverb
  9253.    
  9254.      */
  9255.     bool useCustomReverb;
  9256.     /*!
  9257.     Direct path level (at low and mid frequencies).
  9258. @note SUPPORTED: EAX/I3DL2/FMODSFX
  9259.  
  9260. @see http://www.atc.creative.com/algorithms/eax20.pdf
  9261.    
  9262.      */
  9263.     int reverbDirect;
  9264.     /*!
  9265.     Relative direct path level at high frequencies.
  9266. @note SUPPORTED: EAX/I3DL2
  9267.  
  9268. @see http://www.atc.creative.com/algorithms/eax20.pdf
  9269.    
  9270.      */
  9271.     int reverbDirectHF;
  9272.     /*!
  9273.     Room effect level (at low and mid frequencies).
  9274. @note SUPPORTED: EAX/I3DL2/FMODSFX
  9275.  
  9276. @see http://www.atc.creative.com/algorithms/eax20.pdf
  9277.    
  9278.      */
  9279.     int reverbRoom;
  9280.     /*!
  9281.     Relative room effect level at high frequencies.
  9282. @note SUPPORTED: EAX/I3DL2
  9283.  
  9284. @see http://www.atc.creative.com/algorithms/eax20.pdf
  9285.    
  9286.      */
  9287.     int reverbRoomHF;
  9288.     /*!
  9289.     Main obstruction control (attenuation at high frequencies).
  9290. @note SUPPORTED: EAX/I3DL2
  9291.  
  9292. @see http://www.atc.creative.com/algorithms/eax20.pdf
  9293.    
  9294.      */
  9295.     int reverbObstruction;
  9296.     /*!
  9297.     Obstruction low-frequency level re. main control.
  9298. @note SUPPORTED: EAX/I3DL2
  9299.  
  9300. @see http://www.atc.creative.com/algorithms/eax20.pdf
  9301.    
  9302.      */
  9303.     float reverbObstructionLFRatio;
  9304.     /*!
  9305.     Main occlusion control (attenuation at high frequencies).@note SUPPORTED: EAX/I3DL2
  9306.  
  9307.  
  9308. @see http://www.atc.creative.com/algorithms/eax20.pdf
  9309.    
  9310.      */
  9311.     int reverbOcclusion;
  9312.     /*!
  9313.     Occlusion low-frequency level re. main control.
  9314. @note SUPPORTED: EAX/I3DL2
  9315.  
  9316. @see http://www.atc.creative.com/algorithms/eax20.pdf
  9317.    
  9318.      */
  9319.     float reverbOcclusionLFRatio;
  9320.     /*!
  9321.     Relative occlusion control for room effect.
  9322. @note SUPPORTED: EAX Only
  9323.  
  9324. @see http://www.atc.creative.com/algorithms/eax20.pdf
  9325.    
  9326.      */
  9327.     float reverbOcclusionRoomRatio;
  9328.     /*!
  9329.     Relative occlusion control for direct path.
  9330. @note SUPPORTED: EAX Only
  9331.  
  9332. @see http://www.atc.creative.com/algorithms/eax20.pdf
  9333.    
  9334.      */
  9335.     float reverbOcclusionDirectRatio;
  9336.     /*!
  9337.     Main exclusion control (attenuation at high frequencies).
  9338. @note SUPPORTED: EAX Only
  9339.  
  9340. @see http://www.atc.creative.com/algorithms/eax20.pdf
  9341.    
  9342.      */
  9343.     int reverbExclusion;
  9344.     /*!
  9345.     Exclusion low-frequency level re. main control.
  9346. @note SUPPORTED: EAX Only
  9347.  
  9348. @see http://www.atc.creative.com/algorithms/eax20.pdf
  9349.    
  9350.      */
  9351.     float reverbExclusionLFRatio;
  9352.     /*!
  9353.     Outside sound cone level at high frequencies.
  9354. @note SUPPORTED: EAX Only
  9355.  
  9356. @see http://www.atc.creative.com/algorithms/eax20.pdf
  9357.    
  9358.      */
  9359.     int reverbOutsideVolumeHF;
  9360.     /*!
  9361.     Per-source doppler factor.
  9362. @note SUPPORTED: EAX Only
  9363.  
  9364. @see http://www.atc.creative.com/algorithms/eax20.pdf
  9365.    
  9366.      */
  9367.     float reverbDopplerFactor;
  9368.     /*!
  9369.     Per-source logarithmic falloff factor.
  9370. @note SUPPORTED: EAX Only
  9371.  
  9372. @see http://www.atc.creative.com/algorithms/eax20.pdf
  9373.    
  9374.      */
  9375.     float reverbReverbRolloffFactor;
  9376.     /*!
  9377.     Room effect falloff factor.
  9378. @note SUPPORTED: EAX/I3DL2
  9379.  
  9380. @see http://www.atc.creative.com/algorithms/eax20.pdf
  9381.    
  9382.      */
  9383.     float reverbRoomRolloffFactor;
  9384.     /*!
  9385.     Multiplies SFXEnvironment::airAbsorptionHR.
  9386. @note SUPPORTED: EAX Only
  9387.  
  9388. @see http://www.atc.creative.com/algorithms/eax20.pdf
  9389.    
  9390.      */
  9391.     float reverbAirAbsorptionFactor;
  9392.     /*!
  9393.     Bitfield combination of per-sound reverb flags.
  9394. @see REVERB_DIRECTHFAUTO
  9395. @see REVERB_ROOMAUTO
  9396. @see REVERB_ROOMHFAUTO
  9397. @see REVERB_INSTANCE0
  9398. @see REVERB_INSTANCE1
  9399. @see REVERB_INSTANCE2
  9400. @see REVERB_INSTANCE3
  9401.  
  9402.    
  9403.      */
  9404.     int reverbFlags;
  9405.     /// @}
  9406.  
  9407.  
  9408.     /*! @name Ungrouped
  9409.     @{ */
  9410.     /*! */
  9411.     /// @}
  9412.  
  9413.  
  9414.     /*! @name Object
  9415.     @{ */
  9416.     /*! */
  9417.     /// @}
  9418.  
  9419.  
  9420.     /*! @name Editing
  9421.     @{ */
  9422.     /*! */
  9423.     /// @}
  9424.  
  9425.  
  9426.     /*! @name Persistence
  9427.     @{ */
  9428.     /*! */
  9429.     /// @}
  9430.  
  9431.  };
  9432.  
  9433.  /// Stub class
  9434.  ///
  9435.  /// @note This is a stub class to ensure a proper class hierarchy. No
  9436.  ///       information was available for this class.
  9437.  class  LiFMusicTrack : public SFXDescription {
  9438.    public:
  9439.  };
  9440.  
  9441.  /*!
  9442.  @brief Scriptable, demo-able datablock.  Used by GameBase objects.
  9443.  
  9444.  @see GameBase
  9445.  @ingroup gameObjects
  9446.   */
  9447.  class  GameBaseData : public SimDataBlock {
  9448.    public:
  9449.        /*! @brief Called when the object is added to the scene.
  9450.  
  9451. @param obj the GameBase object
  9452.  
  9453. @tsexample
  9454. datablock GameBaseData(MyObjectData)
  9455. {
  9456.    category = "Misc";
  9457. };
  9458.  
  9459. function MyObjectData::onAdd( %this, %obj )
  9460. {
  9461.    echo( "Added " @ %obj.getName() @ " to the scene." );
  9462. }
  9463.  
  9464. function MyObjectData::onNewDataBlock( %this, %obj )
  9465. {
  9466.    echo( "Assign " @ %this.getName() @ " datablock to " %obj.getName() );
  9467. }
  9468.  
  9469. function MyObjectData::onRemove( %this, %obj )
  9470. {
  9471.    echo( "Removed " @ %obj.getName() @ " to the scene." );
  9472. }
  9473.  
  9474. function MyObjectData::onMount( %this, %obj, %mountObj, %node )
  9475. {
  9476.    echo( %obj.getName() @ " mounted to " @ %mountObj.getName() );
  9477. }
  9478.  
  9479. function MyObjectData::onUnmount( %this, %obj, %mountObj, %node )
  9480. {
  9481.    echo( %obj.getName() @ " unmounted from " @ %mountObj.getName() );
  9482. }
  9483.  
  9484. @endtsexample
  9485.  */
  9486.        void onAdd( GameBase obj );
  9487.  
  9488.        /*! @brief Called when the object has a new datablock assigned.
  9489.  
  9490. @param obj the GameBase object
  9491.  
  9492. @see onAdd for an example
  9493.  */
  9494.        void onNewDataBlock( GameBase obj );
  9495.  
  9496.        /*! @brief Called when the object is removed from the scene.
  9497.  
  9498. @param obj the GameBase object
  9499.  
  9500. @see onAdd for an example
  9501.  */
  9502.        void onRemove( GameBase obj );
  9503.  
  9504.        /*! @brief Called when the object is mounted to another object in the scene.
  9505.  
  9506. @param obj the GameBase object being mounted
  9507. @param mountObj the object we are mounted to
  9508. @param node the mountObj node we are mounted to
  9509.  
  9510. @see onAdd for an example
  9511.  */
  9512.        void onMount( GameBase obj, SceneObject mountObj, int node );
  9513.  
  9514.        /*! @brief Called when the object is unmounted from another object in the scene.
  9515.  
  9516. @param obj the GameBase object being unmounted
  9517. @param mountObj the object we are unmounted from
  9518. @param node the mountObj node we are unmounted from
  9519.  
  9520. @see onAdd for an example
  9521.  */
  9522.        void onUnmount( GameBase obj, SceneObject mountObj, int node );
  9523.  
  9524.  
  9525.     /*! @name Scripting
  9526.     @{ */
  9527.     /*! */
  9528.     /*!
  9529.     The group that this datablock will show up in under the "Scripted" tab in the World Editor Library.
  9530.    
  9531.      */
  9532.     caseString category;
  9533.     /// @}
  9534.  
  9535.  
  9536.     /*! @name Ungrouped
  9537.     @{ */
  9538.     /*! */
  9539.     /// @}
  9540.  
  9541.  
  9542.     /*! @name Object
  9543.     @{ */
  9544.     /*! */
  9545.     /// @}
  9546.  
  9547.  
  9548.     /*! @name Editing
  9549.     @{ */
  9550.     /*! */
  9551.     /// @}
  9552.  
  9553.  
  9554.     /*! @name Persistence
  9555.     @{ */
  9556.     /*! */
  9557.     /// @}
  9558.  
  9559.  };
  9560.  
  9561.  /*!
  9562.  @brief Datablock base class used by choreographers.
  9563.  
  9564.  @ingroup afxChoreographers
  9565.  @ingroup AFX
  9566.  @ingroup Datablocks
  9567.   */
  9568.  class  afxChoreographerData : public GameBaseData {
  9569.    public:
  9570.     /*!
  9571.     ...
  9572.    
  9573.      */
  9574.     bool execOnNewClients;
  9575.     /*!
  9576.     ...
  9577.    
  9578.      */
  9579.     char echoPacketUsage;
  9580.     /*!
  9581.     ...
  9582.    
  9583.      */
  9584.     filename clientScriptFile;
  9585.     /*!
  9586.     ...
  9587.    
  9588.      */
  9589.     string clientInitFunction;
  9590.  
  9591.     /*! @name Scripting
  9592.     @{ */
  9593.     /*! */
  9594.     /// @}
  9595.  
  9596.  
  9597.     /*! @name Ungrouped
  9598.     @{ */
  9599.     /*! */
  9600.     /// @}
  9601.  
  9602.  
  9603.     /*! @name Object
  9604.     @{ */
  9605.     /*! */
  9606.     /// @}
  9607.  
  9608.  
  9609.     /*! @name Editing
  9610.     @{ */
  9611.     /*! */
  9612.     /// @}
  9613.  
  9614.  
  9615.     /*! @name Persistence
  9616.     @{ */
  9617.     /*! */
  9618.     /// @}
  9619.  
  9620.  };
  9621.  
  9622.  /*!
  9623.  @brief Defines the properties of an afxSelectronData.
  9624.  
  9625.  @ingroup afxChoreographers
  9626.  @ingroup AFX
  9627.  @ingroup Datablocks
  9628.   */
  9629.  class  afxSelectronData : public afxChoreographerData {
  9630.    public:
  9631.     /*! Resets a selectron datablock during reload.
  9632.  
  9633. @ingroup AFX */
  9634.     virtual void reset(()) {}
  9635.     /*!
  9636.     ...
  9637.    
  9638.      */
  9639.     float mainDur;
  9640.     /*!
  9641.     ...
  9642.    
  9643.      */
  9644.     float selectDur;
  9645.     /*!
  9646.     ...
  9647.    
  9648.      */
  9649.     float deselectDur;
  9650.     /*!
  9651.     ...
  9652.    
  9653.      */
  9654.     int mainRepeats;
  9655.     /*!
  9656.     ...
  9657.    
  9658.      */
  9659.     int selectRepeats;
  9660.     /*!
  9661.     ...
  9662.    
  9663.      */
  9664.     int deselectRepeats;
  9665.     /*!
  9666.     ...
  9667.    
  9668.      */
  9669.     int selectionTypeMask;
  9670.     /*!
  9671.     ...
  9672.    
  9673.      */
  9674.     char selectionTypeStyle;
  9675.     /*!
  9676.     ...
  9677.    
  9678.      */
  9679.     afxEffectBaseData addMainEffect;
  9680.     /*!
  9681.     ...
  9682.    
  9683.      */
  9684.     afxEffectBaseData addSelectEffect;
  9685.     /*!
  9686.     ...
  9687.    
  9688.      */
  9689.     afxEffectBaseData addDeselectEffect;
  9690.     /*!
  9691.     ...
  9692.    
  9693.      */
  9694.     int numMainLoops;
  9695.     /*!
  9696.     ...
  9697.    
  9698.      */
  9699.     int numSelectLoops;
  9700.     /*!
  9701.     ...
  9702.    
  9703.      */
  9704.     int numDeselectLoops;
  9705.  
  9706.     /*! @name Scripting
  9707.     @{ */
  9708.     /*! */
  9709.     /// @}
  9710.  
  9711.  
  9712.     /*! @name Ungrouped
  9713.     @{ */
  9714.     /*! */
  9715.     /// @}
  9716.  
  9717.  
  9718.     /*! @name Object
  9719.     @{ */
  9720.     /*! */
  9721.     /// @}
  9722.  
  9723.  
  9724.     /*! @name Editing
  9725.     @{ */
  9726.     /*! */
  9727.     /// @}
  9728.  
  9729.  
  9730.     /*! @name Persistence
  9731.     @{ */
  9732.     /*! */
  9733.     /// @}
  9734.  
  9735.  };
  9736.  
  9737.  /// Stub class
  9738.  ///
  9739.  /// @note This is a stub class to ensure a proper class hierarchy. No
  9740.  ///       information was available for this class.
  9741.  class  TraceShotCircleSelectronData : public afxSelectronData {
  9742.    public:
  9743.  };
  9744.  
  9745.  /// Stub class
  9746.  ///
  9747.  /// @note This is a stub class to ensure a proper class hierarchy. No
  9748.  ///       information was available for this class.
  9749.  class  UnitsFormation_CircleSelectronData : public afxSelectronData {
  9750.    public:
  9751.  };
  9752.  
  9753.  /// Stub class
  9754.  ///
  9755.  /// @note This is a stub class to ensure a proper class hierarchy. No
  9756.  ///       information was available for this class.
  9757.  class  UnitsFormation_WedgeSelectronData : public afxSelectronData {
  9758.    public:
  9759.  };
  9760.  
  9761.  /// Stub class
  9762.  ///
  9763.  /// @note This is a stub class to ensure a proper class hierarchy. No
  9764.  ///       information was available for this class.
  9765.  class  UnitsFormation_WallSelectronData : public afxSelectronData {
  9766.    public:
  9767.  };
  9768.  
  9769.  /*!
  9770.  @brief A datablock baseclass for afxEffectWrapperData and afxEffectGroupData.
  9771.  
  9772.  Not intended to be used directly, afxEffectBaseData exists to provide base member variables and generic functionality for the derived classes afxEffectWrapperData and afxEffectGroupData.
  9773.  
  9774.  @see afxEffectWrapperData
  9775.  
  9776.  @see afxEffectGroupData
  9777.  
  9778.  @ingroup afxEffects
  9779.  @ingroup AFX
  9780.  @ingroup Datablocks
  9781.   */
  9782.  class  afxEffectBaseData : public GameBaseData {
  9783.    public:
  9784.  
  9785.     /*! @name Scripting
  9786.     @{ */
  9787.     /*! */
  9788.     /// @}
  9789.  
  9790.  
  9791.     /*! @name Ungrouped
  9792.     @{ */
  9793.     /*! */
  9794.     /// @}
  9795.  
  9796.  
  9797.     /*! @name Object
  9798.     @{ */
  9799.     /*! */
  9800.     /// @}
  9801.  
  9802.  
  9803.     /*! @name Editing
  9804.     @{ */
  9805.     /*! */
  9806.     /// @}
  9807.  
  9808.  
  9809.     /*! @name Persistence
  9810.     @{ */
  9811.     /*! */
  9812.     /// @}
  9813.  
  9814.  };
  9815.  
  9816.  /*!
  9817.  @brief A datablock that describes an Effect Wrapper.
  9818.  
  9819.  Conceptually an effect wrapper encloses a building-block effect and acts as a handle for adding the effect to a choreographer. Effect wrapper fields primarily deal with effect timing, constraints, and conditional effect execution.
  9820.  
  9821.  @see afxEffectBaseData
  9822.  
  9823.  @see afxEffectGroupData
  9824.  
  9825.  @ingroup afxEffects
  9826.  @ingroup AFX
  9827.  @ingroup Datablocks
  9828.   */
  9829.  class  afxEffectWrapperData : public afxEffectBaseData {
  9830.    public:
  9831.     /*!
  9832.     ...
  9833.    
  9834.      */
  9835.     SimDataBlock effect;
  9836.     /*!
  9837.     ...
  9838.    
  9839.      */
  9840.     string EffectName;
  9841.     /*!
  9842.     ...
  9843.    
  9844.      */
  9845.     string constraint;
  9846.     /*!
  9847.     ...
  9848.    
  9849.      */
  9850.     string posConstraint;
  9851.     /*!
  9852.     ...
  9853.    
  9854.      */
  9855.     string posConstraint2;
  9856.     /*!
  9857.     ...
  9858.    
  9859.      */
  9860.     string orientConstraint;
  9861.     /*!
  9862.     ...
  9863.    
  9864.      */
  9865.     string lifeConstraint;
  9866.     /*!
  9867.     ...
  9868.    
  9869.      */
  9870.     bool isConstraintSrc;
  9871.     /*!
  9872.     ...
  9873.    
  9874.      */
  9875.     bool ghostIsConstraintSrc;
  9876.     /*!
  9877.     ...
  9878.    
  9879.      */
  9880.     float delay;
  9881.     /*!
  9882.     ...
  9883.    
  9884.      */
  9885.     float lifetime;
  9886.     /*!
  9887.     ...
  9888.    
  9889.      */
  9890.     float fadeInTime;
  9891.     /*!
  9892.     ...
  9893.    
  9894.      */
  9895.     float residueLifetime;
  9896.     /*!
  9897.     ...
  9898.    
  9899.      */
  9900.     Point2F fadeInEase;
  9901.     /*!
  9902.     ...
  9903.    
  9904.      */
  9905.     Point2F fadeOutEase;
  9906.     /*!
  9907.     ...
  9908.    
  9909.      */
  9910.     float lifetimeBias;
  9911.     /*!
  9912.     ...
  9913.    
  9914.      */
  9915.     float fadeOutTime;
  9916.     /*!
  9917.     ...
  9918.    
  9919.      */
  9920.     float rateFactor;
  9921.     /*!
  9922.     ...
  9923.    
  9924.      */
  9925.     float scaleFactor;
  9926.     /*!
  9927.     ...
  9928.    
  9929.      */
  9930.     bool isLooping;
  9931.     /*!
  9932.     ...
  9933.    
  9934.      */
  9935.     int loopCount;
  9936.     /*!
  9937.     ...
  9938.    
  9939.      */
  9940.     float loopGapTime;
  9941.     /*!
  9942.     ...
  9943.    
  9944.      */
  9945.     bool ignoreTimeFactor;
  9946.     /*!
  9947.     ...
  9948.    
  9949.      */
  9950.     bool propagateTimeFactor;
  9951.     /*!
  9952.     ...
  9953.    
  9954.      */
  9955.     bool effectEnabled;
  9956.     /*!
  9957.     ...
  9958.    
  9959.      */
  9960.     ByteRange rankingRange;
  9961.     /*!
  9962.     ...
  9963.    
  9964.      */
  9965.     ByteRange levelOfDetailRange;
  9966.     /*!
  9967.     ...
  9968.    
  9969.      */
  9970.     int lifeConditions;
  9971.     /*!
  9972.     ...
  9973.    
  9974.      */
  9975.     int execConditions;
  9976.     /*!
  9977.     ...
  9978.    
  9979.      */
  9980.     int execOffConditions;
  9981.     /*!
  9982.     ...
  9983.    
  9984.      */
  9985.     afxXM_BaseData xfmModifiers;
  9986.     /*!
  9987.     ...
  9988.    
  9989.      */
  9990.     Box3F forcedBBox;
  9991.     /*!
  9992.     ...
  9993.    
  9994.      */
  9995.     bool updateForcedBBox;
  9996.     /*!
  9997.     ...
  9998.    
  9999.      */
  10000.     char sortPriority;
  10001.     /*!
  10002.     ...
  10003.    
  10004.      */
  10005.     Point3F direction;
  10006.     /*!
  10007.     ...
  10008.    
  10009.      */
  10010.     float speed;
  10011.     /*!
  10012.     ...
  10013.    
  10014.      */
  10015.     float mass;
  10016.     /*!
  10017.     ...
  10018.    
  10019.      */
  10020.     bool borrowAltitudes;
  10021.     /*!
  10022.     ...
  10023.    
  10024.      */
  10025.     string visibilityKeys;
  10026.     /*!
  10027.     ...
  10028.    
  10029.      */
  10030.     int groupIndex;
  10031.     /*!
  10032.     ...
  10033.    
  10034.      */
  10035.     int inheritGroupTiming;
  10036.  
  10037.     /*! @name Scripting
  10038.     @{ */
  10039.     /*! */
  10040.     /// @}
  10041.  
  10042.  
  10043.     /*! @name Ungrouped
  10044.     @{ */
  10045.     /*! */
  10046.     /// @}
  10047.  
  10048.  
  10049.     /*! @name Object
  10050.     @{ */
  10051.     /*! */
  10052.     /// @}
  10053.  
  10054.  
  10055.     /*! @name Editing
  10056.     @{ */
  10057.     /*! */
  10058.     /// @}
  10059.  
  10060.  
  10061.     /*! @name Persistence
  10062.     @{ */
  10063.     /*! */
  10064.     /// @}
  10065.  
  10066.  };
  10067.  
  10068.  /// Stub class
  10069.  ///
  10070.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10071.  ///       information was available for this class.
  10072.  class  UnitsFormation_CircleSelectronEffect : public afxEffectWrapperData {
  10073.    public:
  10074.  };
  10075.  
  10076.  /// Stub class
  10077.  ///
  10078.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10079.  ///       information was available for this class.
  10080.  class  UnitsFormation_WedgeSelectronEffect : public afxEffectWrapperData {
  10081.    public:
  10082.  };
  10083.  
  10084.  /// Stub class
  10085.  ///
  10086.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10087.  ///       information was available for this class.
  10088.  class  UnitsFormation_WallSelectronEffect : public afxEffectWrapperData {
  10089.    public:
  10090.  };
  10091.  
  10092.  /*!
  10093.  @brief A datablock that specifies a decal-like Zodiac effect.
  10094.  
  10095.  Zodiacs are special-purpose decal textures, often circular, that are always projected vertically onto the ground. Parameters control dynamic rotation and scale as well as texture, color, and blending style.
  10096.  
  10097.  Zodiacs render on objects of type TerrainBlock, InteriorInstance, GroundPlane, MeshRoad, and TSStatic. They are very effective as spellcasting lighting rings, explosion shockwaves, scorched earth decals, and selection indicators.
  10098.  
  10099.  @ingroup afxEffects
  10100.  @ingroup AFX
  10101.  @ingroup Datablocks
  10102.   */
  10103.  class  afxZodiacData : public GameBaseData {
  10104.    public:
  10105.     /*!
  10106.     An image to use as the zodiac's texture.
  10107.    
  10108.      */
  10109.     filename texture;
  10110.     /*!
  10111.     The zodiac's radius in scene units.
  10112.    
  10113.      */
  10114.     float radius;
  10115.     /*!
  10116.     For interior zodiacs only, verticalRange specifies distances above and below the zodiac's position. If both values are 0.0, the radius is used.
  10117.    
  10118.      */
  10119.     Point2F verticalRange;
  10120.     /*!
  10121.     Specifies if the zodiac's verticalRange should scale according to changes in the radius. When a zodiacs is used as an expanding shockwave, this value should be set to false, otherwise the zodiac can expand to cover an entire interior.
  10122.    
  10123.      */
  10124.     bool scaleVerticalRange;
  10125.     /*!
  10126.     The starting angle in degrees of the zodiac's rotation.
  10127.    
  10128.      */
  10129.     float startAngle;
  10130.     /*!
  10131.     The rate of rotation in degrees-per-second. Zodiacs with a positive rotationRate rotate clockwise, while those with negative values turn counter-clockwise.
  10132.    
  10133.      */
  10134.     float rotationRate;
  10135.     /*!
  10136.     A duration of time in seconds over which the zodiac grows from a zero size to its full size as specified by the radius.
  10137.    
  10138.      */
  10139.     float growInTime;
  10140.     /*!
  10141.     A duration of time in seconds over which the zodiac shrinks from full size to invisible.
  10142.    
  10143.      */
  10144.     float shrinkOutTime;
  10145.     /*!
  10146.     A rate in meters-per-second at which the zodiac grows in size. A negative value will shrink the zodiac.
  10147.    
  10148.      */
  10149.     float growthRate;
  10150.     /*!
  10151.     A color value for the zodiac.
  10152.    
  10153.      */
  10154.     ColorF color;
  10155.     /*!
  10156.     A blending style for the zodiac. Possible values: normal, additive, or subtractive.
  10157.    
  10158.      */
  10159.     afxZodiac_BlendType blend;
  10160.     /*!
  10161.     Specifies if the zodiac should be rendered on terrain or terrain-like surfaces.
  10162.    
  10163.      */
  10164.     bool showOnTerrain;
  10165.     /*!
  10166.     Specifies if the zodiac should be rendered on interior or interior-like surfaces.
  10167.    
  10168.      */
  10169.     bool showOnInteriors;
  10170.     /*!
  10171.     Specifies if the zodiac should be rendered on the reflection rendering pass of the object it will be projected onto.
  10172.    
  10173.      */
  10174.     bool showInReflections;
  10175.     /*!
  10176.     Specifies if the zodiac should be rendered on the non-reflection rendering pass of the object it will be projected onto.
  10177.    
  10178.      */
  10179.     bool showInNonReflections;
  10180.     /*!
  10181.     Specifies if the zodiac's rotation should be defined by its constrained transformation.
  10182.    
  10183.      */
  10184.     bool trackOrientConstraint;
  10185.     /*!
  10186.     Specifies if interior zodiacs should be rendered exclusively on perfectly horizontal interior surfaces.
  10187.    
  10188.      */
  10189.     bool interiorHorizontalOnly;
  10190.     /*!
  10191.     Specifies if interior zodiacs should not be rendered on perfectly vertical interior surfaces.
  10192.    
  10193.      */
  10194.     bool interiorIgnoreVertical;
  10195.     /*!
  10196.     Specifies if interior zodiacs should not be rendered on interior surface which are backfacing to the zodiac's center.
  10197.    
  10198.      */
  10199.     bool interiorIgnoreBackfaces;
  10200.     /*!
  10201.    
  10202.    
  10203.      */
  10204.     bool interiorIgnoreOpaque;
  10205.     /*!
  10206.    
  10207.    
  10208.      */
  10209.     bool interiorIgnoreTransparent;
  10210.     /*!
  10211.     The altitude at which zodiac becomes invisible as the result of fading out or becoming too small.
  10212.    
  10213.      */
  10214.     float altitudeMax;
  10215.     /*!
  10216.     The altitude at which zodiac begins to fade and/or shrink.
  10217.    
  10218.      */
  10219.     float altitudeFalloff;
  10220.     /*!
  10221.     When true, zodiac becomes smaller as altitude increases.
  10222.    
  10223.      */
  10224.     bool altitudeShrinks;
  10225.     /*!
  10226.     When true, zodiac fades out as altitude increases.
  10227.    
  10228.      */
  10229.     bool altitudeFades;
  10230.     /*!
  10231.     The distance from camera at which the zodiac becomes invisible as the result of fading out.
  10232.    
  10233.      */
  10234.     float distanceMax;
  10235.     /*!
  10236.     The distance from camera at which the zodiac begins to fade out.
  10237.    
  10238.      */
  10239.     float distanceFalloff;
  10240.     /*!
  10241.     When true, gradientRange will be used to determine on which polygons the zodiac will render.
  10242.    
  10243.      */
  10244.     bool useGradientRange;
  10245.     /*!
  10246.     When true, a gradientRange specified on an InteriorInstance or TSStatic will be used instead of the zodiac's gradientRange.
  10247.    
  10248.      */
  10249.     bool preferDestinationGradients;
  10250.     /*!
  10251.     Zodiac will render on polygons with gradients within the range specified by gradientRange. 0 for floor polys, 90 for wall polys, 180 for ceiling polys.
  10252.    
  10253.      */
  10254.     Point2F gradientRange;
  10255.     /*!
  10256.     When true, the zodiac will render on polygons with gradients outside of the range specified by gradientRange.
  10257.    
  10258.      */
  10259.     bool invertGradientRange;
  10260.  
  10261.     /*! @name Scripting
  10262.     @{ */
  10263.     /*! */
  10264.     /// @}
  10265.  
  10266.  
  10267.     /*! @name Ungrouped
  10268.     @{ */
  10269.     /*! */
  10270.     /// @}
  10271.  
  10272.  
  10273.     /*! @name Object
  10274.     @{ */
  10275.     /*! */
  10276.     /// @}
  10277.  
  10278.  
  10279.     /*! @name Editing
  10280.     @{ */
  10281.     /*! */
  10282.     /// @}
  10283.  
  10284.  
  10285.     /*! @name Persistence
  10286.     @{ */
  10287.     /*! */
  10288.     /// @}
  10289.  
  10290.  };
  10291.  
  10292.  /// Stub class
  10293.  ///
  10294.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10295.  ///       information was available for this class.
  10296.  class  UnitsFormation_CircleSelectron : public afxZodiacData {
  10297.    public:
  10298.  };
  10299.  
  10300.  /// Stub class
  10301.  ///
  10302.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10303.  ///       information was available for this class.
  10304.  class  UnitsFormation_WedgeSelectron : public afxZodiacData {
  10305.    public:
  10306.  };
  10307.  
  10308.  /// Stub class
  10309.  ///
  10310.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10311.  ///       information was available for this class.
  10312.  class  UnitsFormation_WallSelectron : public afxZodiacData {
  10313.    public:
  10314.  };
  10315.  
  10316.  /// Stub class
  10317.  ///
  10318.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10319.  ///       information was available for this class.
  10320.  class  SHARED_FormationsSelectronEffect : public afxEffectWrapperData {
  10321.    public:
  10322.  };
  10323.  
  10324.  /// Stub class
  10325.  ///
  10326.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10327.  ///       information was available for this class.
  10328.  class  SHARED_FormationsSelectronZodiac : public afxZodiacData {
  10329.    public:
  10330.  };
  10331.  
  10332.  /// Stub class
  10333.  ///
  10334.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10335.  ///       information was available for this class.
  10336.  class  SCIFI_SELE : public afxSelectronData {
  10337.    public:
  10338.  };
  10339.  
  10340.  /// Stub class
  10341.  ///
  10342.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10343.  ///       information was available for this class.
  10344.  class  SCIFI_SelectPointer5_Zode_EW : public afxEffectWrapperData {
  10345.    public:
  10346.  };
  10347.  
  10348.  /// Stub class
  10349.  ///
  10350.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10351.  ///       information was available for this class.
  10352.  class  SCIFI_SelectPointer5_Zode_CE : public afxZodiacData {
  10353.    public:
  10354.  };
  10355.  
  10356.  /// Stub class
  10357.  ///
  10358.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10359.  ///       information was available for this class.
  10360.  class  SCIFI_SelectPointer4C_Zode_EW : public afxEffectWrapperData {
  10361.    public:
  10362.  };
  10363.  
  10364.  /// Stub class
  10365.  ///
  10366.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10367.  ///       information was available for this class.
  10368.  class  SCIFI_SelectPointer4B_Zode_EW : public afxEffectWrapperData {
  10369.    public:
  10370.  };
  10371.  
  10372.  /// Stub class
  10373.  ///
  10374.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10375.  ///       information was available for this class.
  10376.  class  SCIFI_SelectPointer4A_Zode_EW : public afxEffectWrapperData {
  10377.    public:
  10378.  };
  10379.  
  10380.  /// Stub class
  10381.  ///
  10382.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10383.  ///       information was available for this class.
  10384.  class  SCIFI_SelectPointer4A_Zode_CE : public afxZodiacData {
  10385.    public:
  10386.  };
  10387.  
  10388.  /// Stub class
  10389.  ///
  10390.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10391.  ///       information was available for this class.
  10392.  class  SCIFI_SelectPointer3_Zode_EW : public afxEffectWrapperData {
  10393.    public:
  10394.  };
  10395.  
  10396.  /// Stub class
  10397.  ///
  10398.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10399.  ///       information was available for this class.
  10400.  class  SCIFI_SelectPointer3_Zode_CE : public afxZodiacData {
  10401.    public:
  10402.  };
  10403.  
  10404.  /// Stub class
  10405.  ///
  10406.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10407.  ///       information was available for this class.
  10408.  class  SCIFI_SelectPointer2_Zode_EW : public afxEffectWrapperData {
  10409.    public:
  10410.  };
  10411.  
  10412.  /// Stub class
  10413.  ///
  10414.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10415.  ///       information was available for this class.
  10416.  class  SCIFI_SelectPointer2_Zode_CE : public afxZodiacData {
  10417.    public:
  10418.  };
  10419.  
  10420.  /// Stub class
  10421.  ///
  10422.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10423.  ///       information was available for this class.
  10424.  class  SCIFI_SelectPointer1_Zode_EW : public afxEffectWrapperData {
  10425.    public:
  10426.  };
  10427.  
  10428.  /// Stub class
  10429.  ///
  10430.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10431.  ///       information was available for this class.
  10432.  class  SCIFI_SelectPointer1_Zode_CE : public afxZodiacData {
  10433.    public:
  10434.  };
  10435.  
  10436.  /// Stub class
  10437.  ///
  10438.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10439.  ///       information was available for this class.
  10440.  class  SCIFI_SelectTargetSpin_Zode_EW : public afxEffectWrapperData {
  10441.    public:
  10442.  };
  10443.  
  10444.  /// Stub class
  10445.  ///
  10446.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10447.  ///       information was available for this class.
  10448.  class  SCIFI_SelectTargetSpin_Zode_CE : public afxZodiacData {
  10449.    public:
  10450.  };
  10451.  
  10452.  /// Stub class
  10453.  ///
  10454.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10455.  ///       information was available for this class.
  10456.  class  SCIFI_SelectTarget_Zode_EW : public afxEffectWrapperData {
  10457.    public:
  10458.  };
  10459.  
  10460.  /// Stub class
  10461.  ///
  10462.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10463.  ///       information was available for this class.
  10464.  class  SCIFI_SelectTarget_Zode_CE : public afxZodiacData {
  10465.    public:
  10466.  };
  10467.  
  10468.  class  afxXM_BaseData : public GameBaseData {
  10469.    public:
  10470.     /*!
  10471.     ...
  10472.    
  10473.      */
  10474.     bool ignoreTimeFactor;
  10475.  
  10476.     /*! @name Scripting
  10477.     @{ */
  10478.     /*! */
  10479.     /// @}
  10480.  
  10481.  
  10482.     /*! @name Ungrouped
  10483.     @{ */
  10484.     /*! */
  10485.     /// @}
  10486.  
  10487.  
  10488.     /*! @name Object
  10489.     @{ */
  10490.     /*! */
  10491.     /// @}
  10492.  
  10493.  
  10494.     /*! @name Editing
  10495.     @{ */
  10496.     /*! */
  10497.     /// @}
  10498.  
  10499.  
  10500.     /*! @name Persistence
  10501.     @{ */
  10502.     /*! */
  10503.     /// @}
  10504.  
  10505.  };
  10506.  
  10507.  class  afxXM_WeightedBaseData : public afxXM_BaseData {
  10508.    public:
  10509.     /*!
  10510.     ...
  10511.    
  10512.      */
  10513.     float delay;
  10514.     /*!
  10515.     ...
  10516.    
  10517.      */
  10518.     float lifetime;
  10519.     /*!
  10520.     ...
  10521.    
  10522.      */
  10523.     float fadeInTime;
  10524.     /*!
  10525.     ...
  10526.    
  10527.      */
  10528.     float fadeOutTime;
  10529.     /*!
  10530.     ...
  10531.    
  10532.      */
  10533.     Point2F fadeInEase;
  10534.     /*!
  10535.     ...
  10536.    
  10537.      */
  10538.     Point2F fadeOutEase;
  10539.     /*!
  10540.     ...
  10541.    
  10542.      */
  10543.     float lifetimeBias;
  10544.  
  10545.     /*! @name Scripting
  10546.     @{ */
  10547.     /*! */
  10548.     /// @}
  10549.  
  10550.  
  10551.     /*! @name Ungrouped
  10552.     @{ */
  10553.     /*! */
  10554.     /// @}
  10555.  
  10556.  
  10557.     /*! @name Object
  10558.     @{ */
  10559.     /*! */
  10560.     /// @}
  10561.  
  10562.  
  10563.     /*! @name Editing
  10564.     @{ */
  10565.     /*! */
  10566.     /// @}
  10567.  
  10568.  
  10569.     /*! @name Persistence
  10570.     @{ */
  10571.     /*! */
  10572.     /// @}
  10573.  
  10574.  };
  10575.  
  10576.  /*!
  10577.  @brief An xmod datablock.
  10578.  
  10579.  @ingroup afxXMods
  10580.  @ingroup AFX
  10581.  @ingroup Datablocks
  10582.   */
  10583.  class  afxXM_ScaleData : public afxXM_WeightedBaseData {
  10584.    public:
  10585.     /*!
  10586.     ...
  10587.    
  10588.      */
  10589.     Point3F scale;
  10590.  
  10591.     /*! @name Scripting
  10592.     @{ */
  10593.     /*! */
  10594.     /// @}
  10595.  
  10596.  
  10597.     /*! @name Ungrouped
  10598.     @{ */
  10599.     /*! */
  10600.     /// @}
  10601.  
  10602.  
  10603.     /*! @name Object
  10604.     @{ */
  10605.     /*! */
  10606.     /// @}
  10607.  
  10608.  
  10609.     /*! @name Editing
  10610.     @{ */
  10611.     /*! */
  10612.     /// @}
  10613.  
  10614.  
  10615.     /*! @name Persistence
  10616.     @{ */
  10617.     /*! */
  10618.     /// @}
  10619.  
  10620.  };
  10621.  
  10622.  /// Stub class
  10623.  ///
  10624.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10625.  ///       information was available for this class.
  10626.  class  SCIFI_SelectTarget_scale_XM : public afxXM_ScaleData {
  10627.    public:
  10628.  };
  10629.  
  10630.  /// Stub class
  10631.  ///
  10632.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10633.  ///       information was available for this class.
  10634.  class  SCIFI_AimedZodeMooring_EW : public afxEffectWrapperData {
  10635.    public:
  10636.  };
  10637.  
  10638.  /*!
  10639.  @brief A datablock that specifies a Mooring effect.
  10640.  
  10641.  A Mooring is an invisible effect object which can be positioned and oriented within a scene like other objects. Its main purpose is to serve as a common mount point for other effects within the same choreographer. Typically one uses AFX animation features to create movement for a Mooring and then other effects are bound to it using effect-to-effect constraints (#effect).
  10642.  
  10643.  @ingroup afxEffects
  10644.  @ingroup AFX
  10645.  @ingroup Datablocks
  10646.   */
  10647.  class  afxMooringData : public GameBaseData {
  10648.    public:
  10649.     /*!
  10650.     Specifies whether to display an axis to help visualize the position and orientation of the mooring.
  10651.    
  10652.      */
  10653.     bool displayAxisMarker;
  10654.     /*!
  10655.     This field is only meaningful for networking settings of SCOPE_ALWAYS and GHOSTABLE. In these cases, client moorings are ghosting a mooring on the server, and trackPosOnly determines if the client moorings need to be updated with the server mooring's complete transform or just its position. If only the position needs to be tracked, setting trackPosOnly to true will reduce the network traffic.
  10656.    
  10657.      */
  10658.     bool trackPosOnly;
  10659.     /*!
  10660.     Specifies the networking model used for the mooring and should be one of: $AFX::SCOPE_ALWAYS, $AFX::GHOSTABLE, $AFX::SERVER_ONLY, or $AFX::CLIENT_ONLY
  10661.    
  10662.      */
  10663.     char networking;
  10664.  
  10665.     /*! @name Scripting
  10666.     @{ */
  10667.     /*! */
  10668.     /// @}
  10669.  
  10670.  
  10671.     /*! @name Ungrouped
  10672.     @{ */
  10673.     /*! */
  10674.     /// @}
  10675.  
  10676.  
  10677.     /*! @name Object
  10678.     @{ */
  10679.     /*! */
  10680.     /// @}
  10681.  
  10682.  
  10683.     /*! @name Editing
  10684.     @{ */
  10685.     /*! */
  10686.     /// @}
  10687.  
  10688.  
  10689.     /*! @name Persistence
  10690.     @{ */
  10691.     /*! */
  10692.     /// @}
  10693.  
  10694.  };
  10695.  
  10696.  /// Stub class
  10697.  ///
  10698.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10699.  ///       information was available for this class.
  10700.  class  SCIFI_AimedZodeMooring_CE : public afxMooringData {
  10701.    public:
  10702.  };
  10703.  
  10704.  /*!
  10705.  @brief An xmod datablock.
  10706.  
  10707.  @ingroup afxXMods
  10708.  @ingroup AFX
  10709.  @ingroup Datablocks
  10710.   */
  10711.  class  afxXM_AimData : public afxXM_WeightedBaseData {
  10712.    public:
  10713.     /*!
  10714.     ...
  10715.    
  10716.      */
  10717.     bool aimZOnly;
  10718.  
  10719.     /*! @name Scripting
  10720.     @{ */
  10721.     /*! */
  10722.     /// @}
  10723.  
  10724.  
  10725.     /*! @name Ungrouped
  10726.     @{ */
  10727.     /*! */
  10728.     /// @}
  10729.  
  10730.  
  10731.     /*! @name Object
  10732.     @{ */
  10733.     /*! */
  10734.     /// @}
  10735.  
  10736.  
  10737.     /*! @name Editing
  10738.     @{ */
  10739.     /*! */
  10740.     /// @}
  10741.  
  10742.  
  10743.     /*! @name Persistence
  10744.     @{ */
  10745.     /*! */
  10746.     /// @}
  10747.  
  10748.  };
  10749.  
  10750.  /// Stub class
  10751.  ///
  10752.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10753.  ///       information was available for this class.
  10754.  class  SCIFI_SelectPointer_aim_XM : public afxXM_AimData {
  10755.    public:
  10756.  };
  10757.  
  10758.  /// Stub class
  10759.  ///
  10760.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10761.  ///       information was available for this class.
  10762.  class  SCIFI_FixedZodeMooring_EW : public afxEffectWrapperData {
  10763.    public:
  10764.  };
  10765.  
  10766.  /// Stub class
  10767.  ///
  10768.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10769.  ///       information was available for this class.
  10770.  class  SCIFI_FixedZodeMooring_CE : public afxMooringData {
  10771.    public:
  10772.  };
  10773.  
  10774.  /// Stub class
  10775.  ///
  10776.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10777.  ///       information was available for this class.
  10778.  class  BlueFlower_SELE : public afxSelectronData {
  10779.    public:
  10780.  };
  10781.  
  10782.  /// Stub class
  10783.  ///
  10784.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10785.  ///       information was available for this class.
  10786.  class  BlueFlower_main2_Zode_EW : public afxEffectWrapperData {
  10787.    public:
  10788.  };
  10789.  
  10790.  /// Stub class
  10791.  ///
  10792.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10793.  ///       information was available for this class.
  10794.  class  BlueFlower_main2_Zode_CE : public afxZodiacData {
  10795.    public:
  10796.  };
  10797.  
  10798.  /// Stub class
  10799.  ///
  10800.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10801.  ///       information was available for this class.
  10802.  class  BlueFlower_main1_Zode_EW : public afxEffectWrapperData {
  10803.    public:
  10804.  };
  10805.  
  10806.  /// Stub class
  10807.  ///
  10808.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10809.  ///       information was available for this class.
  10810.  class  BlueFlower_main1_Zode_CE : public afxZodiacData {
  10811.    public:
  10812.  };
  10813.  
  10814.  /// Stub class
  10815.  ///
  10816.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10817.  ///       information was available for this class.
  10818.  class  BlueFlower_mainGlow3_Zode_EW : public afxEffectWrapperData {
  10819.    public:
  10820.  };
  10821.  
  10822.  /// Stub class
  10823.  ///
  10824.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10825.  ///       information was available for this class.
  10826.  class  BlueFlower_mainGlow3_Zode_CE : public afxZodiacData {
  10827.    public:
  10828.  };
  10829.  
  10830.  /// Stub class
  10831.  ///
  10832.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10833.  ///       information was available for this class.
  10834.  class  BlueFlower_mainGlow2_Zode_EW : public afxEffectWrapperData {
  10835.    public:
  10836.  };
  10837.  
  10838.  /// Stub class
  10839.  ///
  10840.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10841.  ///       information was available for this class.
  10842.  class  BlueFlower_mainGlow2_Zode_CE : public afxZodiacData {
  10843.    public:
  10844.  };
  10845.  
  10846.  /// Stub class
  10847.  ///
  10848.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10849.  ///       information was available for this class.
  10850.  class  BlueFlower_mainGlow1_Zode_EW : public afxEffectWrapperData {
  10851.    public:
  10852.  };
  10853.  
  10854.  /// Stub class
  10855.  ///
  10856.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10857.  ///       information was available for this class.
  10858.  class  BlueFlower_mainGlow1_Zode_CE : public afxZodiacData {
  10859.    public:
  10860.  };
  10861.  
  10862.  /// Stub class
  10863.  ///
  10864.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10865.  ///       information was available for this class.
  10866.  class  BlueFlower_mainGlow_Zode_EW : public afxEffectWrapperData {
  10867.    public:
  10868.  };
  10869.  
  10870.  /// Stub class
  10871.  ///
  10872.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10873.  ///       information was available for this class.
  10874.  class  BlueFlower_mainGlow_Zode_CE : public afxZodiacData {
  10875.    public:
  10876.  };
  10877.  
  10878.  /// Stub class
  10879.  ///
  10880.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10881.  ///       information was available for this class.
  10882.  class  BlueFlower_main_Zode_EW : public afxEffectWrapperData {
  10883.    public:
  10884.  };
  10885.  
  10886.  /// Stub class
  10887.  ///
  10888.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10889.  ///       information was available for this class.
  10890.  class  BlueFlower_main_Zode_CE : public afxZodiacData {
  10891.    public:
  10892.  };
  10893.  
  10894.  /// Stub class
  10895.  ///
  10896.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10897.  ///       information was available for this class.
  10898.  class  BlueFlower_rays2_Zode_EW : public afxEffectWrapperData {
  10899.    public:
  10900.  };
  10901.  
  10902.  /// Stub class
  10903.  ///
  10904.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10905.  ///       information was available for this class.
  10906.  class  BlueFlower_rays2_Zode_CE : public afxZodiacData {
  10907.    public:
  10908.  };
  10909.  
  10910.  /// Stub class
  10911.  ///
  10912.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10913.  ///       information was available for this class.
  10914.  class  BlueFlower_rays1_Zode_EW : public afxEffectWrapperData {
  10915.    public:
  10916.  };
  10917.  
  10918.  /// Stub class
  10919.  ///
  10920.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10921.  ///       information was available for this class.
  10922.  class  BlueFlower_rays1_Zode_CE : public afxZodiacData {
  10923.    public:
  10924.  };
  10925.  
  10926.  /// Stub class
  10927.  ///
  10928.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10929.  ///       information was available for this class.
  10930.  class  BlueFlower_glowring2_Zode_EW : public afxEffectWrapperData {
  10931.    public:
  10932.  };
  10933.  
  10934.  /// Stub class
  10935.  ///
  10936.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10937.  ///       information was available for this class.
  10938.  class  BlueFlower_glowring2_Zode_CE : public afxZodiacData {
  10939.    public:
  10940.  };
  10941.  
  10942.  /// Stub class
  10943.  ///
  10944.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10945.  ///       information was available for this class.
  10946.  class  BlueFlower_glowring1_Zode_EW : public afxEffectWrapperData {
  10947.    public:
  10948.  };
  10949.  
  10950.  /// Stub class
  10951.  ///
  10952.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10953.  ///       information was available for this class.
  10954.  class  BlueFlower_glowring1_Zode_CE : public afxZodiacData {
  10955.    public:
  10956.  };
  10957.  
  10958.  /// Stub class
  10959.  ///
  10960.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10961.  ///       information was available for this class.
  10962.  class  BlueFlower_glow_Zode_EW : public afxEffectWrapperData {
  10963.    public:
  10964.  };
  10965.  
  10966.  /// Stub class
  10967.  ///
  10968.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10969.  ///       information was available for this class.
  10970.  class  BlueFlower_glow_Zode_CE : public afxZodiacData {
  10971.    public:
  10972.  };
  10973.  
  10974.  /// Stub class
  10975.  ///
  10976.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10977.  ///       information was available for this class.
  10978.  class  BlueFlower_FixedZodeMooring_EW : public afxEffectWrapperData {
  10979.    public:
  10980.  };
  10981.  
  10982.  /// Stub class
  10983.  ///
  10984.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10985.  ///       information was available for this class.
  10986.  class  BlueFlower_FixedZodeMooring_CE : public afxMooringData {
  10987.    public:
  10988.  };
  10989.  
  10990.  /// Stub class
  10991.  ///
  10992.  /// @note This is a stub class to ensure a proper class hierarchy. No
  10993.  ///       information was available for this class.
  10994.  class  Booming_SELE : public afxSelectronData {
  10995.    public:
  10996.  };
  10997.  
  10998.  /// Stub class
  10999.  ///
  11000.  /// @note This is a stub class to ensure a proper class hierarchy. No
  11001.  ///       information was available for this class.
  11002.  class  Booming_Explosion_EW : public afxEffectWrapperData {
  11003.    public:
  11004.  };
  11005.  
  11006.  /*!
  11007.  @brief The data on what an explosion should look like. Definesa particle data, debris data,
  11008.  affects the lighting conditions in the region of the explosion, and shakes the camera.
  11009.  @ingroup FX
  11010.   */
  11011.  class  ExplosionData : public GameBaseData {
  11012.    public:
  11013.     /*!
  11014.     DTS shape to place at the center of the explosion. The 'ambient' animation of this model will automatically be played at the start of the explosion.
  11015.    
  11016.      */
  11017.     filename explosionShape;
  11018.     /*!
  11019.     Non-looping sound effect that will be played at the start of the explosion.
  11020.    
  11021.      */
  11022.     SFXTrack soundProfile;
  11023.     /*!
  11024.     Boolean, sets if the visual effects of the explosion should or should not face the player.
  11025.    
  11026.      */
  11027.     bool faceViewer;
  11028.     /*!
  11029.     ParticleEmitterData object to be spawned with this explosion.
  11030.    
  11031.      */
  11032.     ParticleEmitterData ParticleEmitter;
  11033.     /*!
  11034.     Density of the particles used in the explosion.
  11035.    
  11036.      */
  11037.     int particleDensity;
  11038.     /*!
  11039.     Radius distance that particles should travel from the explosion.
  11040.    
  11041.      */
  11042.     float particleRadius;
  11043.     /*!
  11044.     Scale size create the explosionShape DTS model at the start of the explosion.
  11045.    
  11046.      */
  11047.     Point3F explosionScale;
  11048.     /*!
  11049.     Time scale at which to play the full explosion sequence.
  11050.    
  11051.      */
  11052.     float playSpeed;
  11053.     /*!
  11054.     List of ParticleEmitterData objects to spawn with this explosion.
  11055.    
  11056.      */
  11057.     ParticleEmitterData emitter;
  11058.     /*!
  11059.     List of DebrisData to spawn with this explosion.
  11060.    
  11061.      */
  11062.     DebrisData Debris;
  11063.     /*!
  11064.     Minimum angle, from the horizontal plane, to eject debris from.
  11065.  
  11066.    
  11067.      */
  11068.     float debrisThetaMin;
  11069.     /*!
  11070.     Maximum angle, from the horizontal plane, to eject debris from.
  11071.  
  11072.    
  11073.      */
  11074.     float debrisThetaMax;
  11075.     /*!
  11076.     Minimum reference angle, from the vertical plane, to eject debris from.
  11077.  
  11078.    
  11079.      */
  11080.     float debrisPhiMin;
  11081.     /*!
  11082.     Maximum reference angle, from the vertical plane, to eject debris from.
  11083.  
  11084.    
  11085.      */
  11086.     float debrisPhiMax;
  11087.     /*!
  11088.     Number of debris objects to create.
  11089.  
  11090.    
  11091.      */
  11092.     int debrisNum;
  11093.     /*!
  11094.     Variance in the number of debris objects to create, from 0 to n.
  11095.  
  11096.    
  11097.      */
  11098.     int debrisNumVariance;
  11099.     /*!
  11100.     Velocity to toss debris at.
  11101.  
  11102.    
  11103.      */
  11104.     float debrisVelocity;
  11105.     /*!
  11106.     Variance in the debris velocity, from 0 to n.
  11107.  
  11108.    
  11109.      */
  11110.     float debrisVelocityVariance;
  11111.     /*!
  11112.     List of additional ExplosionData objects to create alongside this ExplosionData object.
  11113.  
  11114.    
  11115.      */
  11116.     ExplosionData subExplosion;
  11117.     /*!
  11118.     Amount of time, in milliseconds, to delay the explosion from starting from the creation of this ExplosionData object.
  11119.  
  11120.    
  11121.      */
  11122.     int delayMS;
  11123.     /*!
  11124.     Variance of the delayMS, in milliseconds, to delay the expolosion from start from the creation of this ExplosionData object.
  11125.  
  11126.    
  11127.      */
  11128.     int delayVariance;
  11129.     /*!
  11130.     Lifetime, in milliseconds, of this ExplosionData object.
  11131.  
  11132.    
  11133.      */
  11134.     int lifetimeMS;
  11135.     /*!
  11136.     Time variance, in milliseconds, for the lifetimeMS of this ExplosionData object.
  11137.  
  11138.    
  11139.      */
  11140.     int lifetimeVariance;
  11141.     /*!
  11142.     Allowed offset for the center position of this ExplosionData to be created from the specified position.
  11143.  
  11144.    
  11145.      */
  11146.     float offset;
  11147.     /*!
  11148.     Times to transition through the explosion effect. Up to 4 allowed. Values are 0.0 - 1.0, and corrispond to the life of the ExplosionData where 0 is the beginning and 1 is end of the lifespace.
  11149.  
  11150.    
  11151.      */
  11152.     float times;
  11153.     /*!
  11154.     Sizes to set the ExplosionData. Up to 4 allowed. Will transition through sizes based on values set in the times value.
  11155.  
  11156.    
  11157.      */
  11158.     Point3F sizes;
  11159.     /*!
  11160.     Boolean, determines if the camera shakes or not during this explosion.
  11161.  
  11162.    
  11163.      */
  11164.     bool shakeCamera;
  11165.     /*!
  11166.     Frequency to shake the camera, defined as the 3 F32 values of X Y Z.
  11167.  
  11168.    
  11169.      */
  11170.     Point3F camShakeFreq;
  11171.     /*!
  11172.     Amplitude to shake the camera, defined as the 3 F32 values of X Y Z.
  11173.  
  11174.    
  11175.      */
  11176.     Point3F camShakeAmp;
  11177.     /*!
  11178.     Duration to shake the camera.
  11179.  
  11180.    
  11181.      */
  11182.     float camShakeDuration;
  11183.     /*!
  11184.     Radial distance that a camera's position must be in relation to the center of the explosion to have its camera shaken.
  11185.  
  11186.    
  11187.      */
  11188.     float camShakeRadius;
  11189.     /*!
  11190.     Falloff value for the camera shake.
  11191.  
  11192.    
  11193.      */
  11194.     float camShakeFalloff;
  11195.     /*!
  11196.      */
  11197.     float lightStartRadius;
  11198.     /*!
  11199.      */
  11200.     float lightEndRadius;
  11201.     /*!
  11202.      */
  11203.     ColorF lightStartColor;
  11204.     /*!
  11205.      */
  11206.     ColorF lightEndColor;
  11207.     /*!
  11208.      */
  11209.     float lightStartBrightness;
  11210.     /*!
  11211.      */
  11212.     float lightEndBrightness;
  11213.     /*!
  11214.      */
  11215.     float lightNormalOffset;
  11216.  
  11217.     /*! @name Scripting
  11218.     @{ */
  11219.     /*! */
  11220.     /// @}
  11221.  
  11222.  
  11223.     /*! @name Ungrouped
  11224.     @{ */
  11225.     /*! */
  11226.     /// @}
  11227.  
  11228.  
  11229.     /*! @name Object
  11230.     @{ */
  11231.     /*! */
  11232.     /// @}
  11233.  
  11234.  
  11235.     /*! @name Editing
  11236.     @{ */
  11237.     /*! */
  11238.     /// @}
  11239.  
  11240.  
  11241.     /*! @name Persistence
  11242.     @{ */
  11243.     /*! */
  11244.     /// @}
  11245.  
  11246.  };
  11247.  
  11248.  /// Stub class
  11249.  ///
  11250.  /// @note This is a stub class to ensure a proper class hierarchy. No
  11251.  ///       information was available for this class.
  11252.  class  Booming_Explosion_CE : public ExplosionData {
  11253.    public:
  11254.  };
  11255.  
  11256.  /*!
  11257.  @brief Acts as the physical point in space in white Particles are created from.
  11258.  Also manages how to fire particles, including velocity, offset and length of firing (or 'ejection').
  11259.  
  11260.  @tsexample
  11261.  datablock ParticleEmitterData(GrenadeExpDustEmitter)
  11262.  {
  11263.     ejectionPeriodMS = 1;
  11264.     periodVarianceMS = 0;
  11265.     ejectionVelocity = 15;
  11266.     velocityVariance = 0.0;
  11267.     ejectionOffset = 0.0;
  11268.     thetaMin = 85;
  11269.     thetaMax = 85;
  11270.     phiReferenceVel = 0;
  11271.     phiVariance = 360;
  11272.     overrideAdvances = false;
  11273.     lifetimeMS = 200;
  11274.     particles = "GrenadeExpDust";
  11275.  };
  11276.  @endtsexample
  11277.  
  11278.  @ingroup FX
  11279.   */
  11280.  class  ParticleEmitterData : public GameBaseData {
  11281.    public:
  11282.     /*! Reloads this emitter
  11283. @tsexample
  11284. // Get the editor's current particle emitter
  11285. %emitter = PE_EmitterEditor.currEmitter
  11286.  
  11287. // Change a field value
  11288. %emitter.setFieldValue(%propertyField,%value);
  11289.  
  11290. // Reload this emitter
  11291. %emitter.reload();
  11292. @endtsexample
  11293.  */
  11294.     virtual void reload(()) {}
  11295.  
  11296.     /*! @name ParticleEmitterData
  11297.     @{ */
  11298.     /*! */
  11299.     /*!
  11300.     Time, in Milliseconds, between particle ejection.
  11301.  
  11302.    
  11303.      */
  11304.     int ejectionPeriodMS;
  11305.     /*!
  11306.     Variance in ejection period between 0 milliseconds and n.
  11307.  
  11308.    
  11309.      */
  11310.     int periodVarianceMS;
  11311.     /*!
  11312.     Ejection velocity.
  11313.  
  11314.    
  11315.      */
  11316.     float ejectionVelocity;
  11317.     /*!
  11318.     Variance for velocity between 0 and n.
  11319.  
  11320.    
  11321.      */
  11322.     float velocityVariance;
  11323.     /*!
  11324.     Z offset from emitter point to eject from.
  11325.  
  11326.    
  11327.      */
  11328.     float ejectionOffset;
  11329.     /*!
  11330.     Minimum angle, from the horizontal plane, to eject from.
  11331.  
  11332.    
  11333.      */
  11334.     float thetaMin;
  11335.     /*!
  11336.     Maximum angle, from the horizontal plane, to eject from.
  11337.  
  11338.    
  11339.      */
  11340.     float thetaMax;
  11341.     /*!
  11342.     Reference angle, from the vertical plane, to eject from.
  11343.  
  11344.    
  11345.      */
  11346.     float phiReferenceVel;
  11347.     /*!
  11348.     Variance from the reference angle, from 0 to n.
  11349.  
  11350.    
  11351.      */
  11352.     float phiVariance;
  11353.     /*!
  11354.     For soft particles, the distance (in meters) where particles will be faded based on the difference in depth between the particle and the scene geometry.
  11355.  
  11356.    
  11357.      */
  11358.     float softnessDistance;
  11359.     /*!
  11360.     Used to generate the final particle color by interpolating between the particle color and the particle color multiplied by the ambient color.
  11361.  
  11362.    
  11363.      */
  11364.     float ambientFactor;
  11365.     /*!
  11366.     If false, particles emitted in the same frame have their positions adjusted. If true, adjustment is skipped and particles will clump together.
  11367.  
  11368.    
  11369.      */
  11370.     bool overrideAdvance;
  11371.     /*!
  11372.     If true, Particles will always face the screen.
  11373.  
  11374.    
  11375.      */
  11376.     bool orientParticles;
  11377.     /*!
  11378.     If true, Particles will face the screen at the start.
  11379.  
  11380.    
  11381.      */
  11382.     bool orientOnVelocity;
  11383.     /*!
  11384.     Used to load particle data directly from a string.
  11385.  
  11386.    
  11387.      */
  11388.     string particles;
  11389.     /*!
  11390.     Lifetime of particles.
  11391.  
  11392.    
  11393.      */
  11394.     int lifetimeMS;
  11395.     /*!
  11396.     Variance in lifetime from 0 milliseconds to n.
  11397.  
  11398.    
  11399.      */
  11400.     int lifetimeVarianceMS;
  11401.     /*!
  11402.     If true, will use emitter specified sizes instead of datablock sizes.
  11403.  
  11404.    
  11405.      */
  11406.     bool useEmitterSizes;
  11407.     /*!
  11408.     If true, will use emitter specified colors instead of datablock colors.
  11409.  
  11410.    
  11411.      */
  11412.     bool useEmitterColors;
  11413.     /*!
  11414.     Pre-defined blend factor setting. Use integer value. BlendNormal = 1, BlendAdditive = 2, BlendSubtractive = 3, BlendPremultAlpha = 4, BlendGreyscale = 5.
  11415.  
  11416.    
  11417.      */
  11418.     ParticleBlendStyle blendStyle;
  11419.     /*!
  11420.     If true, particles are sorted back-to-front.
  11421.  
  11422.    
  11423.      */
  11424.     bool sortParticles;
  11425.     /*!
  11426.     If true, reverses draw order of particles.
  11427.  
  11428.    
  11429.      */
  11430.     bool reverseOrder;
  11431.     /*!
  11432.     Emitter texture file to override particle textures.
  11433.  
  11434.    
  11435.      */
  11436.     string textureName;
  11437.     /*!
  11438.     If true, particles always face along a particular axis.
  11439.  
  11440.    
  11441.      */
  11442.     bool alignParticles;
  11443.     /*!
  11444.     The direction aligned particles should face, defined as the 3 F32 values of X Y Z.
  11445.  
  11446.    
  11447.      */
  11448.     Point3F alignDirection;
  11449.     /*!
  11450.      3 coordinates randomizing local emit positions values of X Y Z.
  11451.  
  11452.    
  11453.      */
  11454.     Point3F randomArea;
  11455.     /*!
  11456.     3 angles for rotation of randomized cube values of alpha beta gamma.
  11457.  
  11458.    
  11459.      */
  11460.     Point3F angles;
  11461.     /*!
  11462.     pivot point for texture, default is 0, 0
  11463.  
  11464.    
  11465.      */
  11466.     Point2F pivotPoint;
  11467.     /*!
  11468.     scale for texture, default is 1, 1
  11469.  
  11470.    
  11471.      */
  11472.     Point2F scale;
  11473.     /*!
  11474.     Strength of noise acting on particles.
  11475.  
  11476.    
  11477.      */
  11478.     float noiseStrength;
  11479.     /*!
  11480.     Variance from the reference angle, from 0 to n.
  11481.  
  11482.    
  11483.      */
  11484.     float phiVariance;
  11485.     /*!
  11486.     This particle system should not use the mixed-resolution renderer. If your particle system has large amounts of overdraw, consider disabling this option.
  11487.    
  11488.      */
  11489.     bool highResOnly;
  11490.     /*!
  11491.     Enables this particle emitter to render into reflective surfaces like water.
  11492.  
  11493.    
  11494.      */
  11495.     bool renderReflection;
  11496.     /// @}
  11497.  
  11498.  
  11499.     /*! @name AFX
  11500.     @{ */
  11501.     /*! */
  11502.     /*!
  11503.      */
  11504.     bool ejectionInvert;
  11505.     /*!
  11506.      */
  11507.     bool fadeColor;
  11508.     /*!
  11509.      */
  11510.     bool fadeAlpha;
  11511.     /*!
  11512.      */
  11513.     bool fadeSize;
  11514.     /*!
  11515.      */
  11516.     bool useEmitterTransform;
  11517.     /// @}
  11518.  
  11519.  
  11520.     /*! @name AFX Pooled Particles
  11521.     @{ */
  11522.     /*! */
  11523.     /*!
  11524.      */
  11525.     afxParticlePoolData poolData;
  11526.     /*!
  11527.      */
  11528.     int poolIndex;
  11529.     /*!
  11530.      */
  11531.     bool poolDepthFade;
  11532.     /*!
  11533.      */
  11534.     bool poolRadialFade;
  11535.     /// @}
  11536.  
  11537.  
  11538.     /*! @name Scripting
  11539.     @{ */
  11540.     /*! */
  11541.     /// @}
  11542.  
  11543.  
  11544.     /*! @name Ungrouped
  11545.     @{ */
  11546.     /*! */
  11547.     /// @}
  11548.  
  11549.  
  11550.     /*! @name Object
  11551.     @{ */
  11552.     /*! */
  11553.     /// @}
  11554.  
  11555.  
  11556.     /*! @name Editing
  11557.     @{ */
  11558.     /*! */
  11559.     /// @}
  11560.  
  11561.  
  11562.     /*! @name Persistence
  11563.     @{ */
  11564.     /*! */
  11565.     /// @}
  11566.  
  11567.  };
  11568.  
  11569.  /// Stub class
  11570.  ///
  11571.  /// @note This is a stub class to ensure a proper class hierarchy. No
  11572.  ///       information was available for this class.
  11573.  class  Booming_ExplosionSmoke_E : public ParticleEmitterData {
  11574.    public:
  11575.  };
  11576.  
  11577.  /// Stub class
  11578.  ///
  11579.  /// @note This is a stub class to ensure a proper class hierarchy. No
  11580.  ///       information was available for this class.
  11581.  class  Booming_ExplosionFire_E : public ParticleEmitterData {
  11582.    public:
  11583.  };
  11584.  
  11585.  /*!
  11586.  @brief Contains information for how specific particles should look and react including
  11587.  particle colors, particle imagemap, acceleration value for individual particles and spin information.
  11588.  @ingroup FX
  11589.   */
  11590.  class  ParticleData : public SimDataBlock {
  11591.    public:
  11592.     /*! Reloads this particle.
  11593. @tsexample
  11594. // Get the editor's current particle
  11595. %particle = PE_ParticleEditor.currParticle
  11596.  
  11597. // Change a particle value
  11598. %particle.setFieldValue(%propertyField,%value);
  11599.  
  11600. // Reload it
  11601. %particle.reload();
  11602. @endtsexample
  11603.  */
  11604.     virtual void reload(()) {}
  11605.     /*!
  11606.     Particle physics drag amount.
  11607.  
  11608.    
  11609.      */
  11610.     float dragCoefficient;
  11611.     /*!
  11612.     Strength of wind on the particles.
  11613.  
  11614.    
  11615.      */
  11616.     float windCoefficient;
  11617.     /*!
  11618.     Strength of gravity on the particles.
  11619.  
  11620.    
  11621.      */
  11622.     float gravityCoefficient;
  11623.     /*!
  11624.     Amount to allow the velocity inherited from the emitter to effect the velocity of these particles.
  11625.  
  11626.    
  11627.      */
  11628.     float inheritedVelFactor;
  11629.     /*!
  11630.     Amount to continously accelerate this particle by.
  11631.  
  11632.    
  11633.      */
  11634.     float constantAcceleration;
  11635.     /*!
  11636.     Time in milliseconds before this particle is destroyed.
  11637.  
  11638.    
  11639.      */
  11640.     int lifetimeMS;
  11641.     /*!
  11642.     Variance in lifetime of particle between 0 milliseconds and n.
  11643.  
  11644.    
  11645.      */
  11646.     int lifetimeVarianceMS;
  11647.     /*!
  11648.     Speed at which to spin the particle.
  11649.  
  11650.    
  11651.      */
  11652.     float spinSpeed;
  11653.     /*!
  11654.     Minimum allowed spin speed of this particle, between n and spinRandomMax.
  11655.  
  11656.    
  11657.      */
  11658.     float spinRandomMin;
  11659.     /*!
  11660.     Maximum allowed spin speed of this particle, between spinRandomMin and n.
  11661.  
  11662.    
  11663.      */
  11664.     float spinRandomMax;
  11665.     /*!
  11666.     If true, will invert the colors of this particle.
  11667.  
  11668.    
  11669.      */
  11670.     bool useInvAlpha;
  11671.     /*!
  11672.     If true, allow the particle texture to be an animated sprite.
  11673.  
  11674.    
  11675.      */
  11676.     bool animateTexture;
  11677.     /*!
  11678.     If animateTexture is true, this defines the frames per second of the sprite animation.
  11679.  
  11680.    
  11681.      */
  11682.     int framesPerSec;
  11683.     /*!
  11684.     4 dimensional array defining the 4 locational points, in F32 (where 0.0 is top / left and 1.0 is bottom / right) of the textureName to use for this particle.
  11685.    
  11686.      */
  11687.     Point2F textureCoords;
  11688.     /*!
  11689.     The number of frames, in the rows and columns, stored in animTexName. Maximum of 256 frames can be stored in a single animTexName when using animTexTiling. Entered as "Columns / Rows". eg. "4 4".
  11690.  
  11691.    
  11692.      */
  11693.     Point2I animTexTiling;
  11694.     /*!
  11695.     A list of frames and / or frame ranges to use for particle animation if animateTexture is true. Example: "0-16 20 19 18 17 31-21".
  11696.  
  11697.    
  11698.      */
  11699.     string animTexFrames;
  11700.     /*!
  11701.     Texture file to use for this particle.
  11702.  
  11703.    
  11704.      */
  11705.     string textureName;
  11706.     /*!
  11707.     Texture file to use for this particle if animateTexture is true.
  11708.  
  11709.    
  11710.      */
  11711.     string animTexName;
  11712.     /*!
  11713.     Color values to set the particles, rgba. Up to 4 allowed. Will transition through colors based on values set in the times value. Example: colors[0] = "0.6 1.0 1.0 0.5".
  11714.  
  11715.    
  11716.      */
  11717.     ColorF colors;
  11718.     /*!
  11719.     Sizes to set the particles. Up to 4 allowed. Will transition through sizes based on values set in the times value.
  11720.  
  11721.    
  11722.      */
  11723.     float sizes;
  11724.     /*!
  11725.     Times to transition between colors and sizes. Up to 4 allowed. Values are 0.0 - 1.0, and corrispond to the life of the particle where 0 is first created and 1 is end of lifespace.
  11726.  
  11727.    
  11728.      */
  11729.     float times;
  11730.  
  11731.     /*! @name AFX
  11732.     @{ */
  11733.     /*! */
  11734.     /*!
  11735.      */
  11736.     filename textureExtName;
  11737.     /*!
  11738.      */
  11739.     bool constrainPos;
  11740.     /*!
  11741.      */
  11742.     float angle;
  11743.     /*!
  11744.      */
  11745.     float angleVariance;
  11746.     /*!
  11747.      */
  11748.     float sizeBias;
  11749.     /*!
  11750.      */
  11751.     float spinBias;
  11752.     /*!
  11753.      */
  11754.     bool randomizeSpinDir;
  11755.     /// @}
  11756.  
  11757.  
  11758.     /*! @name Ungrouped
  11759.     @{ */
  11760.     /*! */
  11761.     /// @}
  11762.  
  11763.  
  11764.     /*! @name Object
  11765.     @{ */
  11766.     /*! */
  11767.     /// @}
  11768.  
  11769.  
  11770.     /*! @name Editing
  11771.     @{ */
  11772.     /*! */
  11773.     /// @}
  11774.  
  11775.  
  11776.     /*! @name Persistence
  11777.     @{ */
  11778.     /*! */
  11779.     /// @}
  11780.  
  11781.  };
  11782.  
  11783.  /// Stub class
  11784.  ///
  11785.  /// @note This is a stub class to ensure a proper class hierarchy. No
  11786.  ///       information was available for this class.
  11787.  class  Booming_ExplosionFire_P : public ParticleData {
  11788.    public:
  11789.  };
  11790.  
  11791.  /// Stub class
  11792.  ///
  11793.  /// @note This is a stub class to ensure a proper class hierarchy. No
  11794.  ///       information was available for this class.
  11795.  class  Booming_ExplosionSmoke_P : public ParticleData {
  11796.    public:
  11797.  };
  11798.  
  11799.  /// Stub class
  11800.  ///
  11801.  /// @note This is a stub class to ensure a proper class hierarchy. No
  11802.  ///       information was available for this class.
  11803.  class  Booming_Stain_EW : public afxEffectWrapperData {
  11804.    public:
  11805.  };
  11806.  
  11807.  /// Stub class
  11808.  ///
  11809.  /// @note This is a stub class to ensure a proper class hierarchy. No
  11810.  ///       information was available for this class.
  11811.  class  Booming_Stain_CE : public afxZodiacData {
  11812.    public:
  11813.  };
  11814.  
  11815.  /// Stub class
  11816.  ///
  11817.  /// @note This is a stub class to ensure a proper class hierarchy. No
  11818.  ///       information was available for this class.
  11819.  class  Like_WoW_PURPLE_SELE : public afxSelectronData {
  11820.    public:
  11821.  };
  11822.  
  11823.  /// Stub class
  11824.  ///
  11825.  /// @note This is a stub class to ensure a proper class hierarchy. No
  11826.  ///       information was available for this class.
  11827.  class  Like_WoW_RED_SELE : public afxSelectronData {
  11828.    public:
  11829.  };
  11830.  
  11831.  /// Stub class
  11832.  ///
  11833.  /// @note This is a stub class to ensure a proper class hierarchy. No
  11834.  ///       information was available for this class.
  11835.  class  Like_WoW_WHITE_SELE : public afxSelectronData {
  11836.    public:
  11837.  };
  11838.  
  11839.  /// Stub class
  11840.  ///
  11841.  /// @note This is a stub class to ensure a proper class hierarchy. No
  11842.  ///       information was available for this class.
  11843.  class  Like_WoW_PURPLE_Zode_EW : public afxEffectWrapperData {
  11844.    public:
  11845.  };
  11846.  
  11847.  /// Stub class
  11848.  ///
  11849.  /// @note This is a stub class to ensure a proper class hierarchy. No
  11850.  ///       information was available for this class.
  11851.  class  Like_WoW_PURPLE_Zode_CE : public afxZodiacData {
  11852.    public:
  11853.  };
  11854.  
  11855.  /// Stub class
  11856.  ///
  11857.  /// @note This is a stub class to ensure a proper class hierarchy. No
  11858.  ///       information was available for this class.
  11859.  class  Like_WoW_WHITE_Zode_EW : public afxEffectWrapperData {
  11860.    public:
  11861.  };
  11862.  
  11863.  /// Stub class
  11864.  ///
  11865.  /// @note This is a stub class to ensure a proper class hierarchy. No
  11866.  ///       information was available for this class.
  11867.  class  Like_WoW_WHITE_Zode_CE : public afxZodiacData {
  11868.    public:
  11869.  };
  11870.  
  11871.  /// Stub class
  11872.  ///
  11873.  /// @note This is a stub class to ensure a proper class hierarchy. No
  11874.  ///       information was available for this class.
  11875.  class  Like_WoW_RED_Zode_EW : public afxEffectWrapperData {
  11876.    public:
  11877.  };
  11878.  
  11879.  /// Stub class
  11880.  ///
  11881.  /// @note This is a stub class to ensure a proper class hierarchy. No
  11882.  ///       information was available for this class.
  11883.  class  Like_WoW_RED_Zode_CE : public afxZodiacData {
  11884.    public:
  11885.  };
  11886.  
  11887.  /// Stub class
  11888.  ///
  11889.  /// @note This is a stub class to ensure a proper class hierarchy. No
  11890.  ///       information was available for this class.
  11891.  class  Like_WoW_aim_XM : public afxXM_AimData {
  11892.    public:
  11893.  };
  11894.  
  11895.  /// Stub class
  11896.  ///
  11897.  /// @note This is a stub class to ensure a proper class hierarchy. No
  11898.  ///       information was available for this class.
  11899.  class  AFX_OldDefault_SELE : public afxSelectronData {
  11900.    public:
  11901.  };
  11902.  
  11903.  /// Stub class
  11904.  ///
  11905.  /// @note This is a stub class to ensure a proper class hierarchy. No
  11906.  ///       information was available for this class.
  11907.  class  AFX_Old_Zode_EW : public afxEffectWrapperData {
  11908.    public:
  11909.  };
  11910.  
  11911.  /// Stub class
  11912.  ///
  11913.  /// @note This is a stub class to ensure a proper class hierarchy. No
  11914.  ///       information was available for this class.
  11915.  class  AFX_Old_Zode_CE : public afxZodiacData {
  11916.    public:
  11917.  };
  11918.  
  11919.  /// Stub class
  11920.  ///
  11921.  /// @note This is a stub class to ensure a proper class hierarchy. No
  11922.  ///       information was available for this class.
  11923.  class  SHARED_ZodiacBase_CE : public afxZodiacData {
  11924.    public:
  11925.  };
  11926.  
  11927.  /// Stub class
  11928.  ///
  11929.  /// @note This is a stub class to ensure a proper class hierarchy. No
  11930.  ///       information was available for this class.
  11931.  class  SHARED_SelectronZodiac_CE : public afxZodiacData {
  11932.    public:
  11933.  };
  11934.  
  11935.  /*!
  11936.  @brief An xmod datablock.
  11937.  
  11938.  @ingroup afxXMods
  11939.  @ingroup AFX
  11940.  @ingroup Datablocks
  11941.   */
  11942.  class  afxXM_AltitudeConformData : public afxXM_WeightedBaseData {
  11943.    public:
  11944.     /*!
  11945.     ...
  11946.    
  11947.      */
  11948.     float height;
  11949.     /*!
  11950.     ...
  11951.    
  11952.      */
  11953.     bool conformToTerrain;
  11954.     /*!
  11955.     ...
  11956.    
  11957.      */
  11958.     bool conformToInteriors;
  11959.     /*!
  11960.     ...
  11961.    
  11962.      */
  11963.     bool freeze;
  11964.     /*!
  11965.     ...
  11966.    
  11967.      */
  11968.     int interiorTypes;
  11969.     /*!
  11970.     ...
  11971.    
  11972.      */
  11973.     int terrainTypes;
  11974.  
  11975.     /*! @name Scripting
  11976.     @{ */
  11977.     /*! */
  11978.     /// @}
  11979.  
  11980.  
  11981.     /*! @name Ungrouped
  11982.     @{ */
  11983.     /*! */
  11984.     /// @}
  11985.  
  11986.  
  11987.     /*! @name Object
  11988.     @{ */
  11989.     /*! */
  11990.     /// @}
  11991.  
  11992.  
  11993.     /*! @name Editing
  11994.     @{ */
  11995.     /*! */
  11996.     /// @}
  11997.  
  11998.  
  11999.     /*! @name Persistence
  12000.     @{ */
  12001.     /*! */
  12002.     /// @}
  12003.  
  12004.  };
  12005.  
  12006.  /// Stub class
  12007.  ///
  12008.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12009.  ///       information was available for this class.
  12010.  class  SHARED_freeze_AltitudeConform_XM : public afxXM_AltitudeConformData {
  12011.    public:
  12012.  };
  12013.  
  12014.  /// Stub class
  12015.  ///
  12016.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12017.  ///       information was available for this class.
  12018.  class  SHARED_AltitudeConform_XM : public afxXM_AltitudeConformData {
  12019.    public:
  12020.  };
  12021.  
  12022.  /*!
  12023.  @brief An xmod datablock.
  12024.  
  12025.  @ingroup afxXMods
  12026.  @ingroup AFX
  12027.  @ingroup Datablocks
  12028.   */
  12029.  class  afxXM_FreezeData : public afxXM_BaseData {
  12030.    public:
  12031.     /*!
  12032.     ...
  12033.    
  12034.      */
  12035.     int mask;
  12036.     /*!
  12037.     ...
  12038.    
  12039.      */
  12040.     float delay;
  12041.  
  12042.     /*! @name Scripting
  12043.     @{ */
  12044.     /*! */
  12045.     /// @}
  12046.  
  12047.  
  12048.     /*! @name Ungrouped
  12049.     @{ */
  12050.     /*! */
  12051.     /// @}
  12052.  
  12053.  
  12054.     /*! @name Object
  12055.     @{ */
  12056.     /*! */
  12057.     /// @}
  12058.  
  12059.  
  12060.     /*! @name Editing
  12061.     @{ */
  12062.     /*! */
  12063.     /// @}
  12064.  
  12065.  
  12066.     /*! @name Persistence
  12067.     @{ */
  12068.     /*! */
  12069.     /// @}
  12070.  
  12071.  };
  12072.  
  12073.  /// Stub class
  12074.  ///
  12075.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12076.  ///       information was available for this class.
  12077.  class  SHARED_freeze_XM : public afxXM_FreezeData {
  12078.    public:
  12079.  };
  12080.  
  12081.  /*!
  12082.  @brief An xmod datablock.
  12083.  
  12084.  @ingroup afxXMods
  12085.  @ingroup AFX
  12086.  @ingroup Datablocks
  12087.   */
  12088.  class  afxXM_SpinData : public afxXM_WeightedBaseData {
  12089.    public:
  12090.     /*!
  12091.     ...
  12092.    
  12093.      */
  12094.     Point3F spinAxis;
  12095.     /*!
  12096.     ...
  12097.    
  12098.      */
  12099.     float spinAngle;
  12100.     /*!
  12101.     ...
  12102.    
  12103.      */
  12104.     float spinAngleVariance;
  12105.     /*!
  12106.     ...
  12107.    
  12108.      */
  12109.     float spinRate;
  12110.     /*!
  12111.     ...
  12112.    
  12113.      */
  12114.     float spinRateVariance;
  12115.  
  12116.     /*! @name Scripting
  12117.     @{ */
  12118.     /*! */
  12119.     /// @}
  12120.  
  12121.  
  12122.     /*! @name Ungrouped
  12123.     @{ */
  12124.     /*! */
  12125.     /// @}
  12126.  
  12127.  
  12128.     /*! @name Object
  12129.     @{ */
  12130.     /*! */
  12131.     /// @}
  12132.  
  12133.  
  12134.     /*! @name Editing
  12135.     @{ */
  12136.     /*! */
  12137.     /// @}
  12138.  
  12139.  
  12140.     /*! @name Persistence
  12141.     @{ */
  12142.     /*! */
  12143.     /// @}
  12144.  
  12145.  };
  12146.  
  12147.  /// Stub class
  12148.  ///
  12149.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12150.  ///       information was available for this class.
  12151.  class  SHARED_MainZodeRevealLight_spin1_XM : public afxXM_SpinData {
  12152.    public:
  12153.  };
  12154.  
  12155.  /// Stub class
  12156.  ///
  12157.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12158.  ///       information was available for this class.
  12159.  class  SpellAudioShockwaveLoop_soft_AD : public SFXDescription {
  12160.    public:
  12161.  };
  12162.  
  12163.  /// Stub class
  12164.  ///
  12165.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12166.  ///       information was available for this class.
  12167.  class  SpellAudioShockwaveLoop_AD : public SFXDescription {
  12168.    public:
  12169.  };
  12170.  
  12171.  /// Stub class
  12172.  ///
  12173.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12174.  ///       information was available for this class.
  12175.  class  SpellAudioMissileLoop_loud_AD : public SFXDescription {
  12176.    public:
  12177.  };
  12178.  
  12179.  /// Stub class
  12180.  ///
  12181.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12182.  ///       information was available for this class.
  12183.  class  SpellAudioMissileLoop_AD : public SFXDescription {
  12184.    public:
  12185.  };
  12186.  
  12187.  /// Stub class
  12188.  ///
  12189.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12190.  ///       information was available for this class.
  12191.  class  SpellAudioImpact_AD : public SFXDescription {
  12192.    public:
  12193.  };
  12194.  
  12195.  /// Stub class
  12196.  ///
  12197.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12198.  ///       information was available for this class.
  12199.  class  SpellAudioCasting_loud_AD : public SFXDescription {
  12200.    public:
  12201.  };
  12202.  
  12203.  /// Stub class
  12204.  ///
  12205.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12206.  ///       information was available for this class.
  12207.  class  SpellAudioCasting_AD : public SFXDescription {
  12208.    public:
  12209.  };
  12210.  
  12211.  /// Stub class
  12212.  ///
  12213.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12214.  ///       information was available for this class.
  12215.  class  SpellAudioCasting_soft_AD : public SFXDescription {
  12216.    public:
  12217.  };
  12218.  
  12219.  /// Stub class
  12220.  ///
  12221.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12222.  ///       information was available for this class.
  12223.  class  SpellAudioLoop_AD : public SFXDescription {
  12224.    public:
  12225.  };
  12226.  
  12227.  /// Stub class
  12228.  ///
  12229.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12230.  ///       information was available for this class.
  12231.  class  SpellAudioDefault_AD : public SFXDescription {
  12232.    public:
  12233.  };
  12234.  
  12235.  /*!
  12236.  @brief Special type of data block that stores information about a handwritten shader.
  12237.  
  12238.  To use hand written shaders, a ShaderData datablock must be used. This datablock refers only to the vertex and pixel shader filenames and a hardware target level. Shaders are API specific, so DirectX and OpenGL shaders must be explicitly identified.
  12239.  
  12240.   @tsexample
  12241.  // Used for the procedural clould system
  12242.  singleton ShaderData( CloudLayerShader )
  12243.  {
  12244.     DXVertexShaderFile   = "shaders/common/cloudLayerV.hlsl";
  12245.     DXPixelShaderFile    = "shaders/common/cloudLayerP.hlsl";
  12246.     OGLVertexShaderFile = "shaders/common/gl/cloudLayerV.glsl";
  12247.     OGLPixelShaderFile = "shaders/common/gl/cloudLayerP.glsl";
  12248.     pixVersion = 2.0;
  12249.  };
  12250.  @endtsexample
  12251.  
  12252.  @ingroup Shaders
  12253.   */
  12254.  class  ShaderData : public SimObject {
  12255.    public:
  12256.     /*! @brief Rebuilds all the vertex and pixel shaders instances created from this ShaderData.
  12257.  
  12258. @tsexample
  12259. // Rebuild the shader instances from ShaderData CloudLayerShader
  12260. CloudLayerShader.reload();
  12261. @endtsexample
  12262.  
  12263.  */
  12264.     virtual void reload(()) {}
  12265.     /*!
  12266.     Indicates a filename that contains a DirectX vertex shader program.
  12267.  
  12268. It must contain only one program and no pixel shader, just the vertex shader.It can be either an HLSL or assembly level shader. The former must have a filename extension of .hlsl, otherwise it assumes it is an assembly file.
  12269.    
  12270.      */
  12271.     filename DXVertexShaderFile;
  12272.     /*!
  12273.     Indicates a filename that contains a DirectX pixel shader program.
  12274.  
  12275. It must contain only one program and no vertex shader, just the pixel shader. It can be either an HLSL or assembly level shader. The former must have a filename extension of .hlsl, otherwise it assumes it is an assembly file.
  12276.    
  12277.      */
  12278.     filename DXPixelShaderFile;
  12279.     /*!
  12280.     Indicates a filename that contains an OpenGL vertex shader program.
  12281.  
  12282. It must contain only one program and no pixel shader, just the vertex shader.
  12283.    
  12284.      */
  12285.     filename OGLVertexShaderFile;
  12286.     /*!
  12287.     Indicates a filename that contains a DirectX pixel shader program.
  12288.  
  12289. It must contain only one program and no vertex shader, just the pixel shader.
  12290.    
  12291.      */
  12292.     filename OGLPixelShaderFile;
  12293.     /*!
  12294.     True to use the maximum pixel shader version offered by the graphics card, rather than manually specifying the version in script.
  12295.    
  12296.      */
  12297.     bool useDevicePixVersion;
  12298.     /*!
  12299.     This indicates what target level of shader should be compiled.
  12300.  
  12301. Valid numbers at the time of this writing are 1.1, 1.4, 2.0, and 3.0. The shader will not run properly if your hardware does not support the level of shader you have compiled.
  12302.    
  12303.      */
  12304.     float pixVersion;
  12305.     /*!
  12306.     A semicolon, tab, or newline delimited string of case sensitive defines that are passed to the shader compiler
  12307.    
  12308.      */
  12309.     string defines;
  12310.  
  12311.     /*! @name Ungrouped
  12312.     @{ */
  12313.     /*! */
  12314.     /// @}
  12315.  
  12316.  
  12317.     /*! @name Object
  12318.     @{ */
  12319.     /*! */
  12320.     /// @}
  12321.  
  12322.  
  12323.     /*! @name Editing
  12324.     @{ */
  12325.     /*! */
  12326.     /// @}
  12327.  
  12328.  
  12329.     /*! @name Persistence
  12330.     @{ */
  12331.     /*! */
  12332.     /// @}
  12333.  
  12334.  };
  12335.  
  12336.  /// Stub class
  12337.  ///
  12338.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12339.  ///       information was available for this class.
  12340.  class  afxZodiacPolysoupShader : public ShaderData {
  12341.    public:
  12342.  };
  12343.  
  12344.  /// Stub class
  12345.  ///
  12346.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12347.  ///       information was available for this class.
  12348.  class  afxZodiacInteriorShader : public ShaderData {
  12349.    public:
  12350.  };
  12351.  
  12352.  /// Stub class
  12353.  ///
  12354.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12355.  ///       information was available for this class.
  12356.  class  afxZodiacTerrainShader : public ShaderData {
  12357.    public:
  12358.  };
  12359.  
  12360.  /*!
  12361.  @brief Base class for defining a type of ForestItem. It does not implement loading or rendering of the shapeFile.
  12362.  
  12363.   */
  12364.  class  ForestItemData : public SimDataBlock {
  12365.    public:
  12366.  
  12367.     /*! @name Ungrouped
  12368.     @{ */
  12369.     /*! */
  12370.     /// @}
  12371.  
  12372.  
  12373.     /*! @name Object
  12374.     @{ */
  12375.     /*! */
  12376.     /// @}
  12377.  
  12378.  
  12379.     /*! @name Editing
  12380.     @{ */
  12381.     /*! */
  12382.     /// @}
  12383.  
  12384.  
  12385.     /*! @name Persistence
  12386.     @{ */
  12387.     /*! */
  12388.     /// @}
  12389.  
  12390.  
  12391.     /*! @name Media
  12392.     @{ */
  12393.     /*! */
  12394.     /*!
  12395.     Shape file for this item type
  12396.    
  12397.      */
  12398.     filename shapeFile;
  12399.     /*!
  12400.     Can other objects or spacial queries hit items of this type.
  12401.    
  12402.      */
  12403.     bool collidable;
  12404.     /*!
  12405.     Radius used during placement to ensure items are not crowded.
  12406.    
  12407.      */
  12408.     float radius;
  12409.     /// @}
  12410.  
  12411.  
  12412.     /*! @name Wind
  12413.     @{ */
  12414.     /*! */
  12415.     /*!
  12416.     Mass used in calculating spring forces on the trunk. Generally how springy a plant is.
  12417.    
  12418.      */
  12419.     float mass;
  12420.     /*!
  12421.     Rigidity used in calculating spring forces on the trunk. How much the plant resists the wind force
  12422.    
  12423.      */
  12424.     float rigidity;
  12425.     /*!
  12426.     Coefficient used in calculating spring forces on the trunk. How much the plant resists bending.
  12427.    
  12428.      */
  12429.     float tightnessCoefficient;
  12430.     /*!
  12431.     Coefficient used in calculating spring forces on the trunk. Causes oscillation and forces to decay faster over time.
  12432.    
  12433.      */
  12434.     float dampingCoefficient;
  12435.     /*!
  12436.     Overall scale to the effect of wind.
  12437.    
  12438.      */
  12439.     float windScale;
  12440.     /*!
  12441.     Overall bend amount of the tree trunk by wind and impacts.
  12442.    
  12443.      */
  12444.     float trunkBendScale;
  12445.     /*!
  12446.     Amplitude of the effect on larger branches.
  12447.    
  12448.      */
  12449.     float branchAmp;
  12450.     /*!
  12451.     Amplitude of the winds effect on leafs/fronds.
  12452.    
  12453.      */
  12454.     float detailAmp;
  12455.     /*!
  12456.     Frequency (speed) of the effect on leafs/fronds.
  12457.    
  12458.      */
  12459.     float detailFreq;
  12460.     /// @}
  12461.  
  12462.  
  12463.     /*! @name CM
  12464.     @{ */
  12465.     /*! */
  12466.     /*!
  12467.     Kind of trees with this item datablock
  12468.    
  12469.      */
  12470.     string treeKind;
  12471.     /*!
  12472.     Amount of wood on such trees
  12473.    
  12474.      */
  12475.     int woodAmount;
  12476.     /*!
  12477.     Falling time
  12478.    
  12479.      */
  12480.     float fallTime;
  12481.     /*!
  12482.     All falling time
  12483.    
  12484.      */
  12485.     float fallAllTime;
  12486.     /// @}
  12487.  
  12488.  };
  12489.  
  12490.  /*!
  12491.  @brief Concrete implementation of ForestItemData which loads and renders dts format shapeFiles.
  12492.  
  12493.   */
  12494.  class  TSForestItemData : public ForestItemData {
  12495.    public:
  12496.  
  12497.     /*! @name Ungrouped
  12498.     @{ */
  12499.     /*! */
  12500.     /// @}
  12501.  
  12502.  
  12503.     /*! @name Object
  12504.     @{ */
  12505.     /*! */
  12506.     /// @}
  12507.  
  12508.  
  12509.     /*! @name Editing
  12510.     @{ */
  12511.     /*! */
  12512.     /// @}
  12513.  
  12514.  
  12515.     /*! @name Persistence
  12516.     @{ */
  12517.     /*! */
  12518.     /// @}
  12519.  
  12520.  
  12521.     /*! @name Media
  12522.     @{ */
  12523.     /*! */
  12524.     /// @}
  12525.  
  12526.  
  12527.     /*! @name Wind
  12528.     @{ */
  12529.     /*! */
  12530.     /// @}
  12531.  
  12532.  
  12533.     /*! @name CM
  12534.     @{ */
  12535.     /*! */
  12536.     /// @}
  12537.  
  12538.  };
  12539.  
  12540.  /// Stub class
  12541.  ///
  12542.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12543.  ///       information was available for this class.
  12544.  class  cmTreeWillow_3_2 : public TSForestItemData {
  12545.    public:
  12546.  };
  12547.  
  12548.  /// Stub class
  12549.  ///
  12550.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12551.  ///       information was available for this class.
  12552.  class  cmTreeWillow_2_2 : public TSForestItemData {
  12553.    public:
  12554.  };
  12555.  
  12556.  /// Stub class
  12557.  ///
  12558.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12559.  ///       information was available for this class.
  12560.  class  cmTreeWillow_1_2 : public TSForestItemData {
  12561.    public:
  12562.  };
  12563.  
  12564.  /// Stub class
  12565.  ///
  12566.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12567.  ///       information was available for this class.
  12568.  class  cmTreeWillow_0_2 : public TSForestItemData {
  12569.    public:
  12570.  };
  12571.  
  12572.  /// Stub class
  12573.  ///
  12574.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12575.  ///       information was available for this class.
  12576.  class  cmTreeWillow_3_1 : public TSForestItemData {
  12577.    public:
  12578.  };
  12579.  
  12580.  /// Stub class
  12581.  ///
  12582.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12583.  ///       information was available for this class.
  12584.  class  cmTreeWillow_2_1 : public TSForestItemData {
  12585.    public:
  12586.  };
  12587.  
  12588.  /// Stub class
  12589.  ///
  12590.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12591.  ///       information was available for this class.
  12592.  class  cmTreeWillow_1_1 : public TSForestItemData {
  12593.    public:
  12594.  };
  12595.  
  12596.  /// Stub class
  12597.  ///
  12598.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12599.  ///       information was available for this class.
  12600.  class  cmTreeWillow_0_1 : public TSForestItemData {
  12601.    public:
  12602.  };
  12603.  
  12604.  /// Stub class
  12605.  ///
  12606.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12607.  ///       information was available for this class.
  12608.  class  cmTreeWillow_3_0 : public TSForestItemData {
  12609.    public:
  12610.  };
  12611.  
  12612.  /// Stub class
  12613.  ///
  12614.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12615.  ///       information was available for this class.
  12616.  class  cmTreeWillow_2_0 : public TSForestItemData {
  12617.    public:
  12618.  };
  12619.  
  12620.  /// Stub class
  12621.  ///
  12622.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12623.  ///       information was available for this class.
  12624.  class  cmTreeWillow_1_0 : public TSForestItemData {
  12625.    public:
  12626.  };
  12627.  
  12628.  /// Stub class
  12629.  ///
  12630.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12631.  ///       information was available for this class.
  12632.  class  cmTreeWillow_0_0 : public TSForestItemData {
  12633.    public:
  12634.  };
  12635.  
  12636.  /// Stub class
  12637.  ///
  12638.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12639.  ///       information was available for this class.
  12640.  class  cmTreeOak_3_2 : public TSForestItemData {
  12641.    public:
  12642.  };
  12643.  
  12644.  /// Stub class
  12645.  ///
  12646.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12647.  ///       information was available for this class.
  12648.  class  cmTreeOak_2_2 : public TSForestItemData {
  12649.    public:
  12650.  };
  12651.  
  12652.  /// Stub class
  12653.  ///
  12654.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12655.  ///       information was available for this class.
  12656.  class  cmTreeOak_1_2 : public TSForestItemData {
  12657.    public:
  12658.  };
  12659.  
  12660.  /// Stub class
  12661.  ///
  12662.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12663.  ///       information was available for this class.
  12664.  class  cmTreeOak_0_2 : public TSForestItemData {
  12665.    public:
  12666.  };
  12667.  
  12668.  /// Stub class
  12669.  ///
  12670.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12671.  ///       information was available for this class.
  12672.  class  cmTreeOak_3_1 : public TSForestItemData {
  12673.    public:
  12674.  };
  12675.  
  12676.  /// Stub class
  12677.  ///
  12678.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12679.  ///       information was available for this class.
  12680.  class  cmTreeOak_2_1 : public TSForestItemData {
  12681.    public:
  12682.  };
  12683.  
  12684.  /// Stub class
  12685.  ///
  12686.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12687.  ///       information was available for this class.
  12688.  class  cmTreeOak_1_1 : public TSForestItemData {
  12689.    public:
  12690.  };
  12691.  
  12692.  /// Stub class
  12693.  ///
  12694.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12695.  ///       information was available for this class.
  12696.  class  cmTreeOak_0_1 : public TSForestItemData {
  12697.    public:
  12698.  };
  12699.  
  12700.  /// Stub class
  12701.  ///
  12702.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12703.  ///       information was available for this class.
  12704.  class  cmTreeOak_3_0 : public TSForestItemData {
  12705.    public:
  12706.  };
  12707.  
  12708.  /// Stub class
  12709.  ///
  12710.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12711.  ///       information was available for this class.
  12712.  class  cmTreeOak_2_0 : public TSForestItemData {
  12713.    public:
  12714.  };
  12715.  
  12716.  /// Stub class
  12717.  ///
  12718.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12719.  ///       information was available for this class.
  12720.  class  cmTreeOak_1_0 : public TSForestItemData {
  12721.    public:
  12722.  };
  12723.  
  12724.  /// Stub class
  12725.  ///
  12726.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12727.  ///       information was available for this class.
  12728.  class  cmTreeOak_0_0 : public TSForestItemData {
  12729.    public:
  12730.  };
  12731.  
  12732.  /// Stub class
  12733.  ///
  12734.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12735.  ///       information was available for this class.
  12736.  class  cmTreeMulberry_3_2 : public TSForestItemData {
  12737.    public:
  12738.  };
  12739.  
  12740.  /// Stub class
  12741.  ///
  12742.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12743.  ///       information was available for this class.
  12744.  class  cmTreeMulberry_2_2 : public TSForestItemData {
  12745.    public:
  12746.  };
  12747.  
  12748.  /// Stub class
  12749.  ///
  12750.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12751.  ///       information was available for this class.
  12752.  class  cmTreeMulberry_1_2 : public TSForestItemData {
  12753.    public:
  12754.  };
  12755.  
  12756.  /// Stub class
  12757.  ///
  12758.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12759.  ///       information was available for this class.
  12760.  class  cmTreeMulberry_0_2 : public TSForestItemData {
  12761.    public:
  12762.  };
  12763.  
  12764.  /// Stub class
  12765.  ///
  12766.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12767.  ///       information was available for this class.
  12768.  class  cmTreeMulberry_3_1 : public TSForestItemData {
  12769.    public:
  12770.  };
  12771.  
  12772.  /// Stub class
  12773.  ///
  12774.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12775.  ///       information was available for this class.
  12776.  class  cmTreeMulberry_2_1 : public TSForestItemData {
  12777.    public:
  12778.  };
  12779.  
  12780.  /// Stub class
  12781.  ///
  12782.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12783.  ///       information was available for this class.
  12784.  class  cmTreeMulberry_1_1 : public TSForestItemData {
  12785.    public:
  12786.  };
  12787.  
  12788.  /// Stub class
  12789.  ///
  12790.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12791.  ///       information was available for this class.
  12792.  class  cmTreeMulberry_0_1 : public TSForestItemData {
  12793.    public:
  12794.  };
  12795.  
  12796.  /// Stub class
  12797.  ///
  12798.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12799.  ///       information was available for this class.
  12800.  class  cmTreeMulberry_3_0 : public TSForestItemData {
  12801.    public:
  12802.  };
  12803.  
  12804.  /// Stub class
  12805.  ///
  12806.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12807.  ///       information was available for this class.
  12808.  class  cmTreeMulberry_2_0 : public TSForestItemData {
  12809.    public:
  12810.  };
  12811.  
  12812.  /// Stub class
  12813.  ///
  12814.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12815.  ///       information was available for this class.
  12816.  class  cmTreeMulberry_1_0 : public TSForestItemData {
  12817.    public:
  12818.  };
  12819.  
  12820.  /// Stub class
  12821.  ///
  12822.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12823.  ///       information was available for this class.
  12824.  class  cmTreeMulberry_0_0 : public TSForestItemData {
  12825.    public:
  12826.  };
  12827.  
  12828.  /// Stub class
  12829.  ///
  12830.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12831.  ///       information was available for this class.
  12832.  class  cmTreeMaple_3_2 : public TSForestItemData {
  12833.    public:
  12834.  };
  12835.  
  12836.  /// Stub class
  12837.  ///
  12838.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12839.  ///       information was available for this class.
  12840.  class  cmTreeMaple_2_2 : public TSForestItemData {
  12841.    public:
  12842.  };
  12843.  
  12844.  /// Stub class
  12845.  ///
  12846.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12847.  ///       information was available for this class.
  12848.  class  cmTreeMaple_1_2 : public TSForestItemData {
  12849.    public:
  12850.  };
  12851.  
  12852.  /// Stub class
  12853.  ///
  12854.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12855.  ///       information was available for this class.
  12856.  class  cmTreeMaple_0_2 : public TSForestItemData {
  12857.    public:
  12858.  };
  12859.  
  12860.  /// Stub class
  12861.  ///
  12862.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12863.  ///       information was available for this class.
  12864.  class  cmTreeMaple_3_1 : public TSForestItemData {
  12865.    public:
  12866.  };
  12867.  
  12868.  /// Stub class
  12869.  ///
  12870.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12871.  ///       information was available for this class.
  12872.  class  cmTreeMaple_2_1 : public TSForestItemData {
  12873.    public:
  12874.  };
  12875.  
  12876.  /// Stub class
  12877.  ///
  12878.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12879.  ///       information was available for this class.
  12880.  class  cmTreeMaple_1_1 : public TSForestItemData {
  12881.    public:
  12882.  };
  12883.  
  12884.  /// Stub class
  12885.  ///
  12886.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12887.  ///       information was available for this class.
  12888.  class  cmTreeMaple_0_1 : public TSForestItemData {
  12889.    public:
  12890.  };
  12891.  
  12892.  /// Stub class
  12893.  ///
  12894.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12895.  ///       information was available for this class.
  12896.  class  cmTreeMaple_3_0 : public TSForestItemData {
  12897.    public:
  12898.  };
  12899.  
  12900.  /// Stub class
  12901.  ///
  12902.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12903.  ///       information was available for this class.
  12904.  class  cmTreeMaple_2_0 : public TSForestItemData {
  12905.    public:
  12906.  };
  12907.  
  12908.  /// Stub class
  12909.  ///
  12910.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12911.  ///       information was available for this class.
  12912.  class  cmTreeMaple_1_0 : public TSForestItemData {
  12913.    public:
  12914.  };
  12915.  
  12916.  /// Stub class
  12917.  ///
  12918.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12919.  ///       information was available for this class.
  12920.  class  cmTreeMaple_0_0 : public TSForestItemData {
  12921.    public:
  12922.  };
  12923.  
  12924.  /// Stub class
  12925.  ///
  12926.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12927.  ///       information was available for this class.
  12928.  class  cmTreePine_3_2 : public TSForestItemData {
  12929.    public:
  12930.  };
  12931.  
  12932.  /// Stub class
  12933.  ///
  12934.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12935.  ///       information was available for this class.
  12936.  class  cmTreePine_2_2 : public TSForestItemData {
  12937.    public:
  12938.  };
  12939.  
  12940.  /// Stub class
  12941.  ///
  12942.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12943.  ///       information was available for this class.
  12944.  class  cmTreePine_1_2 : public TSForestItemData {
  12945.    public:
  12946.  };
  12947.  
  12948.  /// Stub class
  12949.  ///
  12950.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12951.  ///       information was available for this class.
  12952.  class  cmTreePine_0_2 : public TSForestItemData {
  12953.    public:
  12954.  };
  12955.  
  12956.  /// Stub class
  12957.  ///
  12958.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12959.  ///       information was available for this class.
  12960.  class  cmTreePine_3_1 : public TSForestItemData {
  12961.    public:
  12962.  };
  12963.  
  12964.  /// Stub class
  12965.  ///
  12966.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12967.  ///       information was available for this class.
  12968.  class  cmTreePine_2_1 : public TSForestItemData {
  12969.    public:
  12970.  };
  12971.  
  12972.  /// Stub class
  12973.  ///
  12974.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12975.  ///       information was available for this class.
  12976.  class  cmTreePine_1_1 : public TSForestItemData {
  12977.    public:
  12978.  };
  12979.  
  12980.  /// Stub class
  12981.  ///
  12982.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12983.  ///       information was available for this class.
  12984.  class  cmTreePine_0_1 : public TSForestItemData {
  12985.    public:
  12986.  };
  12987.  
  12988.  /// Stub class
  12989.  ///
  12990.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12991.  ///       information was available for this class.
  12992.  class  cmTreePine_3_0 : public TSForestItemData {
  12993.    public:
  12994.  };
  12995.  
  12996.  /// Stub class
  12997.  ///
  12998.  /// @note This is a stub class to ensure a proper class hierarchy. No
  12999.  ///       information was available for this class.
  13000.  class  cmTreePine_2_0 : public TSForestItemData {
  13001.    public:
  13002.  };
  13003.  
  13004.  /// Stub class
  13005.  ///
  13006.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13007.  ///       information was available for this class.
  13008.  class  cmTreePine_1_0 : public TSForestItemData {
  13009.    public:
  13010.  };
  13011.  
  13012.  /// Stub class
  13013.  ///
  13014.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13015.  ///       information was available for this class.
  13016.  class  cmTreePine_0_0 : public TSForestItemData {
  13017.    public:
  13018.  };
  13019.  
  13020.  /// Stub class
  13021.  ///
  13022.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13023.  ///       information was available for this class.
  13024.  class  cmTreeFir_3_2 : public TSForestItemData {
  13025.    public:
  13026.  };
  13027.  
  13028.  /// Stub class
  13029.  ///
  13030.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13031.  ///       information was available for this class.
  13032.  class  cmTreeFir_2_2 : public TSForestItemData {
  13033.    public:
  13034.  };
  13035.  
  13036.  /// Stub class
  13037.  ///
  13038.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13039.  ///       information was available for this class.
  13040.  class  cmTreeFir_1_2 : public TSForestItemData {
  13041.    public:
  13042.  };
  13043.  
  13044.  /// Stub class
  13045.  ///
  13046.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13047.  ///       information was available for this class.
  13048.  class  cmTreeFir_0_2 : public TSForestItemData {
  13049.    public:
  13050.  };
  13051.  
  13052.  /// Stub class
  13053.  ///
  13054.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13055.  ///       information was available for this class.
  13056.  class  cmTreeFir_3_1 : public TSForestItemData {
  13057.    public:
  13058.  };
  13059.  
  13060.  /// Stub class
  13061.  ///
  13062.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13063.  ///       information was available for this class.
  13064.  class  cmTreeFir_2_1 : public TSForestItemData {
  13065.    public:
  13066.  };
  13067.  
  13068.  /// Stub class
  13069.  ///
  13070.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13071.  ///       information was available for this class.
  13072.  class  cmTreeFir_1_1 : public TSForestItemData {
  13073.    public:
  13074.  };
  13075.  
  13076.  /// Stub class
  13077.  ///
  13078.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13079.  ///       information was available for this class.
  13080.  class  cmTreeFir_0_1 : public TSForestItemData {
  13081.    public:
  13082.  };
  13083.  
  13084.  /// Stub class
  13085.  ///
  13086.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13087.  ///       information was available for this class.
  13088.  class  cmTreeFir_3_0 : public TSForestItemData {
  13089.    public:
  13090.  };
  13091.  
  13092.  /// Stub class
  13093.  ///
  13094.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13095.  ///       information was available for this class.
  13096.  class  cmTreeFir_2_0 : public TSForestItemData {
  13097.    public:
  13098.  };
  13099.  
  13100.  /// Stub class
  13101.  ///
  13102.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13103.  ///       information was available for this class.
  13104.  class  cmTreeFir_1_0 : public TSForestItemData {
  13105.    public:
  13106.  };
  13107.  
  13108.  /// Stub class
  13109.  ///
  13110.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13111.  ///       information was available for this class.
  13112.  class  cmTreeFir_0_0 : public TSForestItemData {
  13113.    public:
  13114.  };
  13115.  
  13116.  /// Stub class
  13117.  ///
  13118.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13119.  ///       information was available for this class.
  13120.  class  cmTreeElm_3_2 : public TSForestItemData {
  13121.    public:
  13122.  };
  13123.  
  13124.  /// Stub class
  13125.  ///
  13126.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13127.  ///       information was available for this class.
  13128.  class  cmTreeElm_2_2 : public TSForestItemData {
  13129.    public:
  13130.  };
  13131.  
  13132.  /// Stub class
  13133.  ///
  13134.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13135.  ///       information was available for this class.
  13136.  class  cmTreeElm_1_2 : public TSForestItemData {
  13137.    public:
  13138.  };
  13139.  
  13140.  /// Stub class
  13141.  ///
  13142.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13143.  ///       information was available for this class.
  13144.  class  cmTreeElm_0_2 : public TSForestItemData {
  13145.    public:
  13146.  };
  13147.  
  13148.  /// Stub class
  13149.  ///
  13150.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13151.  ///       information was available for this class.
  13152.  class  cmTreeElm_3_1 : public TSForestItemData {
  13153.    public:
  13154.  };
  13155.  
  13156.  /// Stub class
  13157.  ///
  13158.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13159.  ///       information was available for this class.
  13160.  class  cmTreeElm_2_1 : public TSForestItemData {
  13161.    public:
  13162.  };
  13163.  
  13164.  /// Stub class
  13165.  ///
  13166.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13167.  ///       information was available for this class.
  13168.  class  cmTreeElm_1_1 : public TSForestItemData {
  13169.    public:
  13170.  };
  13171.  
  13172.  /// Stub class
  13173.  ///
  13174.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13175.  ///       information was available for this class.
  13176.  class  cmTreeElm_0_1 : public TSForestItemData {
  13177.    public:
  13178.  };
  13179.  
  13180.  /// Stub class
  13181.  ///
  13182.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13183.  ///       information was available for this class.
  13184.  class  cmTreeElm_3_0 : public TSForestItemData {
  13185.    public:
  13186.  };
  13187.  
  13188.  /// Stub class
  13189.  ///
  13190.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13191.  ///       information was available for this class.
  13192.  class  cmTreeElm_2_0 : public TSForestItemData {
  13193.    public:
  13194.  };
  13195.  
  13196.  /// Stub class
  13197.  ///
  13198.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13199.  ///       information was available for this class.
  13200.  class  cmTreeElm_1_0 : public TSForestItemData {
  13201.    public:
  13202.  };
  13203.  
  13204.  /// Stub class
  13205.  ///
  13206.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13207.  ///       information was available for this class.
  13208.  class  cmTreeElm_0_0 : public TSForestItemData {
  13209.    public:
  13210.  };
  13211.  
  13212.  /// Stub class
  13213.  ///
  13214.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13215.  ///       information was available for this class.
  13216.  class  cmTreeBirch_3_2 : public TSForestItemData {
  13217.    public:
  13218.  };
  13219.  
  13220.  /// Stub class
  13221.  ///
  13222.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13223.  ///       information was available for this class.
  13224.  class  cmTreeBirch_2_2 : public TSForestItemData {
  13225.    public:
  13226.  };
  13227.  
  13228.  /// Stub class
  13229.  ///
  13230.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13231.  ///       information was available for this class.
  13232.  class  cmTreeBirch_1_2 : public TSForestItemData {
  13233.    public:
  13234.  };
  13235.  
  13236.  /// Stub class
  13237.  ///
  13238.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13239.  ///       information was available for this class.
  13240.  class  cmTreeBirch_0_2 : public TSForestItemData {
  13241.    public:
  13242.  };
  13243.  
  13244.  /// Stub class
  13245.  ///
  13246.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13247.  ///       information was available for this class.
  13248.  class  cmTreeBirch_3_1 : public TSForestItemData {
  13249.    public:
  13250.  };
  13251.  
  13252.  /// Stub class
  13253.  ///
  13254.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13255.  ///       information was available for this class.
  13256.  class  cmTreeBirch_2_1 : public TSForestItemData {
  13257.    public:
  13258.  };
  13259.  
  13260.  /// Stub class
  13261.  ///
  13262.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13263.  ///       information was available for this class.
  13264.  class  cmTreeBirch_1_1 : public TSForestItemData {
  13265.    public:
  13266.  };
  13267.  
  13268.  /// Stub class
  13269.  ///
  13270.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13271.  ///       information was available for this class.
  13272.  class  cmTreeBirch_0_1 : public TSForestItemData {
  13273.    public:
  13274.  };
  13275.  
  13276.  /// Stub class
  13277.  ///
  13278.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13279.  ///       information was available for this class.
  13280.  class  cmTreeBirch_3_0 : public TSForestItemData {
  13281.    public:
  13282.  };
  13283.  
  13284.  /// Stub class
  13285.  ///
  13286.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13287.  ///       information was available for this class.
  13288.  class  cmTreeBirch_2_0 : public TSForestItemData {
  13289.    public:
  13290.  };
  13291.  
  13292.  /// Stub class
  13293.  ///
  13294.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13295.  ///       information was available for this class.
  13296.  class  cmTreeBirch_1_0 : public TSForestItemData {
  13297.    public:
  13298.  };
  13299.  
  13300.  /// Stub class
  13301.  ///
  13302.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13303.  ///       information was available for this class.
  13304.  class  cmTreeBirch_0_0 : public TSForestItemData {
  13305.    public:
  13306.  };
  13307.  
  13308.  /// Stub class
  13309.  ///
  13310.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13311.  ///       information was available for this class.
  13312.  class  cmTreeApple_3_2 : public TSForestItemData {
  13313.    public:
  13314.  };
  13315.  
  13316.  /// Stub class
  13317.  ///
  13318.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13319.  ///       information was available for this class.
  13320.  class  cmTreeApple_2_2 : public TSForestItemData {
  13321.    public:
  13322.  };
  13323.  
  13324.  /// Stub class
  13325.  ///
  13326.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13327.  ///       information was available for this class.
  13328.  class  cmTreeApple_1_2 : public TSForestItemData {
  13329.    public:
  13330.  };
  13331.  
  13332.  /// Stub class
  13333.  ///
  13334.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13335.  ///       information was available for this class.
  13336.  class  cmTreeApple_0_2 : public TSForestItemData {
  13337.    public:
  13338.  };
  13339.  
  13340.  /// Stub class
  13341.  ///
  13342.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13343.  ///       information was available for this class.
  13344.  class  cmTreeApple_3_1 : public TSForestItemData {
  13345.    public:
  13346.  };
  13347.  
  13348.  /// Stub class
  13349.  ///
  13350.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13351.  ///       information was available for this class.
  13352.  class  cmTreeApple_2_1 : public TSForestItemData {
  13353.    public:
  13354.  };
  13355.  
  13356.  /// Stub class
  13357.  ///
  13358.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13359.  ///       information was available for this class.
  13360.  class  cmTreeApple_1_1 : public TSForestItemData {
  13361.    public:
  13362.  };
  13363.  
  13364.  /// Stub class
  13365.  ///
  13366.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13367.  ///       information was available for this class.
  13368.  class  cmTreeApple_0_1 : public TSForestItemData {
  13369.    public:
  13370.  };
  13371.  
  13372.  /// Stub class
  13373.  ///
  13374.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13375.  ///       information was available for this class.
  13376.  class  cmTreeApple_3_0 : public TSForestItemData {
  13377.    public:
  13378.  };
  13379.  
  13380.  /// Stub class
  13381.  ///
  13382.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13383.  ///       information was available for this class.
  13384.  class  cmTreeApple_2_0 : public TSForestItemData {
  13385.    public:
  13386.  };
  13387.  
  13388.  /// Stub class
  13389.  ///
  13390.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13391.  ///       information was available for this class.
  13392.  class  cmTreeApple_1_0 : public TSForestItemData {
  13393.    public:
  13394.  };
  13395.  
  13396.  /// Stub class
  13397.  ///
  13398.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13399.  ///       information was available for this class.
  13400.  class  ForestItemDataSet : public SimSet {
  13401.    public:
  13402.  };
  13403.  
  13404.  /// Stub class
  13405.  ///
  13406.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13407.  ///       information was available for this class.
  13408.  class  cmTreeApple_0_0 : public TSForestItemData {
  13409.    public:
  13410.  };
  13411.  
  13412.  /*!
  13413.  @brief Covers the ground in a field of objects (IE: Grass, Flowers, etc).@ingroup Foliage
  13414.   */
  13415.  class  GroundCover : public SceneObject {
  13416.    public:
  13417.  
  13418.     /*! @name GroundCover General
  13419.     @{ */
  13420.     /*! */
  13421.     /*!
  13422.     Material used by all GroundCover segments.
  13423.    
  13424.      */
  13425.     string Material;
  13426.     /*!
  13427.     Outer generation radius from the current camera position.
  13428.    
  13429.      */
  13430.     float radius;
  13431.     /*!
  13432.     This is less than or equal to radius and defines when fading of cover elements begins.
  13433.    
  13434.      */
  13435.     float dissolveRadius;
  13436.     /*!
  13437.     Scales the various culling radii when rendering a reflection. Typically for water.
  13438.    
  13439.      */
  13440.     float reflectScale;
  13441.     /*!
  13442.     The number of cells per axis in the grid.
  13443.    
  13444.      */
  13445.     int gridSize;
  13446.     /*!
  13447.     Offset along the Z axis to render the ground cover.
  13448.    
  13449.      */
  13450.     float zOffset;
  13451.     /*!
  13452.     This RNG seed is saved and sent to clients for generating the same cover.
  13453.    
  13454.      */
  13455.     int seed;
  13456.     /*!
  13457.     The maximum amount of cover elements to include in the grid at any one time.
  13458.    
  13459.      */
  13460.     int maxElements;
  13461.     /*!
  13462.     The maximum amout of degrees the billboard will tilt down to match the camera.
  13463.    
  13464.      */
  13465.     float maxBillboardTiltAngle;
  13466.     /*!
  13467.     This is the distance at which DTS elements are  completely culled out.
  13468.    
  13469.      */
  13470.     float shapeCullRadius;
  13471.     /*!
  13472.     Whether DTS elements should cast shadows or not.
  13473.    
  13474.      */
  13475.     bool shapesCastShadows;
  13476.     /*!
  13477.     Subset material UV coordinates for this cover billboard.
  13478.    
  13479.      */
  13480.     RectF billboardUVs;
  13481.     /*!
  13482.     Do align to terrain or not (using or not normal from terrain)
  13483.    
  13484.      */
  13485.     bool alignToTerrain;
  13486.     /*!
  13487.     Base orientation, 0 and 360 == north, 180 - south
  13488.    
  13489.      */
  13490.     float baseOrientation;
  13491.     /*!
  13492.     Add random rotation angle 0+value (+/-, in degrees, 180 == totally random)
  13493.    
  13494.      */
  13495.     float rotationAngle;
  13496.     /*!
  13497.     The cover shape filename. [Optional]
  13498.    
  13499.      */
  13500.     filename shapeFilename;
  13501.     /*!
  13502.     The cover alternative shape filename. [Optional]
  13503.    
  13504.      */
  13505.     filename shapeAltFilename;
  13506.     /*!
  13507.     Terrain material name to limit coverage to, or blank to not limit.
  13508.    
  13509.      */
  13510.     string layer;
  13511.     /*!
  13512.     Indicates that the terrain material index given in 'layer' is an exclusion mask.
  13513.    
  13514.      */
  13515.     bool invertLayer;
  13516.     /*!
  13517.     The probability of one cover type verses another (relative to all cover types).
  13518.    
  13519.      */
  13520.     float probability;
  13521.     /*!
  13522.     The minimum random size for each cover type.
  13523.    
  13524.      */
  13525.     float sizeMin;
  13526.     /*!
  13527.     The maximum random size of this cover type.
  13528.    
  13529.      */
  13530.     float sizeMax;
  13531.     /*!
  13532.     An exponent used to bias between the minimum and maximum random sizes.
  13533.    
  13534.      */
  13535.     float sizeExponent;
  13536.     /*!
  13537.     The wind effect scale.
  13538.    
  13539.      */
  13540.     float windScale;
  13541.     /*!
  13542.     The maximum slope angle in degrees for placement.
  13543.    
  13544.      */
  13545.     float maxSlope;
  13546.     /*!
  13547.     The minimum world space elevation for placement.
  13548.    
  13549.      */
  13550.     float minElevation;
  13551.     /*!
  13552.     The maximum world space elevation for placement.
  13553.    
  13554.      */
  13555.     float maxElevation;
  13556.     /*!
  13557.     The minimum amount of elements in a clump.
  13558.    
  13559.      */
  13560.     int minClumpCount;
  13561.     /*!
  13562.     The maximum amount of elements in a clump.
  13563.    
  13564.      */
  13565.     int maxClumpCount;
  13566.     /*!
  13567.     An exponent used to bias between the minimum and maximum clump counts for a particular clump.
  13568.    
  13569.      */
  13570.     float clumpExponent;
  13571.     /*!
  13572.     The maximum clump radius.
  13573.    
  13574.      */
  13575.     float clumpRadius;
  13576.     /*!
  13577.     Periodic, not random.
  13578.    
  13579.      */
  13580.     bool periodicGrid;
  13581.     /*!
  13582.     Step of periodic grid by x and y.
  13583.    
  13584.      */
  13585.     float periodicStep;
  13586.     /*!
  13587.     .
  13588.    
  13589.      */
  13590.     SFXProfile soundProfile;
  13591.     /*!
  13592.     .
  13593.    
  13594.      */
  13595.     float SoundProbability;
  13596.     /*!
  13597.     .
  13598.    
  13599.      */
  13600.     Point2F SoundPause;
  13601.     /// @}
  13602.  
  13603.  
  13604.     /*! @name GroundCover Wind
  13605.     @{ */
  13606.     /*! */
  13607.     /*!
  13608.     The direction of the wind.
  13609.    
  13610.      */
  13611.     Point2F windDirection;
  13612.     /*!
  13613.     The length in meters between peaks in the wind gust.
  13614.    
  13615.      */
  13616.     float windGustLength;
  13617.     /*!
  13618.     Controls how often the wind gust peaks per second.
  13619.    
  13620.      */
  13621.     float windGustFrequency;
  13622.     /*!
  13623.     The maximum distance in meters that the peak wind  gust will displace an element.
  13624.    
  13625.      */
  13626.     float windGustStrength;
  13627.     /*!
  13628.     Controls the overall rapidity of the wind turbulence.
  13629.    
  13630.      */
  13631.     float windTurbulenceFrequency;
  13632.     /*!
  13633.     The maximum distance in meters that the turbulence can displace a ground cover element.
  13634.    
  13635.      */
  13636.     float windTurbulenceStrength;
  13637.     /// @}
  13638.  
  13639.  
  13640.     /*! @name GroundCover Debug
  13641.     @{ */
  13642.     /*! */
  13643.     /*!
  13644.     Debug parameter for locking the culling frustum which will freeze the cover generation.
  13645.    
  13646.      */
  13647.     bool lockFrustum;
  13648.     /*!
  13649.     Debug parameter for displaying the grid cells.
  13650.    
  13651.      */
  13652.     bool renderCells;
  13653.     /*!
  13654.     Debug parameter for turning off billboard rendering.
  13655.    
  13656.      */
  13657.     bool noBillboards;
  13658.     /*!
  13659.     Debug parameter for turning off shape rendering.
  13660.    
  13661.      */
  13662.     bool noShapes;
  13663.     /// @}
  13664.  
  13665.  
  13666.     /*! @name Transform
  13667.     @{ */
  13668.     /*! */
  13669.     /// @}
  13670.  
  13671.  
  13672.     /*! @name Editing
  13673.     @{ */
  13674.     /*! */
  13675.     /// @}
  13676.  
  13677.  
  13678.     /*! @name Mounting
  13679.     @{ */
  13680.     /*! */
  13681.     /// @}
  13682.  
  13683.  
  13684.     /*! @name Ungrouped
  13685.     @{ */
  13686.     /*! */
  13687.     /// @}
  13688.  
  13689.  
  13690.     /*! @name Object
  13691.     @{ */
  13692.     /*! */
  13693.     /// @}
  13694.  
  13695.  
  13696.     /*! @name Editing
  13697.     @{ */
  13698.     /*! */
  13699.     /// @}
  13700.  
  13701.  
  13702.     /*! @name Persistence
  13703.     @{ */
  13704.     /*! */
  13705.     /// @}
  13706.  
  13707.  };
  13708.  
  13709.  /// Stub class
  13710.  ///
  13711.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13712.  ///       information was available for this class.
  13713.  class  GC_Plants_big_nonfertile : public GroundCover {
  13714.    public:
  13715.  };
  13716.  
  13717.  /// Stub class
  13718.  ///
  13719.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13720.  ///       information was available for this class.
  13721.  class  Gc_Plants_normal_nonfertile : public GroundCover {
  13722.    public:
  13723.  };
  13724.  
  13725.  /// Stub class
  13726.  ///
  13727.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13728.  ///       information was available for this class.
  13729.  class  GC_Plants_big_fertile : public GroundCover {
  13730.    public:
  13731.  };
  13732.  
  13733.  /// Stub class
  13734.  ///
  13735.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13736.  ///       information was available for this class.
  13737.  class  Gc_Plants_normal_fertile : public GroundCover {
  13738.    public:
  13739.  };
  13740.  
  13741.  /// Stub class
  13742.  ///
  13743.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13744.  ///       information was available for this class.
  13745.  class  GC_EnvSounds : public GroundCover {
  13746.    public:
  13747.  };
  13748.  
  13749.  /// Stub class
  13750.  ///
  13751.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13752.  ///       information was available for this class.
  13753.  class  Rock_GC : public GroundCover {
  13754.    public:
  13755.  };
  13756.  
  13757.  /// Stub class
  13758.  ///
  13759.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13760.  ///       information was available for this class.
  13761.  class  Sand_Clay_GC : public GroundCover {
  13762.    public:
  13763.  };
  13764.  
  13765.  /// Stub class
  13766.  ///
  13767.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13768.  ///       information was available for this class.
  13769.  class  Swamp_GC : public GroundCover {
  13770.    public:
  13771.  };
  13772.  
  13773.  /// Stub class
  13774.  ///
  13775.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13776.  ///       information was available for this class.
  13777.  class  SteppeSoil_GC : public GroundCover {
  13778.    public:
  13779.  };
  13780.  
  13781.  /// Stub class
  13782.  ///
  13783.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13784.  ///       information was available for this class.
  13785.  class  ForestSoil_GC : public GroundCover {
  13786.    public:
  13787.  };
  13788.  
  13789.  /// Stub class
  13790.  ///
  13791.  /// @note This is a stub class to ensure a proper class hierarchy. No
  13792.  ///       information was available for this class.
  13793.  class  Soil_GC : public GroundCover {
  13794.    public:
  13795.  };
  13796.  
  13797.  /*!
  13798.  @brief Abstract base class for representing a body of water.
  13799.  
  13800.  %WaterObject is abstract and may not be created. It defines functionality shared by its derived classes.
  13801.  
  13802.  %WaterObject exposes many fields for controlling it visual quality.
  13803.  
  13804.  %WaterObject surface rendering has the following general features:
  13805.     - Waves represented by vertex undulation and user paramaters.
  13806.     - Ripples represented by a normal map and user parameters.
  13807.     - Refraction of underwater objects.
  13808.     - Dynamic planar reflection or static cubemap reflection.
  13809.     - Paramable water fog and color shift.
  13810.  
  13811.  It will, however, look significantly different depending on the LightingManager that is active. With Basic Lighting, we do not have a prepass texture to lookup per-pixel depth and therefore cannot use our rendering techniques that depend on it.
  13812.  
  13813.  In particular, the following field groups are not used under Basic Lighting:
  13814.     - Underwater Fogging
  13815.     - Misc
  13816.     - Distortion
  13817.     - And foam related fields under the %WaterObject group.
  13818.  
  13819.  %WaterObject also defines several fields for gameplay use and objects that support buoyancy.
  13820.  
  13821.   */
  13822.  class  WaterObject : public SceneObject {
  13823.    public:
  13824.  
  13825.     /*! @name WaterObject
  13826.     @{ */
  13827.     /*! */
  13828.     /*!
  13829.     Affects buoyancy of an object, thus affecting the Z velocity of a player (jumping, falling, etc.
  13830.    
  13831.      */
  13832.     float density;
  13833.     /*!
  13834.     Affects drag force applied to an object submerged in this container.
  13835.    
  13836.      */
  13837.     float viscosity;
  13838.     /*!
  13839.     Liquid type of WaterBlock, such as water, ocean, lava Currently only Water is defined and used.
  13840.    
  13841.      */
  13842.     string liquidType;
  13843.     /*!
  13844.     Changes color of water fog.
  13845.    
  13846.      */
  13847.     ColorI baseColor;
  13848.     /*!
  13849.     Extent of fresnel affecting reflection fogging.
  13850.    
  13851.      */
  13852.     float fresnelBias;
  13853.     /*!
  13854.     Measures intensity of affect on reflection based on fogging.
  13855.    
  13856.      */
  13857.     float fresnelPower;
  13858.     /*!
  13859.     Power used for specularity on the water surface ( sun only ).
  13860.    
  13861.      */
  13862.     float specularPower;
  13863.     /*!
  13864.     Color used for specularity on the water surface ( sun only ).
  13865.    
  13866.      */
  13867.     ColorF specularColor;
  13868.     /*!
  13869.     When true the water colors don't react to changes to environment lighting.
  13870.    
  13871.      */
  13872.     bool emissive;
  13873.     /*!
  13874.     Clipping water by environment terrain, Only for WaterPlane
  13875.    
  13876.      */
  13877.     bool envClipping;
  13878.     /// @}
  13879.  
  13880.  
  13881.     /*! @name Waves
  13882.     @{ */
  13883.     /*! */
  13884.     /*!
  13885.     Master variable affecting entire body of water's undulation
  13886.    
  13887.      */
  13888.     float overallWaveMagnitude;
  13889.     /*!
  13890.     Direction waves flow toward shores.
  13891.    
  13892.      */
  13893.     Point2F waveDir;
  13894.     /*!
  13895.     Speed of water undulation.
  13896.    
  13897.      */
  13898.     float waveSpeed;
  13899.     /*!
  13900.     Height of water undulation.
  13901.    
  13902.      */
  13903.     float waveMagnitude;
  13904.     /// @}
  13905.  
  13906.  
  13907.     /*! @name Ripples
  13908.     @{ */
  13909.     /*! */
  13910.     /*!
  13911.     Master variable affecting entire surface
  13912.    
  13913.      */
  13914.     float overallRippleMagnitude;
  13915.     /*!
  13916.     Normal map used to simulate small surface ripples
  13917.    
  13918.      */
  13919.     filename rippleTex;
  13920.     /*!
  13921.     Modifies the direction of ripples on the surface.
  13922.    
  13923.      */
  13924.     Point2F rippleDir;
  13925.     /*!
  13926.     Modifies speed of surface ripples.
  13927.    
  13928.      */
  13929.     float rippleSpeed;
  13930.     /*!
  13931.     Intensifies the affect of the normal map applied to the surface.
  13932.    
  13933.      */
  13934.     Point2F rippleTexScale;
  13935.     /*!
  13936.     Intensifies the vertext modification of the surface.
  13937.    
  13938.      */
  13939.     float rippleMagnitude;
  13940.     /// @}
  13941.  
  13942.  
  13943.     /*! @name Foam
  13944.     @{ */
  13945.     /*! */
  13946.     /*!
  13947.     Diffuse texture for foam in shallow water (advanced lighting only)
  13948.    
  13949.      */
  13950.     filename foamTex;
  13951.     /*!
  13952.    
  13953.    
  13954.      */
  13955.     float overallFoamOpacity;
  13956.     /*!
  13957.    
  13958.    
  13959.      */
  13960.     float foamMaxDepth;
  13961.     /*!
  13962.    
  13963.    
  13964.      */
  13965.     float foamAmbientLerp;
  13966.     /*!
  13967.    
  13968.    
  13969.      */
  13970.     float foamRippleInfluence;
  13971.     /*!
  13972.    
  13973.    
  13974.      */
  13975.     Point2F foamDir;
  13976.     /*!
  13977.    
  13978.    
  13979.      */
  13980.     float foamSpeed;
  13981.     /*!
  13982.     applied to the surface.
  13983.    
  13984.      */
  13985.     Point2F foamTexScale;
  13986.     /*!
  13987.    
  13988.    
  13989.      */
  13990.     float foamOpacity;
  13991.     /// @}
  13992.  
  13993.  
  13994.     /*! @name Reflect
  13995.     @{ */
  13996.     /*! */
  13997.     /*!
  13998.     Cubemap used instead of reflection texture if fullReflect is off.
  13999.    
  14000.      */
  14001.     string cubemap;
  14002.     /*!
  14003.     Enables dynamic reflection rendering.
  14004.    
  14005.      */
  14006.     bool fullReflect;
  14007.     /*!
  14008.     Overall scalar to the reflectivity of the water surface.
  14009.    
  14010.      */
  14011.     float reflectivity;
  14012.     /*!
  14013.     Affects the sort order of reflected objects.
  14014.    
  14015.      */
  14016.     float reflectPriority;
  14017.     /*!
  14018.     Affects the sort time of reflected objects.
  14019.    
  14020.      */
  14021.     int reflectMaxRateMs;
  14022.     /*!
  14023.     scale up or down the detail level for objects rendered in a reflection
  14024.    
  14025.      */
  14026.     float reflectDetailAdjust;
  14027.     /*!
  14028.     always use z up as the reflection normal
  14029.    
  14030.      */
  14031.     bool reflectNormalUp;
  14032.     /*!
  14033.     turn off reflection rendering when occluded (delayed).
  14034.    
  14035.      */
  14036.     bool useOcclusionQuery;
  14037.     /*!
  14038.     The texture size used for reflections (square)
  14039.    
  14040.      */
  14041.     int reflectTexSize;
  14042.     /// @}
  14043.  
  14044.  
  14045.     /*! @name Underwater Fogging
  14046.     @{ */
  14047.     /*! */
  14048.     /*!
  14049.     Intensity of underwater fogging.
  14050.    
  14051.      */
  14052.     float waterFogDensity;
  14053.     /*!
  14054.     Delta, or limit, applied to waterFogDensity.
  14055.    
  14056.      */
  14057.     float waterFogDensityOffset;
  14058.     /*!
  14059.     The depth in world units at which full darkening will be received, giving a wet look to objects underwater.
  14060.    
  14061.      */
  14062.     float wetDepth;
  14063.     /*!
  14064.     The refract color intensity scaled at wetDepth.
  14065.    
  14066.      */
  14067.     float wetDarkening;
  14068.     /// @}
  14069.  
  14070.  
  14071.     /*! @name Misc
  14072.     @{ */
  14073.     /*! */
  14074.     /*!
  14075.     1D texture defining the base water color by depth
  14076.    
  14077.      */
  14078.     filename depthGradientTex;
  14079.     /*!
  14080.     Depth in world units, the max range of the color gradient texture.
  14081.    
  14082.      */
  14083.     float depthGradientMax;
  14084.     /// @}
  14085.  
  14086.  
  14087.     /*! @name Distortion
  14088.     @{ */
  14089.     /*! */
  14090.     /*!
  14091.     Determines start of distortion effect where water surface intersects the camera near plane.
  14092.    
  14093.      */
  14094.     float distortStartDist;
  14095.     /*!
  14096.     Max distance that distortion algorithm is performed. The lower, the more distorted the effect.
  14097.    
  14098.      */
  14099.     float distortEndDist;
  14100.     /*!
  14101.     Determines the scaling down of distortion in shallow water.
  14102.    
  14103.      */
  14104.     float distortFullDepth;
  14105.     /// @}
  14106.  
  14107.  
  14108.     /*! @name Basic Lighting
  14109.     @{ */
  14110.     /*! */
  14111.     /*!
  14112.     Relative opacity or transparency of the water surface.
  14113.    
  14114.      */
  14115.     float clarity;
  14116.     /*!
  14117.     Changes the color shading of objects beneath the water surface.
  14118.    
  14119.      */
  14120.     ColorI underwaterColor;
  14121.     /// @}
  14122.  
  14123.  
  14124.     /*! @name Sound
  14125.     @{ */
  14126.     /*! */
  14127.     /*!
  14128.     Ambient sound environment when listener is submerged.
  14129.    
  14130.      */
  14131.     SFXAmbience soundAmbience;
  14132.     /// @}
  14133.  
  14134.  
  14135.     /*! @name Transform
  14136.     @{ */
  14137.     /*! */
  14138.     /// @}
  14139.  
  14140.  
  14141.     /*! @name Editing
  14142.     @{ */
  14143.     /*! */
  14144.     /// @}
  14145.  
  14146.  
  14147.     /*! @name Mounting
  14148.     @{ */
  14149.     /*! */
  14150.     /// @}
  14151.  
  14152.  
  14153.     /*! @name Ungrouped
  14154.     @{ */
  14155.     /*! */
  14156.     /// @}
  14157.  
  14158.  
  14159.     /*! @name Object
  14160.     @{ */
  14161.     /*! */
  14162.     /// @}
  14163.  
  14164.  
  14165.     /*! @name Editing
  14166.     @{ */
  14167.     /*! */
  14168.     /// @}
  14169.  
  14170.  
  14171.     /*! @name Persistence
  14172.     @{ */
  14173.     /*! */
  14174.     /// @}
  14175.  
  14176.  };
  14177.  
  14178.  /*!
  14179.  @brief Represents a large body of water stretching to the horizon in all directions.
  14180.  
  14181.  WaterPlane's position is defined only height, the z element of position, it is infinite in xy and depth. %WaterPlane is designed to represent the ocean on an island scene and viewed from ground level; other uses may not be appropriate and a WaterBlock may be used.
  14182.  
  14183.  @see WaterObject for inherited functionality.
  14184.  
  14185.  Limitations:
  14186.  
  14187.  Because %WaterPlane cannot be projected exactly to the far-clip distance, other objects nearing this distance can have noticible artifacts as they clip through first the %WaterPlane and then the far plane.
  14188.  
  14189.  To avoid this large objects should be positioned such that they will not line up with the far-clip from vantage points the player is expected to be. In particular, your TerrainBlock should be completely contained by the far-clip distance.
  14190.  
  14191.  Viewing %WaterPlane from a high altitude with a tight far-clip distance will accentuate this limitation. %WaterPlane is primarily designed to be viewed from ground level.
  14192.  
  14193.   */
  14194.  class  WaterPlane : public WaterObject {
  14195.    public:
  14196.  
  14197.     /*! @name WaterPlane
  14198.     @{ */
  14199.     /*! */
  14200.     /*!
  14201.     Spacing between vertices in the WaterBlock mesh
  14202.    
  14203.      */
  14204.     int gridSize;
  14205.     /*!
  14206.     Duplicate of gridElementSize for backwards compatility
  14207.    
  14208.      */
  14209.     float gridElementSize;
  14210.     /// @}
  14211.  
  14212.  
  14213.     /*! @name WaterObject
  14214.     @{ */
  14215.     /*! */
  14216.     /// @}
  14217.  
  14218.  
  14219.     /*! @name Waves
  14220.     @{ */
  14221.     /*! */
  14222.     /// @}
  14223.  
  14224.  
  14225.     /*! @name Ripples
  14226.     @{ */
  14227.     /*! */
  14228.     /// @}
  14229.  
  14230.  
  14231.     /*! @name Foam
  14232.     @{ */
  14233.     /*! */
  14234.     /// @}
  14235.  
  14236.  
  14237.     /*! @name Reflect
  14238.     @{ */
  14239.     /*! */
  14240.     /// @}
  14241.  
  14242.  
  14243.     /*! @name Underwater Fogging
  14244.     @{ */
  14245.     /*! */
  14246.     /// @}
  14247.  
  14248.  
  14249.     /*! @name Misc
  14250.     @{ */
  14251.     /*! */
  14252.     /// @}
  14253.  
  14254.  
  14255.     /*! @name Distortion
  14256.     @{ */
  14257.     /*! */
  14258.     /// @}
  14259.  
  14260.  
  14261.     /*! @name Basic Lighting
  14262.     @{ */
  14263.     /*! */
  14264.     /// @}
  14265.  
  14266.  
  14267.     /*! @name Sound
  14268.     @{ */
  14269.     /*! */
  14270.     /// @}
  14271.  
  14272.  
  14273.     /*! @name Transform
  14274.     @{ */
  14275.     /*! */
  14276.     /// @}
  14277.  
  14278.  
  14279.     /*! @name Editing
  14280.     @{ */
  14281.     /*! */
  14282.     /// @}
  14283.  
  14284.  
  14285.     /*! @name Mounting
  14286.     @{ */
  14287.     /*! */
  14288.     /// @}
  14289.  
  14290.  
  14291.     /*! @name Ungrouped
  14292.     @{ */
  14293.     /*! */
  14294.     /// @}
  14295.  
  14296.  
  14297.     /*! @name Object
  14298.     @{ */
  14299.     /*! */
  14300.     /// @}
  14301.  
  14302.  
  14303.     /*! @name Editing
  14304.     @{ */
  14305.     /*! */
  14306.     /// @}
  14307.  
  14308.  
  14309.     /*! @name Persistence
  14310.     @{ */
  14311.     /*! */
  14312.     /// @}
  14313.  
  14314.  };
  14315.  
  14316.  /// Stub class
  14317.  ///
  14318.  /// @note This is a stub class to ensure a proper class hierarchy. No
  14319.  ///       information was available for this class.
  14320.  class  waterInst : public WaterPlane {
  14321.    public:
  14322.  };
  14323.  
  14324.  /*!
  14325.  @brief Represents both the sun and sky for scenes with a dynamic time of day.
  14326.  
  14327.  %ScatterSky renders as a dome shaped mesh which is camera relative and always overhead. It is intended to be part of the background of your scene and renders before all other objects types.
  14328.  
  14329.  %ScatterSky is designed for outdoor scenes which need to transition fluidly between radically different times of day. It will respond to time changes originating from a TimeOfDay object or the elevation field can be directly adjusted.
  14330.  
  14331.  During day, %ScatterSky uses atmosphereic sunlight scattering aproximations to generate a sky gradient and sun corona. It also calculates the fog color, ambient color, and sun color, which are used for scene lighting. This is user controlled by fields within the ScatterSky group.
  14332.  
  14333.  During night, %ScatterSky supports can transition to a night sky cubemap and moon sprite. The user can control this and night time colors used for scene lighting with fields within the Night group.
  14334.  
  14335.  A scene with a ScatterSky should not have any other sky or sun objects as it already fulfills both roles.
  14336.  
  14337.  %ScatterSky is intended to be used with CloudLayer and TimeOfDay as part of a scene with dynamic lighting. Having a %ScatterSky without a changing time of day would unnecessarily give up artistic control compared and fillrate compared to a SkyBox + Sun setup.
  14338.  
  14339.   */
  14340.  class  ScatterSky : public SceneObject {
  14341.    public:
  14342.     /*! Apply a full network update of all fields to all clients. */
  14343.     virtual void applyChanges(()) {}
  14344.  
  14345.     /*! @name ScatterSky
  14346.    
  14347.     Only azimuth and elevation are networked fields. To trigger a full update of all other fields use the applyChanges ConsoleMethod.
  14348.     @{ */
  14349.     /*! */
  14350.     /*!
  14351.     Global brightness and intensity applied to the sky and objects in the level.
  14352.    
  14353.      */
  14354.     float skyBrightness;
  14355.     /*!
  14356.     Affects the size and intensity of light scattering around the sun.
  14357.    
  14358.      */
  14359.     float mieScattering;
  14360.     /*!
  14361.     Controls how blue the atmosphere is during the day.
  14362.    
  14363.      */
  14364.     float rayleighScattering;
  14365.     /*!
  14366.      */
  14367.     ColorF sunColor;
  14368.     /*!
  14369.      */
  14370.     ColorF ambientColor;
  14371.     /*!
  14372.     Scale of sun size
  14373.    
  14374.      */
  14375.     float sunSize;
  14376.     /*!
  14377.     Height of the fog
  14378.    
  14379.      */
  14380.     float fogHeight;
  14381.     /*!
  14382.     Density of the fog
  14383.    
  14384.      */
  14385.     float fogDensity;
  14386.     /*!
  14387.     Controls the contrast of the sky and sun during daytime.
  14388.    
  14389.      */
  14390.     float exposure;
  14391.     /*!
  14392.     Moon opacity
  14393.    
  14394.      */
  14395.     float moonOpacity;
  14396.     /// @}
  14397.  
  14398.  
  14399.     /*! @name Orbit
  14400.     @{ */
  14401.     /*! */
  14402.     /*!
  14403.     The horizontal angle of the sun measured clockwise from the positive Y world axis. This field is networked.
  14404.    
  14405.      */
  14406.     float azimuth;
  14407.     /*!
  14408.     The elevation angle of the sun above or below the horizon. This field is networked.
  14409.    
  14410.      */
  14411.     float elevation;
  14412.     /*!
  14413.     The horizontal angle of the moon measured clockwise from the positive Y world axis. This is not animated by time or networked.
  14414.    
  14415.      */
  14416.     float moonAzimuth;
  14417.     /*!
  14418.     The elevation angle of the moon above or below the horizon. This is not animated by time or networked.
  14419.    
  14420.      */
  14421.     float moonElevation;
  14422.     /// @}
  14423.  
  14424.  
  14425.     /*! @name Lighting
  14426.     @{ */
  14427.     /*! */
  14428.     /*!
  14429.     Enables/disables shadows cast by objects due to ScatterSky light.
  14430.    
  14431.      */
  14432.     bool castShadows;
  14433.     /*!
  14434.     The brightness of the ScatterSky's light object.
  14435.    
  14436.      */
  14437.     float brightness;
  14438.     /// @}
  14439.  
  14440.  
  14441.     /*! @name Misc
  14442.     @{ */
  14443.     /*! */
  14444.     /*!
  14445.     Datablock for the flare produced by the ScatterSky.
  14446.    
  14447.      */
  14448.     LightFlareData flareType;
  14449.     /*!
  14450.     Changes the size and intensity of the flare.
  14451.    
  14452.      */
  14453.     float flareScale;
  14454.     /// @}
  14455.  
  14456.  
  14457.     /*! @name Night
  14458.     @{ */
  14459.     /*! */
  14460.     /*!
  14461.     Enable or disable rendering of the moon sprite during night.
  14462.    
  14463.      */
  14464.     bool moonEnabled;
  14465.     /*!
  14466.     Material for the moon sprite.
  14467.    
  14468.      */
  14469.     string moonMat;
  14470.     /*!
  14471.     Controls size the moon sprite renders, specified as a fractional amount of the screen height.
  14472.    
  14473.      */
  14474.     float moonScale;
  14475.     /*!
  14476.     Color of light cast by the directional light during night.
  14477.    
  14478.      */
  14479.     ColorF moonLightColor;
  14480.     /// @}
  14481.  
  14482.  
  14483.     /*! @name Clouds
  14484.     @{ */
  14485.     /*! */
  14486.     /*!
  14487.     Name of clouds cubemap
  14488.    
  14489.      */
  14490.     string cloudCubemap;
  14491.     /*!
  14492.     Cloud alpha test reference
  14493.    
  14494.      */
  14495.     float cloudAlphaTest;
  14496.     /*!
  14497.     Cloud transparency
  14498.    
  14499.      */
  14500.     float cloudTransparency;
  14501.     /*!
  14502.     Cloud rotation around vertical axis
  14503.    
  14504.      */
  14505.     float cloudRotation;
  14506.     /*!
  14507.     Cloud rotation around vertical axis speed
  14508.    
  14509.      */
  14510.     float cloudRotationSpeed;
  14511.     /// @}
  14512.  
  14513.  
  14514.     /*! @name Advanced Lighting
  14515.     @{ */
  14516.     /*! */
  14517.     /*!
  14518.     The proportions of constant, linear, and quadratic attenuation to use for the falloff for point and spot lights.
  14519.    
  14520.      */
  14521.     Point3F attenuationRatio;
  14522.     /*!
  14523.     The type of shadow to use on this light.
  14524.    
  14525.      */
  14526.     ShadowType shadowType;
  14527.     /*!
  14528.     A custom pattern texture which is projected from the light.
  14529.    
  14530.      */
  14531.     filename cookie;
  14532.     /*!
  14533.     The texture size of the shadow map.
  14534.    
  14535.      */
  14536.     int texSize;
  14537.     /*!
  14538.     The ESM shadow darkening factor
  14539.    
  14540.      */
  14541.     Point4F overDarkFactor;
  14542.     /*!
  14543.     The distance from the camera to extend the PSSM shadow.
  14544.    
  14545.      */
  14546.     float shadowDistance;
  14547.     /*!
  14548.    
  14549.    
  14550.      */
  14551.     float shadowSoftness;
  14552.     /*!
  14553.     The logrithmic PSSM split distance factor.
  14554.    
  14555.      */
  14556.     int numSplits;
  14557.     /*!
  14558.     The logrithmic PSSM split distance factor.
  14559.    
  14560.      */
  14561.     float logWeight;
  14562.     /*!
  14563.     Start fading shadows out at this distance.  0 = auto calculate this distance.
  14564.    
  14565.      */
  14566.     float fadeStartDistance;
  14567.     /*!
  14568.     This toggles only terrain being rendered to the last split of a PSSM shadow map.
  14569.    
  14570.      */
  14571.     bool lastSplitTerrainOnly;
  14572.     /// @}
  14573.  
  14574.  
  14575.     /*! @name Advanced Lighting Lightmap
  14576.     @{ */
  14577.     /*! */
  14578.     /*!
  14579.     This light is represented in lightmaps (static light, default: false)
  14580.    
  14581.      */
  14582.     bool representedInLightmap;
  14583.     /*!
  14584.     The color that should be used to multiply-blend dynamic shadows onto lightmapped geometry (ignored if 'representedInLightmap' is false)
  14585.    
  14586.      */
  14587.     ColorF shadowDarkenColor;
  14588.     /*!
  14589.     This light should render lightmapped geometry during its shadow-map update (ignored if 'representedInLightmap' is false)
  14590.    
  14591.      */
  14592.     bool includeLightmappedGeometryInShadow;
  14593.     /// @}
  14594.  
  14595.  
  14596.     /*! @name Transform
  14597.     @{ */
  14598.     /*! */
  14599.     /// @}
  14600.  
  14601.  
  14602.     /*! @name Editing
  14603.     @{ */
  14604.     /*! */
  14605.     /// @}
  14606.  
  14607.  
  14608.     /*! @name Mounting
  14609.     @{ */
  14610.     /*! */
  14611.     /// @}
  14612.  
  14613.  
  14614.     /*! @name Ungrouped
  14615.     @{ */
  14616.     /*! */
  14617.     /// @}
  14618.  
  14619.  
  14620.     /*! @name Object
  14621.     @{ */
  14622.     /*! */
  14623.     /// @}
  14624.  
  14625.  
  14626.     /*! @name Editing
  14627.     @{ */
  14628.     /*! */
  14629.     /// @}
  14630.  
  14631.  
  14632.     /*! @name Persistence
  14633.     @{ */
  14634.     /*! */
  14635.     /// @}
  14636.  
  14637.  };
  14638.  
  14639.  /// Stub class
  14640.  ///
  14641.  /// @note This is a stub class to ensure a proper class hierarchy. No
  14642.  ///       information was available for this class.
  14643.  class  theSky : public ScatterSky {
  14644.    public:
  14645.  };
  14646.  
  14647.  /*!
  14648.  @brief Stores and controls the rendering and status information for a game level.
  14649.  
  14650.  @tsexample
  14651.  new LevelInfo(theLevelInfo)
  14652.  {
  14653.    visibleDistance = "1000";
  14654.    fogColor = "0.6 0.6 0.7 1";
  14655.    fogDensity = "0";
  14656.    fogDensityOffset = "700";
  14657.    fogAtmosphereHeight = "0";
  14658.    canvasClearColor = "0 0 0 255";
  14659.    canSaveDynamicFields = "1";
  14660.    levelName = "Blank Room";
  14661.    desc0 = "A blank room ready to be populated with Torque objects.";
  14662.    Enabled = "1";
  14663.  };
  14664.  @endtsexample
  14665.  @ingroup enviroMisc
  14666.   */
  14667.  class  LevelInfo : public NetObject {
  14668.    public:
  14669.  
  14670.     /*! @name Visibility
  14671.     @{ */
  14672.     /*! */
  14673.     /*!
  14674.     Closest distance from the camera's position to render the world.
  14675.    
  14676.      */
  14677.     float nearClip;
  14678.     /*!
  14679.     Furthest distance fromt he camera's position to render the world.
  14680.    
  14681.      */
  14682.     float visibleDistance;
  14683.     /*!
  14684.     NearPlane bias used when rendering Decal and DecalRoad. This should be tuned to the visibleDistance in your level.
  14685.    
  14686.      */
  14687.     float decalBias;
  14688.     /// @}
  14689.  
  14690.  
  14691.     /*! @name Fog
  14692.     @{ */
  14693.     /*! */
  14694.     /*!
  14695.     The default color for the scene fog.
  14696.    
  14697.      */
  14698.     ColorF fogColor;
  14699.     /*!
  14700.     The 0 to 1 density value for the exponential fog falloff.
  14701.    
  14702.      */
  14703.     float fogDensity;
  14704.     /*!
  14705.     An offset from the camera in meters for moving the start of the fog effect.
  14706.    
  14707.      */
  14708.     float fogDensityOffset;
  14709.     /// @}
  14710.  
  14711.  
  14712.     /*! @name LevelInfo
  14713.     @{ */
  14714.     /*! */
  14715.     /*!
  14716.     The color used to clear the background before the scene or any GUIs are rendered.
  14717.    
  14718.      */
  14719.     ColorI canvasClearColor;
  14720.     /// @}
  14721.  
  14722.  
  14723.     /*! @name Lighting
  14724.     @{ */
  14725.     /*! */
  14726.     /*!
  14727.     Number of seconds it takes to blend from one ambient light color to a different one.
  14728.    
  14729.      */
  14730.     float ambientLightBlendPhase;
  14731.     /*!
  14732.     Interpolation curve to use for blending from one ambient light color to a different one.
  14733.    
  14734.      */
  14735.     EaseF ambientLightBlendCurve;
  14736.     /*!
  14737.     Enable expanded support for mixing static and dynamic lighting (more costly)
  14738.    
  14739.      */
  14740.     bool advancedLightmapSupport;
  14741.     /// @}
  14742.  
  14743.  
  14744.     /*! @name Sound
  14745.     @{ */
  14746.     /*! */
  14747.     /*!
  14748.     The global ambient sound environment.
  14749.    
  14750.      */
  14751.     SFXAmbience soundAmbience;
  14752.     /*!
  14753.     The distance attenuation model to use.
  14754.    
  14755.      */
  14756.     SFXDistanceModel soundDistanceModel;
  14757.     /// @}
  14758.  
  14759.  
  14760.     /*! @name Ungrouped
  14761.     @{ */
  14762.     /*! */
  14763.     /// @}
  14764.  
  14765.  
  14766.     /*! @name Object
  14767.     @{ */
  14768.     /*! */
  14769.     /// @}
  14770.  
  14771.  
  14772.     /*! @name Editing
  14773.     @{ */
  14774.     /*! */
  14775.     /// @}
  14776.  
  14777.  
  14778.     /*! @name Persistence
  14779.     @{ */
  14780.     /*! */
  14781.     /// @}
  14782.  
  14783.  };
  14784.  
  14785.  /// Stub class
  14786.  ///
  14787.  /// @note This is a stub class to ensure a proper class hierarchy. No
  14788.  ///       information was available for this class.
  14789.  class  theLevelInfo : public LevelInfo {
  14790.    public:
  14791.  };
  14792.  
  14793.  /// Stub class
  14794.  ///
  14795.  /// @note This is a stub class to ensure a proper class hierarchy. No
  14796.  ///       information was available for this class.
  14797.  class  EnvironmentGroup : public SimGroup {
  14798.    public:
  14799.  };
  14800.  
  14801.  /*!
  14802.  @brief This is the base class for light objects.
  14803.  
  14804.  It is *NOT* intended to be used directly in script, but exists to provide the base member variables and generic functionality. You should be using the derived classes PointLight and SpotLight, which can be declared in TorqueScript or added from the World Editor.
  14805.  
  14806.  For this class, we only add basic lighting options that all lighting systems would use. The specific lighting system options are injected at runtime by the lighting system itself.
  14807.  
  14808.  @see PointLight
  14809.  
  14810.  @see SpotLight
  14811.  
  14812.  @ingroup Lighting
  14813.   */
  14814.  class  LightBase : public SceneObject {
  14815.    public:
  14816.     /*! @brief Toggles the light on and off
  14817.  
  14818. @param state Turns the light on (true) or off (false)
  14819. @tsexample
  14820. // Disable the light
  14821. CrystalLight.setLightEnabled(false);
  14822.  
  14823. // Renable the light
  14824. CrystalLight.setLightEnabled(true);
  14825. @endtsexample
  14826.  
  14827.  */
  14828.     virtual void setLightEnabled(( bool state )) {}
  14829.     /*! Plays a light animation on the light.  If no LightAnimData is passed the existing one is played.@hide */
  14830.     virtual void playAnimation(( [LightAnimData anim] )) {}
  14831.     /*! Stops the light animation. */
  14832.     virtual void pauseAnimation() {}
  14833.  
  14834.     /*! @name Light
  14835.     @{ */
  14836.     /*! */
  14837.     /*!
  14838.     Enables/Disables the object rendering and functionality in the scene.
  14839.    
  14840.      */
  14841.     bool isEnabled;
  14842.     /*!
  14843.     Changes the base color hue of the light.
  14844.    
  14845.      */
  14846.     ColorF color;
  14847.     /*!
  14848.     Adjusts the lights power, 0 being off completely.
  14849.    
  14850.      */
  14851.     float brightness;
  14852.     /*!
  14853.     Enables/disabled shadow casts by this light.
  14854.    
  14855.      */
  14856.     bool castShadows;
  14857.     /*!
  14858.     Used for sorting of lights by the light manager. Priority determines if a light has a stronger effect than, those with a lower value
  14859.    
  14860.      */
  14861.     float priority;
  14862.     /// @}
  14863.  
  14864.  
  14865.     /*! @name Light Animation
  14866.     @{ */
  14867.     /*! */
  14868.     /*!
  14869.     Toggles animation for the light on and off
  14870.    
  14871.      */
  14872.     bool animate;
  14873.     /*!
  14874.     Datablock containing light animation information (LightAnimData)
  14875.    
  14876.      */
  14877.     LightAnimData animationType;
  14878.     /*!
  14879.     The length of time in seconds for a single playback of the light animation (must be > 0)
  14880.    
  14881.      */
  14882.     float animationPeriod;
  14883.     /*!
  14884.     The phase used to offset the animation start time to vary the animation of nearby lights.
  14885.    
  14886.      */
  14887.     float animationPhase;
  14888.     /// @}
  14889.  
  14890.  
  14891.     /*! @name Misc
  14892.     @{ */
  14893.     /*! */
  14894.     /*!
  14895.     Datablock containing light flare information (LightFlareData)
  14896.    
  14897.      */
  14898.     LightFlareData flareType;
  14899.     /*!
  14900.     Globally scales all features of the light flare
  14901.    
  14902.      */
  14903.     float flareScale;
  14904.     /// @}
  14905.  
  14906.  
  14907.     /*! @name Advanced Lighting
  14908.     @{ */
  14909.     /*! */
  14910.     /*!
  14911.     The proportions of constant, linear, and quadratic attenuation to use for the falloff for point and spot lights.
  14912.    
  14913.      */
  14914.     Point3F attenuationRatio;
  14915.     /*!
  14916.     The type of shadow to use on this light.
  14917.    
  14918.      */
  14919.     ShadowType shadowType;
  14920.     /*!
  14921.     A custom pattern texture which is projected from the light.
  14922.    
  14923.      */
  14924.     filename cookie;
  14925.     /*!
  14926.     The texture size of the shadow map.
  14927.    
  14928.      */
  14929.     int texSize;
  14930.     /*!
  14931.     The ESM shadow darkening factor
  14932.    
  14933.      */
  14934.     Point4F overDarkFactor;
  14935.     /*!
  14936.     The distance from the camera to extend the PSSM shadow.
  14937.    
  14938.      */
  14939.     float shadowDistance;
  14940.     /*!
  14941.    
  14942.    
  14943.      */
  14944.     float shadowSoftness;
  14945.     /*!
  14946.     The logrithmic PSSM split distance factor.
  14947.    
  14948.      */
  14949.     int numSplits;
  14950.     /*!
  14951.     The logrithmic PSSM split distance factor.
  14952.    
  14953.      */
  14954.     float logWeight;
  14955.     /*!
  14956.     Start fading shadows out at this distance.  0 = auto calculate this distance.
  14957.    
  14958.      */
  14959.     float fadeStartDistance;
  14960.     /*!
  14961.     This toggles only terrain being rendered to the last split of a PSSM shadow map.
  14962.    
  14963.      */
  14964.     bool lastSplitTerrainOnly;
  14965.     /// @}
  14966.  
  14967.  
  14968.     /*! @name Advanced Lighting Lightmap
  14969.     @{ */
  14970.     /*! */
  14971.     /*!
  14972.     This light is represented in lightmaps (static light, default: false)
  14973.    
  14974.      */
  14975.     bool representedInLightmap;
  14976.     /*!
  14977.     The color that should be used to multiply-blend dynamic shadows onto lightmapped geometry (ignored if 'representedInLightmap' is false)
  14978.    
  14979.      */
  14980.     ColorF shadowDarkenColor;
  14981.     /*!
  14982.     This light should render lightmapped geometry during its shadow-map update (ignored if 'representedInLightmap' is false)
  14983.    
  14984.      */
  14985.     bool includeLightmappedGeometryInShadow;
  14986.     /// @}
  14987.  
  14988.  
  14989.     /*! @name Transform
  14990.     @{ */
  14991.     /*! */
  14992.     /// @}
  14993.  
  14994.  
  14995.     /*! @name Editing
  14996.     @{ */
  14997.     /*! */
  14998.     /// @}
  14999.  
  15000.  
  15001.     /*! @name Mounting
  15002.     @{ */
  15003.     /*! */
  15004.     /// @}
  15005.  
  15006.  
  15007.     /*! @name Ungrouped
  15008.     @{ */
  15009.     /*! */
  15010.     /// @}
  15011.  
  15012.  
  15013.     /*! @name Object
  15014.     @{ */
  15015.     /*! */
  15016.     /// @}
  15017.  
  15018.  
  15019.     /*! @name Editing
  15020.     @{ */
  15021.     /*! */
  15022.     /// @}
  15023.  
  15024.  
  15025.     /*! @name Persistence
  15026.     @{ */
  15027.     /*! */
  15028.     /// @}
  15029.  
  15030.  };
  15031.  
  15032.  /*!
  15033.  @brief Lighting object that radiates light in all directions.
  15034.  
  15035.  PointLight is one of the two types of lighting objects that can be added to a Torque 3D level, the other being SpotLight. Unlike directional or conical light, the PointLight emits lighting in all directions. The attenuation is controlled by a single variable: LightObject::radius.
  15036.  
  15037.  @tsexample
  15038.  // Declaration of a point light in script, or created by World Editor
  15039.  new PointLight(CrystalLight)
  15040.  {
  15041.     radius = "10";
  15042.     isEnabled = "1";
  15043.     color = "1 0.905882 0 1";
  15044.     brightness = "0.5";
  15045.     castShadows = "1";
  15046.     priority = "1";
  15047.     animate = "1";
  15048.     animationType = "SubtlePulseLightAnim";
  15049.     animationPeriod = "3";
  15050.     animationPhase = "3";
  15051.     flareScale = "1";
  15052.     attenuationRatio = "0 1 1";
  15053.     shadowType = "DualParaboloidSinglePass";
  15054.     texSize = "512";
  15055.     overDarkFactor = "2000 1000 500 100";
  15056.     shadowDistance = "400";
  15057.     shadowSoftness = "0.15";
  15058.     numSplits = "1";
  15059.     logWeight = "0.91";
  15060.     fadeStartDistance = "0";
  15061.     lastSplitTerrainOnly = "0";
  15062.     splitFadeDistances = "10 20 30 40";
  15063.     representedInLightmap = "0";
  15064.     shadowDarkenColor = "0 0 0 -1";
  15065.     includeLightmappedGeometryInShadow = "1";
  15066.     position = "-61.3866 1.69186 5.1464";
  15067.     rotation = "1 0 0 0";
  15068.  };
  15069.  @endtsexample
  15070.  
  15071.  @see LightBase
  15072.  
  15073.  @see SpotLight
  15074.  
  15075.  @ingroup Lighting
  15076.   */
  15077.  class  PointLight : public LightBase {
  15078.    public:
  15079.  
  15080.     /*! @name Light
  15081.     @{ */
  15082.     /*! */
  15083.     /*!
  15084.     Controls the falloff of the light emission
  15085.    
  15086.      */
  15087.     float radius;
  15088.     /// @}
  15089.  
  15090.  
  15091.     /*! @name Light
  15092.     @{ */
  15093.     /*! */
  15094.     /// @}
  15095.  
  15096.  
  15097.     /*! @name Light Animation
  15098.     @{ */
  15099.     /*! */
  15100.     /// @}
  15101.  
  15102.  
  15103.     /*! @name Misc
  15104.     @{ */
  15105.     /*! */
  15106.     /// @}
  15107.  
  15108.  
  15109.     /*! @name Advanced Lighting
  15110.     @{ */
  15111.     /*! */
  15112.     /// @}
  15113.  
  15114.  
  15115.     /*! @name Advanced Lighting Lightmap
  15116.     @{ */
  15117.     /*! */
  15118.     /// @}
  15119.  
  15120.  
  15121.     /*! @name Transform
  15122.     @{ */
  15123.     /*! */
  15124.     /// @}
  15125.  
  15126.  
  15127.     /*! @name Editing
  15128.     @{ */
  15129.     /*! */
  15130.     /// @}
  15131.  
  15132.  
  15133.     /*! @name Mounting
  15134.     @{ */
  15135.     /*! */
  15136.     /// @}
  15137.  
  15138.  
  15139.     /*! @name Ungrouped
  15140.     @{ */
  15141.     /*! */
  15142.     /// @}
  15143.  
  15144.  
  15145.     /*! @name Object
  15146.     @{ */
  15147.     /*! */
  15148.     /// @}
  15149.  
  15150.  
  15151.     /*! @name Editing
  15152.     @{ */
  15153.     /*! */
  15154.     /// @}
  15155.  
  15156.  
  15157.     /*! @name Persistence
  15158.     @{ */
  15159.     /*! */
  15160.     /// @}
  15161.  
  15162.  };
  15163.  
  15164.  /// Stub class
  15165.  ///
  15166.  /// @note This is a stub class to ensure a proper class hierarchy. No
  15167.  ///       information was available for this class.
  15168.  class  Forge_Light : public PointLight {
  15169.    public:
  15170.  };
  15171.  
  15172.  /// Stub class
  15173.  ///
  15174.  /// @note This is a stub class to ensure a proper class hierarchy. No
  15175.  ///       information was available for this class.
  15176.  class  bonfire_light : public PointLight {
  15177.    public:
  15178.  };
  15179.  
  15180.  /// Stub class
  15181.  ///
  15182.  /// @note This is a stub class to ensure a proper class hierarchy. No
  15183.  ///       information was available for this class.
  15184.  class  Lamppost_Light_2 : public PointLight {
  15185.    public:
  15186.  };
  15187.  
  15188.  /// Stub class
  15189.  ///
  15190.  /// @note This is a stub class to ensure a proper class hierarchy. No
  15191.  ///       information was available for this class.
  15192.  class  Torch_light : public PointLight {
  15193.    public:
  15194.  };
  15195.  
  15196.  /// Stub class
  15197.  ///
  15198.  /// @note This is a stub class to ensure a proper class hierarchy. No
  15199.  ///       information was available for this class.
  15200.  class  Lamppost_Light : public PointLight {
  15201.    public:
  15202.  };
  15203.  
  15204.  /// Stub class
  15205.  ///
  15206.  /// @note This is a stub class to ensure a proper class hierarchy. No
  15207.  ///       information was available for this class.
  15208.  class  FirePointLight : public PointLight {
  15209.    public:
  15210.  };
  15211.  
  15212.  /// Stub class
  15213.  ///
  15214.  /// @note This is a stub class to ensure a proper class hierarchy. No
  15215.  ///       information was available for this class.
  15216.  class  Red_PointlightPrototype : public PointLight {
  15217.    public:
  15218.  };
  15219.  
  15220.  /// Stub class
  15221.  ///
  15222.  /// @note This is a stub class to ensure a proper class hierarchy. No
  15223.  ///       information was available for this class.
  15224.  class  Green_PointlightPrototype : public PointLight {
  15225.    public:
  15226.  };
  15227.  
  15228.  /// Stub class
  15229.  ///
  15230.  /// @note This is a stub class to ensure a proper class hierarchy. No
  15231.  ///       information was available for this class.
  15232.  class  LightPrototypesGroup : public SimGroup {
  15233.    public:
  15234.  };
  15235.  
  15236.  /*!
  15237.  @brief ActionMaps assign platform input events to console commands.
  15238.  
  15239.  Any platform input event can be bound in a single, generic way. In theory, the game doesn't need to know if the event came from the keyboard, mouse, joystick or some other input device. This allows users of the game to map keys and actions according to their own preferences. Game action maps are arranged in a stack for processing so individual parts of the game can define specific actions. For example, when the player jumps into a vehicle it could push a vehicle action map and pop the default player action map.
  15240.  
  15241.  @section ActionMap_creation Creating an ActionMap
  15242.  The input system allows for the creation of multiple ActionMaps, so long as they have unique names and do not already exist. It's a simple three step process.
  15243.  
  15244.  1. Check to see if the ActionMap exists
  15245.  2. Delete it if it exists
  15246.  3. Instantiate the ActionMap
  15247.  
  15248.  The following is an example of how to create a new ActionMap:
  15249.  @tsexample
  15250.  if ( isObject( moveMap ) )
  15251.     moveMap.delete();
  15252.  new ActionMap(moveMap);@endtsexample
  15253.  
  15254.  
  15255.  @section ActionMap_binding Binding Functions
  15256.  Once you have created an ActionMap, you can start binding functionality to events. Currently, Torque 3D supports the following devices out of the box
  15257.  
  15258.  * Mouse
  15259.  
  15260.  * Keyboard
  15261.  
  15262.  * Joystick/Gamepad
  15263.  
  15264.  * Xbox 360 Controller
  15265.  
  15266.  The two most commonly used binding methods are bind() and bindCmd(). Both are similar in that they will bind functionality to a device and event, but different in how the event is interpreted. With bind(), you specify a device, action to bind, then a function to be called when the event happens.
  15267.  
  15268.  @tsexample
  15269.  // Simple function that prints to console
  15270.  // %val - Sent by the device letting the user know
  15271.  // if an input was pressed (true) or released (false)
  15272.  function testInput(%val)
  15273.  {
  15274.     if(%val)
  15275.       echo("Key is down");
  15276.     else
  15277.       echo("Key was released");
  15278.  }
  15279.  
  15280.  // Bind the 'K' key to the testInput function
  15281.  moveMap.bind(keyboard, "k", testInput);
  15282.  
  15283.  @endtsexample
  15284.  
  15285.  
  15286.  bindCmd is an alternative method for binding commands. This function is similar to bind(), except two functions are set to be called when the event is processed.
  15287.  
  15288.  One will be called when the event is activated (input down), while the other is activated when the event is broken (input release). When using bindCmd(), pass the functions as strings rather than the function names.
  15289.  
  15290.  @tsexample
  15291.  // Print to the console when the spacebar is pressed
  15292.  function onSpaceDown()
  15293.  {
  15294.     echo("Space bar down!");
  15295.  }
  15296.  
  15297.  // Print to the console when the spacebar is released
  15298.  function onSpaceUp()
  15299.  {
  15300.     echo("Space bar up!");
  15301.  }
  15302.  
  15303.  // Bind the commands onSpaceDown and onSpaceUp to spacebar events
  15304.  moveMap.bindCmd(keyboard, "space", "onSpaceDown();", "onSpaceUp();");
  15305.  @endtsexample
  15306.  
  15307.  @section ActionMap_switching Switching ActionMaps
  15308.  Let's say you want to have different ActionMaps activated based on game play situations. A classic example would be first person shooter controls and racing controls in the same game. On foot, spacebar may cause your player to jump. In a vehicle, it may cause some kind of "turbo charge". You simply need to push/pop the ActionMaps appropriately:
  15309.  
  15310.  First, create two separate ActionMaps:
  15311.  
  15312.  @tsexample
  15313.  // Create the two ActionMaps
  15314.  if ( isObject( moveMap ) )
  15315.     moveMap.delete();
  15316.  new ActionMap(moveMap);
  15317.  
  15318.  if ( isObject( carMap ) )
  15319.     carMap.delete();
  15320.  new ActionMap(carMap);
  15321.  
  15322.  @endtsexample
  15323.  
  15324.  Next, create the two separate functions. Both will be bound to spacebar, but not the same ActionMap:
  15325.  
  15326.  @tsexample
  15327.  // Print to the console the player is jumping
  15328.  function playerJump(%val)
  15329.  {
  15330.     if(%val)
  15331.       echo("Player jumping!");
  15332.  }
  15333.  
  15334.  // Print to the console the vehicle is charging
  15335.  function turboCharge()
  15336.  {
  15337.     if(%val)
  15338.       echo("Vehicle turbo charging!");
  15339.  }
  15340.  @endtsexample
  15341.  
  15342.  You are now ready to bind functions to your ActionMaps' devices:
  15343.  
  15344.  @tsexample
  15345.  // Bind the spacebar to the playerJump function
  15346.  // when moveMap is the active ActionMap
  15347.  moveMap.bind(keyboard, "space", playerJump);
  15348.  
  15349.  // Bind the spacebar to the turboCharge function
  15350.  // when carMap is the active ActionMap
  15351.  carMap.bind(keyboard, "space", turboCharge);
  15352.  @endtsexample
  15353.  Finally, you can use the push() and pop() commands on each ActionMap to toggle activation. To activate an ActionMap, use push():
  15354.  
  15355.  @tsexample
  15356.  // Make moveMap the active action map
  15357.  // You should now be able to activate playerJump with spacebar
  15358.  moveMap.push();
  15359.  @endtsexample
  15360.  
  15361.  To switch ActionMaps, first pop() the old one. Then you can push() the new one:
  15362.  
  15363.  @tsexample
  15364.  // Deactivate moveMap
  15365.  moveMap.pop();
  15366.  
  15367.  // Activate carMap
  15368.  carMap.push();
  15369.  
  15370.  @endtsexample
  15371.  
  15372.  
  15373.   */
  15374.  class  ActionMap : public SimObject {
  15375.    public:
  15376.     virtual Script blockBind(( string this, string otherMap, string command )) {}
  15377.     virtual Script copyBind(( string this, string otherMap, string command )) {}
  15378.     /*! actionMap.bind( device, action, [modifier spec, mod...], command )@hide */
  15379.     virtual bool bind() {}
  15380.     /*! @hide */
  15381.     virtual bool bindObj((device, action, [modifier spec, mod...], command, object)) {}
  15382.     /*! @brief Associates a make command and optional break command to a specified input device action.
  15383.  
  15384. Must include parenthesis and semicolon in the make and break command strings.
  15385.  
  15386. @param device The device to bind to. Can be a keyboard, mouse, joystick or gamepad.
  15387. @param action The device action to bind to. The action is dependant upon the device. Specify a key for keyboards.
  15388. @param makeCmd The command to execute when the device/action is made.
  15389. @param breakCmd [optional] The command to execute when the device or action is unmade.
  15390. @return True the bind was successful, false if the device was unknown or description failed.
  15391. @tsexample
  15392. // Print to the console when the spacebar is pressed
  15393. function onSpaceDown()
  15394. {
  15395.    echo("Space bar down!");
  15396. }
  15397.  
  15398. // Print to the console when the spacebar is released
  15399. function onSpaceUp()
  15400. {
  15401.    echo("Space bar up!");
  15402. }
  15403.  
  15404. // Bind the commands onSpaceDown() and onSpaceUp() to spacebar events
  15405.  
  15406. moveMap.bindCmd(keyboard, "space", "onSpaceDown();", "onSpaceUp();");
  15407. @endtsexample
  15408.  
  15409.  */
  15410.     virtual bool bindCmd(( string device, string action, string makeCmd, string breakCmd="" )) {}
  15411.     /*! @brief Removes the binding on an input device and action.
  15412. @param device The device to unbind from. Can be a keyboard, mouse, joystick or a gamepad.
  15413. @param action The device action to unbind from. The action is dependant upon the device. Specify a key for keyboards.
  15414. @return True if the unbind was successful, false if the device was unknown or description failed.
  15415.  
  15416. @tsexample
  15417. moveMap.unbind("keyboard", "space");
  15418. @endtsexample
  15419.  
  15420.  */
  15421.     virtual bool unbind(( string device, string action )) {}
  15422.     /*! @brief Remove any object-binding on an input device and action.
  15423. @param device The device to bind to.  Can be keyboard, mouse, joystick or gamepad.
  15424. @param action The device action to unbind from. The action is dependant upon the device. Specify a key for keyboards.
  15425. @param obj The object to perform unbind against.
  15426. @return True if the unbind was successful, false if the device was unknown or description failed.
  15427. @tsexample
  15428. moveMap.unbindObj("keyboard", "numpad1", "rangeChange", %player);@endtsexample
  15429.  
  15430.  
  15431.  */
  15432.     virtual bool unbindObj(( string device, string action, string obj )) {}
  15433.     /*! @brief Saves the ActionMap to a file or dumps it to the console.
  15434.  
  15435. @param fileName The file path to save the ActionMap to. If a filename is not specified  the ActionMap will be dumped to the console.
  15436. @param append Whether to write the ActionMap at the end of the file or overwrite it.
  15437. @tsexample
  15438. // Write out the actionmap into the config.cs file
  15439. moveMap.save( "scripts/client/config.cs" );@endtsexample
  15440.  
  15441.  */
  15442.     virtual void save(( string fileName=NULL, bool append=false )) {}
  15443.     /*! @brief Push the ActionMap onto the %ActionMap stack.
  15444.  
  15445. Activates an ActionMap and placees it at the top of the ActionMap stack.
  15446.  
  15447. @tsexample
  15448. // Make moveMap the active action map
  15449. moveMap.push();
  15450. @endtsexample
  15451.  
  15452. @see ActionMap */
  15453.     virtual void push(()) {}
  15454.     /*! @brief Pop the ActionMap off the %ActionMap stack.
  15455.  
  15456. Deactivates an %ActionMap and removes it from the @ActionMap stack.
  15457. @tsexample
  15458. // Deactivate moveMap
  15459. moveMap.pop();
  15460. @endtsexample
  15461.  
  15462. @see ActionMap */
  15463.     virtual void pop(()) {}
  15464.     /*! @brief Gets the ActionMap binding for the specified command.
  15465.  
  15466. Use getField() on the return value to get the device and action of the binding.
  15467. @param command The function to search bindings for.
  15468. @return The binding against the specified command. Returns an empty string("") if a binding wasn't found.
  15469. @tsexample
  15470. // Find what the function "jump()" is bound to in moveMap
  15471. %bind = moveMap.getBinding( "jump" );
  15472.  
  15473. if ( %bind !$= "" )
  15474. {
  15475. // Find out what device is used in the binding
  15476.     %device = getField( %bind, 0 );
  15477.  
  15478. // Find out what action (such as a key) is used in the binding
  15479.     %action = getField( %bind, 1 );
  15480. }
  15481. @endtsexample
  15482.  
  15483. @see getField */
  15484.     virtual string getBinding(( string command )) {}
  15485.     /*! @brief Gets ActionMap command for the device and action.
  15486.  
  15487. @param device The device that was bound. Can be a keyboard, mouse, joystick or a gamepad.
  15488. @param action The device action that was bound.  The action is dependant upon the device. Specify a key for keyboards.
  15489. @return The command against the specified device and action.
  15490. @tsexample
  15491. // Find what function is bound to a device's action
  15492. // In this example, "jump()" was assigned to the space key in another script
  15493. %command = moveMap.getCommand("keyboard", "space");
  15494.  
  15495. // Should print "jump" in the console
  15496. echo(%command)
  15497. @endtsexample
  15498.  
  15499.  */
  15500.     virtual string getCommand(( string device, string action )) {}
  15501.     /*! @brief Determines if the specified device and action is inverted.
  15502.  
  15503. Should only be used for scrolling devices or gamepad/joystick axes.@param device The device that was bound. Can be a keyboard, mouse, joystick or a gamepad.
  15504. @param action The device action that was bound.  The action is dependant upon the device. Specify a key for keyboards.
  15505. @return True if the specified device and action is inverted.
  15506. @tsexample
  15507. %if ( moveMap.isInverted( "mouse", "xaxis"))
  15508.    echo("Mouse's xAxis is inverted");@endtsexample
  15509.  
  15510.  */
  15511.     virtual bool isInverted(( string device, string action )) {}
  15512.     /*! @brief Get any scaling on the specified device and action.
  15513.  
  15514. @param device The device that was bound. Can be keyboard, mouse, joystick or gamepad.
  15515. @param action The device action that was bound. The action is dependant upon the device. Specify a key for keyboards.
  15516. @return Any scaling applied to the specified device and action.
  15517. @tsexample
  15518. %scale = %moveMap.getScale( "gamepad", "thumbrx");
  15519. @endtsexample
  15520.  
  15521.  */
  15522.     virtual float getScale(( string device, string action )) {}
  15523.     /*! @brief Gets the Dead zone for the specified device and action.
  15524.  
  15525. @param device The device that was bound.  Can be a keyboard, mouse, joystick or a gamepad.
  15526. @param action The device action that was bound. The action is dependant upon the device. Specify a key for keyboards.
  15527. @return The dead zone for the specified device and action. Returns "0 0" if there is no dead zone or an empty string("") if the mapping was not found.
  15528. @tsexample
  15529. %deadZone = moveMap.getDeadZone( "gamepad", "thumbrx");
  15530. @endtsexample
  15531.  
  15532.  */
  15533.     virtual string getDeadZone(( string device, string action )) {}
  15534.  
  15535.     /*! @name Ungrouped
  15536.     @{ */
  15537.     /*! */
  15538.     /// @}
  15539.  
  15540.  
  15541.     /*! @name Object
  15542.     @{ */
  15543.     /*! */
  15544.     /// @}
  15545.  
  15546.  
  15547.     /*! @name Editing
  15548.     @{ */
  15549.     /*! */
  15550.     /// @}
  15551.  
  15552.  
  15553.     /*! @name Persistence
  15554.     @{ */
  15555.     /*! */
  15556.     /// @}
  15557.  
  15558.  };
  15559.  
  15560.  /// Stub class
  15561.  ///
  15562.  /// @note This is a stub class to ensure a proper class hierarchy. No
  15563.  ///       information was available for this class.
  15564.  class  moveMap : public ActionMap {
  15565.    public:
  15566.  };
  15567.  
  15568.  class  clContentServer : public clContentServer {
  15569.    public:
  15570.     virtual Script sendCharSelected(()) {}
  15571.  };
  15572.  
  15573.  class  PeerConnection {
  15574.    public:
  15575.     virtual Script onCharSelected(( string this, string serverIP, string serverPort, string geoID, string serverID )) {}
  15576.  };
  15577.  
  15578.  class  DispatcherConnection {
  15579.    public:
  15580.     virtual Script onConnectionTimedOut(( string this, string errorCode, string errorMessage )) {}
  15581.     virtual Script onDisconnected(( string this, string errorCode, string errorMessage )) {}
  15582.     virtual Script onConnectionDropped(( string this, string msg )) {}
  15583.     virtual Script onError(( string this, string errorCode, string errorMessage )) {}
  15584.     virtual Script onConnectRequestTimedOut(( string this, string errorCode, string errorMessage )) {}
  15585.     virtual Script onConnectionEstablished(( string this )) {}
  15586.  };
  15587.  
  15588.  class  tcpSrv {
  15589.    public:
  15590.     virtual Script onConnectionEstablished(( string this )) {}
  15591.  };
  15592.  
  15593.  class  scConnection {
  15594.    public:
  15595.     virtual Script onConnectRequestTimedOut(( string this )) {}
  15596.     virtual Script onConnectionDropped(( string this, string msg )) {}
  15597.     virtual Script onConnectionTimedOut(( string this )) {}
  15598.  };
  15599.  
  15600.  /*!
  15601.  @brief Brief Desc.
  15602.  
  15603.  @tsexample
  15604.  // Comment:
  15605.  %okButton = new ClassObject()
  15606.  instantiation
  15607.  @endtsexample
  15608.  
  15609.   */
  15610.  class  GuiContainer : public GuiControl {
  15611.    public:
  15612.  
  15613.     /*! @name Layout
  15614.     @{ */
  15615.     /*! */
  15616.     /*!
  15617.    
  15618.    
  15619.      */
  15620.     GuiDockingType docking;
  15621.     /*!
  15622.      */
  15623.     RectSpacingI margin;
  15624.     /*!
  15625.      */
  15626.     RectSpacingI padding;
  15627.     /*!
  15628.      */
  15629.     bool anchorTop;
  15630.     /*!
  15631.      */
  15632.     bool anchorBottom;
  15633.     /*!
  15634.      */
  15635.     bool anchorLeft;
  15636.     /*!
  15637.      */
  15638.     bool anchorRight;
  15639.     /// @}
  15640.  
  15641.  
  15642.     /*! @name Layout
  15643.     @{ */
  15644.     /*! */
  15645.     /// @}
  15646.  
  15647.  
  15648.     /*! @name Control
  15649.     @{ */
  15650.     /*! */
  15651.     /// @}
  15652.  
  15653.  
  15654.     /*! @name ToolTip
  15655.     @{ */
  15656.     /*! */
  15657.     /// @}
  15658.  
  15659.  
  15660.     /*! @name Editing
  15661.     @{ */
  15662.     /*! */
  15663.     /// @}
  15664.  
  15665.  
  15666.     /*! @name Localization
  15667.     @{ */
  15668.     /*! */
  15669.     /// @}
  15670.  
  15671.  
  15672.     /*! @name Ungrouped
  15673.     @{ */
  15674.     /*! */
  15675.     /// @}
  15676.  
  15677.  
  15678.     /*! @name Object
  15679.     @{ */
  15680.     /*! */
  15681.     /// @}
  15682.  
  15683.  
  15684.     /*! @name Editing
  15685.     @{ */
  15686.     /*! */
  15687.     /// @}
  15688.  
  15689.  
  15690.     /*! @name Persistence
  15691.     @{ */
  15692.     /*! */
  15693.     /// @}
  15694.  
  15695.  };
  15696.  
  15697.  /*!
  15698.  @brief A window with a title bar and an optional set of buttons.
  15699.  
  15700.  The GuiWindowCtrl class implements windows that can be freely placed within the render window.  Additionally, the windows can be resized and maximized/minimized.
  15701.  
  15702.  @tsexample
  15703.  new GuiWindowCtrl( MyWindow )
  15704.  {
  15705.     text = "My Window"; // The text that is displayed on the title bar.
  15706.     resizeWidth = true; // Allow horizontal resizing by user via mouse.
  15707.     resizeHeight = true; // Allow vertical resizing by user via mouse.
  15708.     canClose = true; // Display a close button in the title bar.
  15709.     canMinimize = true; // Display a minimize button in the title bar.
  15710.     canMaximize = true; // Display a maximize button in the title bar.
  15711.  };
  15712.  @endtsexample
  15713.  
  15714.   */
  15715.  class  GuiWindowCtrl : public GuiContainer {
  15716.    public:
  15717.     virtual Script onSettings(( string obj )) {}
  15718.        /*! Called when the close button has been pressed. */
  15719.        void onClose();
  15720.  
  15721.        /*! Called when the window has been minimized. */
  15722.        void onMinimize();
  15723.  
  15724.        /*! Called when the window has been maximized. */
  15725.        void onMaximize();
  15726.  
  15727.        /*! Called when the window is collapsed by clicking its title bar. */
  15728.        void onCollapse();
  15729.  
  15730.        /*! Called when the window is restored from minimized, maximized, or collapsed state. */
  15731.        void onRestore();
  15732.  
  15733.        /*! Called when the Settings button clicked. */
  15734.        void onSettings();
  15735.  
  15736.     /*! Bring the window to the front. */
  15737.     virtual void selectWindow(()) {}
  15738.     /*! Set the window's collapsing state. */
  15739.     virtual void setCollapseGroup(( bool state )) {}
  15740.     /*! Toggle the window collapsing. */
  15741.     virtual void toggleCollapseGroup(()) {}
  15742.     virtual void attachTo(( GuiWindowCtrl window )) {}
  15743.     /*! Attach @a bottomWindow to @topWindow so that @a bottomWindow moves along with @a topWindow when it is dragged.
  15744.  
  15745. @param bottomWindow
  15746. @param topWindow  */
  15747.     virtual void attach(( GuiWindowCtrl bottomWindow, GuiWindowCtrl topWindow )) {}
  15748.  
  15749.     /*! @name Window
  15750.     @{ */
  15751.     /*! */
  15752.     /*!
  15753.     Text label to display in titlebar.
  15754.    
  15755.      */
  15756.     string text;
  15757.     /*!
  15758.     Whether the window can be resized horizontally.
  15759.    
  15760.      */
  15761.     bool resizeWidth;
  15762.     /*!
  15763.     Whether the window can be resized vertically.
  15764.    
  15765.      */
  15766.     bool resizeHeight;
  15767.     /*!
  15768.     Whether the window can be moved by dragging its titlebar.
  15769.    
  15770.      */
  15771.     bool canMove;
  15772.     /*!
  15773.     Whether the window has a close button.
  15774.    
  15775.      */
  15776.     bool canClose;
  15777.     /*!
  15778.     Whether the window has a minimize button.
  15779.    
  15780.      */
  15781.     bool canMinimize;
  15782.     /*!
  15783.     Whether the window has a maximize button.
  15784.    
  15785.      */
  15786.     bool canMaximize;
  15787.     /*!
  15788.     Whether the window has a lock button.
  15789.    
  15790.      */
  15791.     bool canLock;
  15792.     /*!
  15793.     Whether the window has a settings button.
  15794.    
  15795.      */
  15796.     bool canSetup;
  15797.     /*!
  15798.     This window have a header only in guiEdit mode.
  15799.    
  15800.      */
  15801.     bool forGuiEdit;
  15802.     /*!
  15803.     Whether the window can be collapsed by clicking its title bar.
  15804.    
  15805.      */
  15806.     bool canCollapse;
  15807.     /*!
  15808.     Script code to execute when the window is closed.
  15809.    
  15810.      */
  15811.     string closeCommand;
  15812.     /*!
  15813.     If true, the window will snap to the edges of other windows when moved close to them.
  15814.    
  15815.      */
  15816.     bool edgeSnap;
  15817.     /*!
  15818.     Locked window.
  15819.    
  15820.      */
  15821.     bool locked;
  15822.     /// @}
  15823.  
  15824.  
  15825.     /*! @name Layout
  15826.     @{ */
  15827.     /*! */
  15828.     /// @}
  15829.  
  15830.  
  15831.     /*! @name Layout
  15832.     @{ */
  15833.     /*! */
  15834.     /// @}
  15835.  
  15836.  
  15837.     /*! @name Control
  15838.     @{ */
  15839.     /*! */
  15840.     /// @}
  15841.  
  15842.  
  15843.     /*! @name ToolTip
  15844.     @{ */
  15845.     /*! */
  15846.     /// @}
  15847.  
  15848.  
  15849.     /*! @name Editing
  15850.     @{ */
  15851.     /*! */
  15852.     /// @}
  15853.  
  15854.  
  15855.     /*! @name Localization
  15856.     @{ */
  15857.     /*! */
  15858.     /// @}
  15859.  
  15860.  
  15861.     /*! @name Ungrouped
  15862.     @{ */
  15863.     /*! */
  15864.     /// @}
  15865.  
  15866.  
  15867.     /*! @name Object
  15868.     @{ */
  15869.     /*! */
  15870.     /// @}
  15871.  
  15872.  
  15873.     /*! @name Editing
  15874.     @{ */
  15875.     /*! */
  15876.     /// @}
  15877.  
  15878.  
  15879.     /*! @name Persistence
  15880.     @{ */
  15881.     /*! */
  15882.     /// @}
  15883.  
  15884.  };
  15885.  
  15886.  class  GuiMapWindow : public GuiWindowCtrl {
  15887.    public:
  15888.     virtual Script onSleep(( string this )) {}
  15889.     virtual Script onWake(( string this )) {}
  15890.  };
  15891.  
  15892.  /// Stub class
  15893.  ///
  15894.  /// @note This is a stub class to ensure a proper class hierarchy. No
  15895.  ///       information was available for this class.
  15896.  class  GuiMapDlg : public GuiControl {
  15897.    public:
  15898.  };
  15899.  
  15900.  /// Stub class
  15901.  ///
  15902.  /// @note This is a stub class to ensure a proper class hierarchy. No
  15903.  ///       information was available for this class.
  15904.  class  AcceptDlgButton : public GuiButtonCtrl {
  15905.    public:
  15906.  };
  15907.  
  15908.  /*!
  15909.  @brief A named checkbox that can be toggled on and off.
  15910.  
  15911.  A GuiCheckBoxCtrl displays a text label next to a checkbox that can be toggled on and off by the user. Checkboxes are usually used to present boolean choices like, for example, a switch to toggle fullscreen video on and off.
  15912.  
  15913.  @tsexample
  15914.  // Create a checkbox that allows to toggle fullscreen on and off.
  15915.  new GuiCheckBoxCtrl( FullscreenToggle )
  15916.  {
  15917.     text = "Fullscreen";
  15918.  };
  15919.  
  15920.  // Set the initial state to match the current fullscreen setting.
  15921.  FullscreenToggle.setStateOn( Canvas.isFullscreen() );
  15922.  
  15923.  // Define function to be called when checkbox state is toggled.
  15924.  function FullscreenToggle::onClick( %this )
  15925.  {
  15926.     Canvas.toggleFullscreen();
  15927.  }
  15928.  @endtsexample
  15929.  
  15930.   */
  15931.  class  GuiCheckBoxCtrl : public GuiButtonBaseCtrl {
  15932.    public:
  15933.     /*! Set whether the checkbox is ticked or not.
  15934. @param newState If true the box will be checked, if false, it will be unchecked.
  15935.  
  15936. @note This method will @b not trigger the command associated with the control.  To toggle the checkbox state as if the user had clicked the control, use performClick(). */
  15937.     virtual void setStateOn(( bool newState )) {}
  15938.     /*! Test whether the checkbox is currently checked.
  15939. @return True if the checkbox is currently ticked, false otherwise.
  15940.  */
  15941.     virtual bool isStateOn(()) {}
  15942.  
  15943.     /*! @name CheckBox
  15944.     @{ */
  15945.     /*! */
  15946.     /*!
  15947.    
  15948.    
  15949.      */
  15950.     int Indent;
  15951.     /*!
  15952.    
  15953.    
  15954.      */
  15955.     int IndentText;
  15956.     /// @}
  15957.  
  15958.  
  15959.     /*! @name Button
  15960.     @{ */
  15961.     /*! */
  15962.     /// @}
  15963.  
  15964.  
  15965.     /*! @name Layout
  15966.     @{ */
  15967.     /*! */
  15968.     /// @}
  15969.  
  15970.  
  15971.     /*! @name Control
  15972.     @{ */
  15973.     /*! */
  15974.     /// @}
  15975.  
  15976.  
  15977.     /*! @name ToolTip
  15978.     @{ */
  15979.     /*! */
  15980.     /// @}
  15981.  
  15982.  
  15983.     /*! @name Editing
  15984.     @{ */
  15985.     /*! */
  15986.     /// @}
  15987.  
  15988.  
  15989.     /*! @name Localization
  15990.     @{ */
  15991.     /*! */
  15992.     /// @}
  15993.  
  15994.  
  15995.     /*! @name Ungrouped
  15996.     @{ */
  15997.     /*! */
  15998.     /// @}
  15999.  
  16000.  
  16001.     /*! @name Object
  16002.     @{ */
  16003.     /*! */
  16004.     /// @}
  16005.  
  16006.  
  16007.     /*! @name Editing
  16008.     @{ */
  16009.     /*! */
  16010.     /// @}
  16011.  
  16012.  
  16013.     /*! @name Persistence
  16014.     @{ */
  16015.     /*! */
  16016.     /// @}
  16017.  
  16018.  };
  16019.  
  16020.  /// Stub class
  16021.  ///
  16022.  /// @note This is a stub class to ensure a proper class hierarchy. No
  16023.  ///       information was available for this class.
  16024.  class  AcceptDlgCheckbox : public GuiCheckBoxCtrl {
  16025.    public:
  16026.  };
  16027.  
  16028.  /*!
  16029.  @brief A text control that uses the Gui Markup Language ('ML') tags to dynamically change the text.
  16030.  
  16031.  Example of dynamic changes include colors, styles, and/or hyperlinks. These changes can occur without having to use separate text controls with separate text profiles.
  16032.  
  16033.  @tsexample
  16034.  new GuiMLTextCtrl(CenterPrintText)
  16035.  {
  16036.      lineSpacing = "2";
  16037.      allowColorChars = "0";
  16038.      maxChars = "-1";
  16039.      deniedSound = "DeniedSoundProfile";
  16040.      text = "The Text for This Control.";
  16041.      useURLMouseCursor = "true";
  16042.      //Properties not specific to this control have been omitted from this example.
  16043.  };
  16044.  @endtsexample
  16045.  
  16046.  @see GuiControl
  16047.  
  16048.  @ingroup GuiCore
  16049.   */
  16050.  class  GuiMLTextCtrl : public GuiControl {
  16051.    public:
  16052.        /*! @brief Called whenever a URL was clicked on within the control.
  16053.  
  16054. @param url The URL address that was clicked on.
  16055. @tsexample
  16056. // A URL address was clicked on in the control, causing the callback to occur.
  16057. GuiMLTextCtrl::onUrl(%this,%url)
  16058.     {
  16059.         // Code to run whenever a URL was clicked on
  16060.     }
  16061. @endtsexample
  16062.  
  16063. @see GuiControl
  16064.  
  16065.  */
  16066.        void onURL( string url );
  16067.  
  16068.        /*! @brief Called whenever the control size changes.
  16069.  
  16070. @param width The new width value for the control
  16071. @param maxY The current maximum allowed Y value for the control
  16072.  
  16073. @tsexample
  16074. // Control size changed, causing the callback to occur.
  16075. GuiMLTextCtrl::onResize(%this,%width,%maxY)
  16076.     {
  16077.         // Code to call when the control size changes
  16078.     }
  16079. @endtsexample
  16080.  
  16081. @see GuiControl
  16082.  
  16083.  */
  16084.        void onResize( string width, string maxY );
  16085.  
  16086.     /*! @brief Set the text contained in the control.
  16087.  
  16088. @param text The text to display in the control.
  16089. @tsexample
  16090. // Define the text to display
  16091. %text = "Nifty Control Text";
  16092.  
  16093. // Set the text displayed within the control
  16094. %thisGuiMLTextCtrl.setText(%text);
  16095. @endtsexample
  16096.  
  16097. @see GuiControl */
  16098.     virtual void setText(( string text )) {}
  16099.     /*! @brief Returns the text from the control, including TorqueML characters.
  16100.  
  16101. @tsexample
  16102. // Get the text displayed in the control
  16103. %controlText = %thisGuiMLTextCtrl.getText();
  16104. @endtsexample
  16105.  
  16106. @return Text string displayed in the control, including any TorqueML characters.
  16107.  
  16108. @see GuiControl */
  16109.     virtual string getText(()) {}
  16110.     /*! @brief Appends the text in the control with additional text. Also .
  16111.  
  16112. @param text New text to append to the existing text.
  16113. @param reformat If true, the control will also be visually reset.
  16114. @tsexample
  16115. // Define new text to add
  16116. %text = "New Text to Add";
  16117.  
  16118. // Set reformat boolean
  16119. %reformat = "true";
  16120.  
  16121. // Inform the control to add the new text
  16122. %thisGuiMLTextCtrl.addText(%text,%reformat);
  16123. @endtsexample
  16124.  
  16125. @see GuiControl */
  16126.     virtual void addText(( string text, bool reformat )) {}
  16127.     /*! @brief Change the text cursor's position to a new defined offset within the text in the control.
  16128.  
  16129. @param newPos Offset to place cursor.
  16130. @tsexample
  16131. // Define cursor offset position
  16132. %position = "23";
  16133.  
  16134. // Inform the GuiMLTextCtrl object to move the cursor to the new position.
  16135. %thisGuiMLTextCtrl.setCursorPosition(%position);
  16136. @endtsexample
  16137.  
  16138. @return Returns true if the cursor position moved, or false if the position was not changed.
  16139.  
  16140. @see GuiControl */
  16141.     virtual bool setCursorPosition(( int newPos )) {}
  16142.     /*! @brief Scroll down to a specified tag.
  16143.  
  16144. Detailed description
  16145.  
  16146. @param tagID TagID to scroll the control to
  16147. @tsexample
  16148. // Define the TagID we want to scroll the control to
  16149. %tagId = "4";
  16150.  
  16151. // Inform the GuiMLTextCtrl to scroll to the defined TagID
  16152. %thisGuiMLTextCtrl.scrollToTag(%tagId);
  16153. @endtsexample
  16154.  
  16155. @see GuiControl */
  16156.     virtual void scrollToTag(( int tagID )) {}
  16157.     /*! @brief Scroll to the top of the text.
  16158.  
  16159. @tsexample
  16160. // Inform GuiMLTextCtrl object to scroll to its top
  16161. %thisGuiMLTextCtrl.scrollToTop();
  16162. @endtsexample
  16163.  
  16164. @see GuiControl */
  16165.     virtual void scrollToTop(( int param1, int param2 )) {}
  16166.     /*! @brief Scroll to the bottom of the text.
  16167.  
  16168. @tsexample
  16169. // Inform GuiMLTextCtrl object to scroll to its bottom
  16170. %thisGuiMLTextCtrl.scrollToBottom();
  16171. @endtsexample
  16172.  
  16173. @see GuiControl */
  16174.     virtual void scrollToBottom(()) {}
  16175.     /*! @brief Forces the text control to reflow the text after new text is added, possibly resizing the control.
  16176.  
  16177. @tsexample
  16178. // Define new text to add
  16179. %newText = "BACON!";
  16180.  
  16181. // Add the new text to the control
  16182. %thisGuiMLTextCtrl.addText(%newText);
  16183.  
  16184. // Inform the GuiMLTextCtrl object to force a reflow to ensure the added text fits properly.
  16185. %thisGuiMLTextCtrl.forceReflow();
  16186. @endtsexample
  16187.  
  16188. @see GuiControl */
  16189.     virtual void forceReflow(()) {}
  16190.     /*! @brief Sets the alpha value of the control.
  16191.  
  16192. @param alphaVal n - 1.0 floating value for the alpha
  16193. @tsexample
  16194. // Define the alphe value
  16195. %alphaVal = "0.5";
  16196.  
  16197. // Inform the control to update its alpha value.
  16198. %thisGuiMLTextCtrl.setAlpha(%alphaVal);
  16199. @endtsexample
  16200.  
  16201. @see GuiControl */
  16202.     virtual void setAlpha(( float alphaVal )) {}
  16203.  
  16204.     /*! @name Text
  16205.     @{ */
  16206.     /*! */
  16207.     /*!
  16208.     The number of blank pixels to place between each line.
  16209.  
  16210.    
  16211.      */
  16212.     int lineSpacing;
  16213.     /*!
  16214.     If true, the control will allow characters to have unique colors.
  16215.    
  16216.      */
  16217.     bool allowColorChars;
  16218.     /*!
  16219.     Maximum number of characters that the control will display.
  16220.    
  16221.      */
  16222.     int maxChars;
  16223.     /*!
  16224.     If the text will not fit in the control, the deniedSound is played.
  16225.    
  16226.      */
  16227.     SFXTrack deniedSound;
  16228.     /*!
  16229.     Text to display in this control.
  16230.    
  16231.      */
  16232.     caseString text;
  16233.     /*!
  16234.     If true, the mouse cursor will turn into a hand cursor while over a link in the text.
  16235. This is dependant on the markup language used by the GuiMLTextCtrl
  16236.  
  16237.    
  16238.      */
  16239.     bool useURLMouseCursor;
  16240.     /// @}
  16241.  
  16242.  
  16243.     /*! @name Layout
  16244.     @{ */
  16245.     /*! */
  16246.     /// @}
  16247.  
  16248.  
  16249.     /*! @name Control
  16250.     @{ */
  16251.     /*! */
  16252.     /// @}
  16253.  
  16254.  
  16255.     /*! @name ToolTip
  16256.     @{ */
  16257.     /*! */
  16258.     /// @}
  16259.  
  16260.  
  16261.     /*! @name Editing
  16262.     @{ */
  16263.     /*! */
  16264.     /// @}
  16265.  
  16266.  
  16267.     /*! @name Localization
  16268.     @{ */
  16269.     /*! */
  16270.     /// @}
  16271.  
  16272.  
  16273.     /*! @name Ungrouped
  16274.     @{ */
  16275.     /*! */
  16276.     /// @}
  16277.  
  16278.  
  16279.     /*! @name Object
  16280.     @{ */
  16281.     /*! */
  16282.     /// @}
  16283.  
  16284.  
  16285.     /*! @name Editing
  16286.     @{ */
  16287.     /*! */
  16288.     /// @}
  16289.  
  16290.  
  16291.     /*! @name Persistence
  16292.     @{ */
  16293.     /*! */
  16294.     /// @}
  16295.  
  16296.  };
  16297.  
  16298.  /// Stub class
  16299.  ///
  16300.  /// @note This is a stub class to ensure a proper class hierarchy. No
  16301.  ///       information was available for this class.
  16302.  class  AcceptDlgText : public GuiMLTextCtrl {
  16303.    public:
  16304.  };
  16305.  
  16306.  /*!
  16307.  @brief A container that allows to view one or more possibly larger controls inside its area by providing horizontal and/or vertical scroll bars.
  16308.  
  16309.   */
  16310.  class  GuiScrollCtrl : public GuiContainer {
  16311.    public:
  16312.        /*! Called each time the child controls are scrolled by some amount. */
  16313.        void onScroll();
  16314.  
  16315.     /*! Scroll all the way to the top of the vertical and left of the horizontal scrollbar. */
  16316.     virtual void scrollToTop(()) {}
  16317.     /*! Scroll all the way to the bottom of the vertical scrollbar and the left of the horizontal bar. */
  16318.     virtual void scrollToBottom(()) {}
  16319.     /*! Set the position of the scrolled content.
  16320.  
  16321. @param x Position on X axis.
  16322. @param y Position on y axis.
  16323.  */
  16324.     virtual void setScrollPosition(( int x, int y )) {}
  16325.     /*! Scroll the control so that the given child @a control is visible.
  16326.  
  16327. @param control A child control. */
  16328.     virtual void scrollToObject(( GuiControl control )) {}
  16329.     /*! Get the current coordinates of the scrolled content.
  16330.  
  16331. @return The current position of the scrolled content. */
  16332.     virtual string getScrollPosition(()) {}
  16333.     /*! Get the current X coordinate of the scrolled content.
  16334.  
  16335. @return The current X coordinate of the scrolled content. */
  16336.     virtual int getScrollPositionX(()) {}
  16337.     /*! Get the current Y coordinate of the scrolled content.@return The current Y coordinate of the scrolled content. */
  16338.     virtual int getScrollPositionY(()) {}
  16339.     /*! Refresh sizing and positioning of child controls. */
  16340.     virtual void computeSizes(()) {}
  16341.  
  16342.     /*! @name Scolling
  16343.     @{ */
  16344.     /*! */
  16345.     /*!
  16346.      */
  16347.     bool willFirstRespond;
  16348.     /*!
  16349.     When to display the horizontal scrollbar.
  16350.    
  16351.      */
  16352.     GuiScrollBarBehavior hScrollBar;
  16353.     /*!
  16354.     When to display the vertical scrollbar.
  16355.    
  16356.      */
  16357.     GuiScrollBarBehavior vScrollBar;
  16358.     /*!
  16359.     Horizontal scrolling not allowed if set.
  16360.    
  16361.      */
  16362.     bool lockHorizScroll;
  16363.     /*!
  16364.     Vertical scrolling not allowed if set.
  16365.    
  16366.      */
  16367.     bool lockVertScroll;
  16368.     /*!
  16369.      */
  16370.     bool constantThumbHeight;
  16371.     /*!
  16372.     Padding region to put around child contents.
  16373.    
  16374.      */
  16375.     Point2I childMargin;
  16376.     /*!
  16377.     Pixels/Tick - if not positive then mousewheel scrolling occurs instantly (like other scrolling).
  16378.    
  16379.      */
  16380.     int mouseWheelScrollSpeed;
  16381.     /// @}
  16382.  
  16383.  
  16384.     /*! @name Layout
  16385.     @{ */
  16386.     /*! */
  16387.     /// @}
  16388.  
  16389.  
  16390.     /*! @name Layout
  16391.     @{ */
  16392.     /*! */
  16393.     /// @}
  16394.  
  16395.  
  16396.     /*! @name Control
  16397.     @{ */
  16398.     /*! */
  16399.     /// @}
  16400.  
  16401.  
  16402.     /*! @name ToolTip
  16403.     @{ */
  16404.     /*! */
  16405.     /// @}
  16406.  
  16407.  
  16408.     /*! @name Editing
  16409.     @{ */
  16410.     /*! */
  16411.     /// @}
  16412.  
  16413.  
  16414.     /*! @name Localization
  16415.     @{ */
  16416.     /*! */
  16417.     /// @}
  16418.  
  16419.  
  16420.     /*! @name Ungrouped
  16421.     @{ */
  16422.     /*! */
  16423.     /// @}
  16424.  
  16425.  
  16426.     /*! @name Object
  16427.     @{ */
  16428.     /*! */
  16429.     /// @}
  16430.  
  16431.  
  16432.     /*! @name Editing
  16433.     @{ */
  16434.     /*! */
  16435.     /// @}
  16436.  
  16437.  
  16438.     /*! @name Persistence
  16439.     @{ */
  16440.     /*! */
  16441.     /// @}
  16442.  
  16443.  };
  16444.  
  16445.  /// Stub class
  16446.  ///
  16447.  /// @note This is a stub class to ensure a proper class hierarchy. No
  16448.  ///       information was available for this class.
  16449.  class  AcceptDlgScrl : public GuiScrollCtrl {
  16450.    public:
  16451.  };
  16452.  
  16453.  /// Stub class
  16454.  ///
  16455.  /// @note This is a stub class to ensure a proper class hierarchy. No
  16456.  ///       information was available for this class.
  16457.  class  AcceptDlgWnd : public GuiWindowCtrl {
  16458.    public:
  16459.  };
  16460.  
  16461.  /// Stub class
  16462.  ///
  16463.  /// @note This is a stub class to ensure a proper class hierarchy. No
  16464.  ///       information was available for this class.
  16465.  class  AcceptDlg : public GuiControl {
  16466.    public:
  16467.  };
Add Comment
Please, Sign In to add comment