]> git.mxchange.org Git - simgear.git/commitdiff
Lots of (mostly) doxygen fixes/cleanup.
authorThomas Geymayer <tomgey@gmail.com>
Thu, 31 Jul 2014 22:13:25 +0000 (00:13 +0200)
committerThomas Geymayer <tomgey@gmail.com>
Thu, 31 Jul 2014 22:13:25 +0000 (00:13 +0200)
48 files changed:
Doxyfile
simgear/bucket/newbucket.hxx
simgear/canvas/Canvas.hxx
simgear/canvas/elements/CanvasElement.hxx
simgear/canvas/events/CustomEvent.hxx
simgear/canvas/events/KeyboardEvent.hxx
simgear/canvas/events/MouseEvent.hxx
simgear/canvas/layout/BoxLayout.hxx
simgear/canvas/layout/Layout.hxx
simgear/io/sg_file.cxx
simgear/io/sg_file.hxx
simgear/math/interpolater.cxx
simgear/misc/sgstream.cxx
simgear/nasal/cppbind/NasalHash.hxx
simgear/nasal/cppbind/NasalString.hxx
simgear/nasal/data.h
simgear/props/PropertyBasedElement.hxx
simgear/props/props.cxx
simgear/props/props.hxx
simgear/props/propsfwd.hxx
simgear/scene/material/EffectBuilder.hxx
simgear/scene/material/mat.cxx
simgear/scene/model/ConditionNode.cxx
simgear/scene/model/model.cxx
simgear/scene/sky/cloud.cxx
simgear/scene/sky/cloud.hxx
simgear/scene/sky/sky.cxx
simgear/scene/sky/sky.hxx
simgear/scene/tgdb/SGOceanTile.cxx
simgear/scene/util/NodeAndDrawableVisitor.cxx
simgear/scene/util/OsgDebug.hxx
simgear/scene/util/SplicingVisitor.cxx
simgear/sound/sample_group.cxx
simgear/sound/sample_group.hxx
simgear/sound/sample_openal.hxx
simgear/sound/sample_queue.hxx
simgear/sound/soundmgr_openal.cxx
simgear/sound/soundmgr_openal.hxx
simgear/sound/xmlsound.cxx
simgear/sound/xmlsound.hxx
simgear/structure/SGBinding.hxx
simgear/structure/SGSharedPtr.hxx
simgear/structure/commands.hxx
simgear/structure/exception.cxx
simgear/threads/SGGuard.hxx
simgear/threads/SGQueue.hxx
simgear/threads/SGThread.hxx
simgear/timing/sg_time.hxx

index f4aa9c6cc1184eef9331003d16fe4b85c95d1cf6..ef222c3e2ee230718b0de4aaa0a03d1646e03ba5 100644 (file)
--- a/Doxyfile
+++ b/Doxyfile
@@ -744,30 +744,7 @@ WARN_LOGFILE           =
 # Note: If this tag is empty the current directory is searched.
 
 INPUT                  = DoxygenMain.cxx \
-                         simgear/bucket \
-                         simgear/canvas \
-                         simgear/compiler.h \
-                         simgear/constants.h \
-                         simgear/debug \
-                         simgear/environment \
-                         simgear/ephemeris \
-                         simgear/io \
-                         simgear/magvar \
-                         simgear/math \
-                         simgear/misc \
-                         simgear/nasal \
-                         simgear/props \
-                         simgear/route \
-                         simgear/scene \
-                         simgear/screen \
-                         simgear/serial \
-                         simgear/structure \
-                         simgear/sg_inlines.h \
-                         simgear/sg_traits.hxx \
-                         simgear/sound \
-                         simgear/threads \
-                         simgear/timing \
-                         simgear/xml
+                         simgear
 
 # This tag can be used to specify the character encoding of the source files
 # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
index b21f1ff0145f3e1ec74fd6baf31b08a3e48a77db..fe0bbbc4abd305b113723e269a76df7e6796e81f 100644 (file)
@@ -127,21 +127,22 @@ public:
     
     /**
      * Construct a bucket given a specific location.
-     * @param dlon longitude specified in degrees
-     * @param dlat latitude specified in degrees
+     *
+     * @param geod Geodetic location
      */
     SGBucket(const SGGeod& geod);
 
     /** Construct a bucket given a unique bucket index number.
+     *
      * @param bindex unique bucket index
      */
     SGBucket(const long int bindex);
 
 #ifndef NO_DEPRECATED_API
     /**
-     * Reset a bucket to represent a new lat and lon
-     * @param dlon longitude specified in degrees
-     * @param dlat latitude specified in degrees
+     * Reset a bucket to represent a new location.
+     *
+     * @param geod New geodetic location
      */
     void set_bucket(const SGGeod& geod);
 
index 42c28632fcf9ed973855fc00015f38372540c646..7473139bf76cf40498e266a7e97d37b21c5b2d34 100644 (file)
@@ -228,12 +228,12 @@ namespace canvas
       ElementWeakPtr _focus_element;
 
       CullCallbackPtr _cull_callback;
-      bool _render_always; //<! Used to disable automatic lazy rendering (culling)
+      bool _render_always; //!< Used to disable automatic lazy rendering (culling)
 
       std::vector<SGPropertyNode*> _dirty_placements;
       std::vector<Placements> _placements;
-      std::set<CanvasWeakPtr> _parent_canvases, //<! Canvases showing this canvas
-                              _child_canvases;  //<! Canvases displayed within
+      std::set<CanvasWeakPtr> _parent_canvases, //!< Canvases showing this canvas
+                              _child_canvases;  //!< Canvases displayed within
                                                 //   this canvas
 
       typedef std::map<std::string, PlacementFactory> PlacementFactoryMap;
index a0d2bb18e287445fee22d7722f1b8fbd859d0fbf..8f178b580291444514a524fb96a426ed5915be29 100644 (file)
@@ -279,9 +279,10 @@ namespace canvas
       /**
        * Register a function for setting a style specified by the given property
        *
-       * @param name    Property name
-       * @param type    Interpolation type
-       * @param setter  Setter function
+       * @param name        Property name
+       * @param type        Interpolation type
+       * @param setter      Setter function
+       * @param inheritable If this style propagates to child elements
        *
        * @tparam T1         Type of value used to retrieve value from property
        *                    node
index 524f4e67a549207b2bb94250ecbbc244b75d7ae0..50f5ff5a58ae5f46ab4454ea855b97620af836fb 100644 (file)
@@ -41,6 +41,7 @@ namespace canvas
        *
        * @param type_str    Event type name (if name does not exist yet it will
        *                    be registered as new event type)
+       * @param bubbles     If this event should take part in the bubbling phase
        * @param data        Optional user data stored in event
        */
       CustomEvent( std::string const& type_str,
@@ -50,6 +51,7 @@ namespace canvas
       /**
        *
        * @param type_id     Event type id
+       * @param bubbles     If this event should take part in the bubbling phase
        * @param data        Optional user data stored in event
        */
       CustomEvent( int type_id,
@@ -66,10 +68,16 @@ namespace canvas
        */
       StringMap const& getDetail() const { return detail; }
 
+      /**
+       * Get whether this event supports bubbling.
+       *
+       * @see #bubbles
+       * @see CustomEvent()
+       */
       virtual bool canBubble() const { return bubbles; }
 
-      StringMap detail; //<! user data map
-      bool bubbles;
+      StringMap detail; //!< User data map
+      bool bubbles;     //!< Whether the event supports bubbling
   };
 
 } // namespace canvas
index 385590c8271694c7449c252bab665cdecbc56002..beb2380195eba7a2aac1414ff58a9da05ea6bfd3 100644 (file)
@@ -61,14 +61,14 @@ namespace canvas
       bool isModifier() const;
 
     protected:
-      uint32_t _key,            //<! Key identifier for this event
-               _unmodified_key; //<! Virtual key identifier without any
+      uint32_t _key,            //!< Key identifier for this event
+               _unmodified_key; //!< Virtual key identifier without any
                                 //   modifiers applied
-      bool     _repeat;         //<! If key has been depressed long enough to
+      bool     _repeat;         //!< If key has been depressed long enough to
                                 //   generate key repetition
 
-      mutable std::string _name;        //<! Printable representation/name
-      mutable uint8_t _location; //<! Location of the key on the keyboard
+      mutable std::string _name; //!< Printable representation/name
+      mutable uint8_t _location; //!< Location of the key on the keyboard
 
   };
 
index df52d97d55718b9caa5bfb5690d81b4b16a60b3e..f0a0b4a642f07456aad89e29fbe283c7433c165b 100644 (file)
@@ -61,13 +61,13 @@ namespace canvas
 
       int getCurrentClickCount() const { return click_count; }
 
-      osg::Vec2f  screen_pos,   //<! Position in screen coordinates
-                  client_pos,   //<! Position in window/canvas coordinates
-                  local_pos,    //<! Position in local/element coordinates
+      osg::Vec2f  screen_pos,   //!< Position in screen coordinates
+                  client_pos,   //!< Position in window/canvas coordinates
+                  local_pos,    //!< Position in local/element coordinates
                   delta;
-      int         button,       //<! Button for this event
-                  buttons,      //<! Current button state
-                  click_count;  //<! Current click count
+      int         button,       //!< Button for this event
+                  buttons,      //!< Current button state
+                  click_count;  //!< Current click count
   };
 
 } // namespace canvas
index 82d08a0245433defd0f793ad49e056212ceeaf09..2d33c0162d682025f555e40d33471bc5e7c658a7 100644 (file)
@@ -99,9 +99,9 @@ namespace canvas
     protected:
 
       typedef const int& (SGVec2i::*CoordGetter)() const;
-      CoordGetter _get_layout_coord,    //<! getter for coordinate in layout
+      CoordGetter _get_layout_coord,    //!< getter for coordinate in layout
                                         //   direction
-                  _get_fixed_coord;     //<! getter for coordinate in secondary
+                  _get_fixed_coord;     //!< getter for coordinate in secondary
                                         //   (fixed) direction
 
       int _padding;
index 673c990e79dcecc185d9fb2eb09b152c6c50758f..0fee1471f7b9df997533436fcccbeebf1f236703 100644 (file)
@@ -81,13 +81,13 @@ namespace canvas
         int     size_hint,
                 min_size,
                 max_size,
-                padding_orig, //<! original padding as specified by the user
-                padding,      //<! padding before element (layouted)
-                size,         //<! layouted size
-                stretch;      //<! stretch factor
+                padding_orig, //!< original padding as specified by the user
+                padding,      //!< padding before element (layouted)
+                size,         //!< layouted size
+                stretch;      //!< stretch factor
         bool    visible : 1,
-                has_hfw : 1,  //<! height for width
-                done : 1;     //<! layouting done
+                has_hfw : 1,  //!< height for width
+                done : 1;     //!< layouting done
 
         /** Clear values (reset to default/empty state) */
         void reset();
@@ -110,12 +110,12 @@ namespace canvas
 
     private:
 
-      int _num_not_done, //<! number of children not layouted yet
-          _sum_stretch,  //<! sum of stretch factors of all not yet layouted
+      int _num_not_done, //!< number of children not layouted yet
+          _sum_stretch,  //!< sum of stretch factors of all not yet layouted
                          //   children
-          _space_stretch,//<! space currently assigned to all not yet layouted
+          _space_stretch,//!< space currently assigned to all not yet layouted
                          //   stretchable children
-          _space_left;   //<! remaining space not used by any child yet
+          _space_left;   //!< remaining space not used by any child yet
 
   };
 
index 250518d847f5f99f6d26d7070c4521b2d5f10290..0cf66f77d6f0139dc654e914ff89c3d403f3437d 100644 (file)
@@ -44,9 +44,8 @@
 
 #include "sg_file.hxx"
 
-using std::string;
 
-SGFile::SGFile(const string &file, int repeat_)
+SGFile::SGFile(const std::string &file, int repeat_)
     : file_name(file), fp(-1), eof_flag(true), repeat(repeat_), iteration(0)
 {
     set_type( sgFileType );
index 7d84286389778812efdd72b49dfd9022eb223723..950cc5d751f91331817d7b4e68bb1baeecb5fdc0 100644 (file)
@@ -1,37 +1,31 @@
-/** \file sg_file.hxx
- * File I/O routines.
- */
-
+///@file
+/// File I/O routines.
+//
 // Written by Curtis Olson, started November 1999.
 //
 // Copyright (C) 1999  Curtis L. Olson - http://www.flightgear.org/~curt
 //
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License as
-// published by the Free Software Foundation; either version 2 of the
-// License, or (at your option) any later version.
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Library General Public
+// License as published by the Free Software Foundation; either
+// version 2 of the License, or (at your option) any later version.
 //
-// This program is distributed in the hope that it will be useful, but
-// WITHOUT ANY WARRANTY; without even the implied warranty of
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-// General Public License for more details.
+// Library General Public License for more details.
 //
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-//
-// $Id$
-
+// You should have received a copy of the GNU Library General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA.
 
 #ifndef _SG_FILE_HXX
 #define _SG_FILE_HXX
 
 #include <simgear/compiler.h>
-
-#include <string>
-
 #include "iochannel.hxx"
 
+#include <string>
 
 /**
  * A file I/O class based on SGIOChannel.
@@ -91,7 +85,4 @@ public:
     virtual bool eof() const { return eof_flag; };
 };
 
-
 #endif // _SG_FILE_HXX
-
-
index 7b956c95778320ae871d63129ef5e59fb35f597c..c594e59c4073840d767c9e72438fa8a0a4051797 100644 (file)
@@ -36,8 +36,6 @@
 
 #include "interpolater.hxx"
 
-using std::string;
-
 // Constructor -- starts with an empty table.
 SGInterpTable::SGInterpTable()
 {
@@ -55,7 +53,7 @@ SGInterpTable::SGInterpTable(const SGPropertyNode* interpolation)
 
 // Constructor -- loads the interpolation table from the specified
 // file
-SGInterpTable::SGInterpTable( const string& file ) 
+SGInterpTable::SGInterpTable( const std::string& file )
 {
     SG_LOG( SG_MATH, SG_INFO, "Initializing Interpolator for " << file );
 
index c2ed93b5869e8bfe43708d9f0f07409220062f11..27ebff8e7da157ebe216eb284ae0eebe508ad22f 100644 (file)
@@ -27,7 +27,6 @@
 
 #include "sgstream.hxx"
 
-using std::string;
 using std::istream;
 using std::ostream;
 
@@ -40,7 +39,7 @@ sg_gzifstream::sg_gzifstream()
 //
 // Open a possibly gzipped file for reading.
 //
-sg_gzifstream::sg_gzifstream( const string& name, ios_openmode io_mode )
+sg_gzifstream::sg_gzifstream( const std::string& name, ios_openmode io_mode )
     : istream(&gzbuf)
 {
     this->open( name, io_mode );
@@ -65,12 +64,12 @@ sg_gzifstream::sg_gzifstream( int fd, ios_openmode io_mode )
 // then append ".gz" and try again.
 //
 void
-sg_gzifstream::open( const string& name, ios_openmode io_mode )
+sg_gzifstream::open( const std::string& name, ios_openmode io_mode )
 {
     gzbuf.open( name.c_str(), io_mode );
     if ( ! gzbuf.is_open() )
     {
-       string s = name;
+    std::string s = name;
        if ( s.substr( s.length() - 3, 3 ) == ".gz" )
        {
            // remove ".gz" suffix
@@ -160,7 +159,7 @@ sg_gzofstream::sg_gzofstream()
 //
 // Open a file for gzipped writing.
 //
-sg_gzofstream::sg_gzofstream( const string& name, ios_openmode io_mode )
+sg_gzofstream::sg_gzofstream( const std::string& name, ios_openmode io_mode )
     : ostream(&gzbuf)
 {
     this->open( name, io_mode );
@@ -181,7 +180,7 @@ sg_gzofstream::sg_gzofstream( int fd, ios_openmode io_mode )
 // Open a file for gzipped writing.
 //
 void
-sg_gzofstream::open( const string& name, ios_openmode io_mode )
+sg_gzofstream::open( const std::string& name, ios_openmode io_mode )
 {
     gzbuf.open( name.c_str(), io_mode );
 }
index a5ce4769ca44b4cac3da9a7ee308bb2a55be1809..aac672fd41509765752a092101a35784727230cf 100644 (file)
@@ -118,7 +118,6 @@ namespace nasal
        *
        * @tparam Sig    Function signature
        * @param name    Member name
-       * @param key     Member key
        */
       template<class Sig, class Key>
       typename boost::enable_if< boost::is_function<Sig>,
index e94dab7d6f1f571471f138a8612a8e7fa7193852..81153f23eef7a782f64f01d07aab8c069e44ec0d 100644 (file)
@@ -47,7 +47,7 @@ namespace nasal
        *
        * @param str   Existing Nasal String
        */
-      String(naRef string);
+      String(naRef str);
 
       const char* c_str() const;
       const char* begin() const;
index 5453d39171e1a4367b6c09478a6a8d0526aa9346..25f7008e7bb2f3038f55a2ab1c94ee0049ae478f 100644 (file)
@@ -161,7 +161,7 @@ struct naFunc {
 struct naCCode {
     GC_HEADER;
     union {
-        naCFunction fptr; //<! pointer to simple callback function. Invalid if
+        naCFunction fptr; //!< pointer to simple callback function. Invalid if
                           //   fptru is not NULL.
         struct {
             void* user_data;
index 27eff170ce731a32d49f31d4272662ddedd8563a..c43fef2a73bf46f777902abd7dcae88a79cc42ff 100644 (file)
@@ -39,8 +39,8 @@ namespace simgear
       /**
        * Remove the property listener of the element.
        *
-       * You will need to call the appropriate methods (#childAdded,
-       * #childRemoved, #valueChanged) yourself to ensure the element still
+       * You will need to call the appropriate methods (childAdded(),
+       * childRemoved(), valueChanged()) yourself to ensure the element still
        * receives the needed events.
        */
       void removeListener();
index d2272c37c37c741d0ae0ccb2bfc62f23ee1f332e..9817d547ebe6a79d72f4fedd5cbb954f9621a553 100644 (file)
@@ -52,7 +52,6 @@ using std::cerr;
 using std::endl;
 using std::find;
 using std::sort;
-using std::string;
 using std::vector;
 using std::stringstream;
 
@@ -104,7 +103,7 @@ parse_name (const SGPropertyNode *node, const Range &path)
       i++;
     }
     if (i != max && *i != '/')
-      throw string("illegal character after . or ..");
+      throw std::string("illegal character after . or ..");
   } else if (isalpha(*i) || *i == '_') {
     i++;
 
@@ -117,7 +116,7 @@ parse_name (const SGPropertyNode *node, const Range &path)
       } else if (*i == '[' || *i == '/') {
        break;
       } else {
-        string err = "'";
+        std::string err = "'";
         err.push_back(*i);
         err.append("' found in propertyname after '"+node->getNameString()+"'");
         err.append("\nname may contain only ._- and alphanumeric characters");
@@ -129,7 +128,7 @@ parse_name (const SGPropertyNode *node, const Range &path)
 
   else {
     if (path.begin() == i) {
-      string err = "'";
+      std::string err = "'";
       err.push_back(*i);
       err.append("' found in propertyname after '"+node->getNameString()+"'");
       err.append("\nname must begin with alpha or '_'");
@@ -140,7 +139,7 @@ parse_name (const SGPropertyNode *node, const Range &path)
 }
 
 // Validate the name of a single node
-inline bool validateName(const string& name)
+inline bool validateName(const std::string& name)
 {
   using namespace boost;
   if (name.empty())
@@ -287,7 +286,7 @@ find_node_aux(SGPropertyNode * current, SplitItr& itr, bool create,
   if (equals(name, "..")) {
     SGPropertyNode * parent = current->getParent();
     if (parent == 0)
-      throw string("attempt to move past root with '..'");
+      throw std::string("attempt to move past root with '..'");
     return find_node_aux(parent, ++itr, create, last_index);
   }
   int index = -1;
@@ -320,10 +319,10 @@ find_node_aux(SGPropertyNode * current, SplitItr& itr, bool create,
           }
         }
         if (i == token.end() || *i != ']')
-          throw string("unterminated index (looking for ']')");
+          throw std::string("unterminated index (looking for ']')");
       } else {
-        throw string("illegal characters in token: ")
-          + string(name.begin(), name.end());
+        throw std::string("illegal characters in token: ")
+          + std::string(name.begin(), name.end());
       }
     }
   }
@@ -733,12 +732,12 @@ SGPropertyNode::SGPropertyNode (Itr begin, Itr end,
   _local_val.string_val = 0;
   _value.val = 0;
   if (!validateName(_name))
-    throw string("plain name expected instead of '") + _name + '\'';
+    throw std::string("plain name expected instead of '") + _name + '\'';
 }
 
-SGPropertyNode::SGPropertyNode (const string& name,
-                               int index,
-                               SGPropertyNode * parent)
+SGPropertyNode::SGPropertyNode( const std::string& name,
+                                int index,
+                                SGPropertyNode * parent)
   : _index(index),
     _name(name),
     _parent(parent),
@@ -750,7 +749,7 @@ SGPropertyNode::SGPropertyNode (const string& name,
   _local_val.string_val = 0;
   _value.val = 0;
   if (!validateName(name))
-    throw string("plain name expected instead of '") + _name + '\'';
+    throw std::string("plain name expected instead of '") + _name + '\'';
 }
 
 /**
@@ -956,7 +955,7 @@ SGPropertyNode::getChild (const char * name, int index, bool create)
 }
 
 SGPropertyNode *
-SGPropertyNode::getChild (const string& name, int index, bool create)
+SGPropertyNode::getChild (const std::string& name, int index, bool create)
 {
   SGPropertyNode* node = getExistingChild(name.begin(), name.end(), index);
   if (node) {
@@ -1072,10 +1071,10 @@ SGPropertyNode::removeAllChildren()
   _children.clear();
 }
 
-string
+std::string
 SGPropertyNode::getDisplayName (bool simplify) const
 {
-  string display_name = _name;
+  std::string display_name = _name;
   if (_index != 0 || !simplify) {
     stringstream sstr;
     sstr << '[' << _index << ']';
@@ -1084,14 +1083,14 @@ SGPropertyNode::getDisplayName (bool simplify) const
   return display_name;
 }
 
-string
+std::string
 SGPropertyNode::getPath (bool simplify) const
 {
   typedef std::vector<SGConstPropertyNode_ptr> PList;
   PList pathList;
   for (const SGPropertyNode* node = this; node->_parent; node = node->_parent)
     pathList.push_back(node);
-  string result;
+  std::string result;
   for (PList::reverse_iterator itr = pathList.rbegin(),
          rend = pathList.rend();
        itr != rend;
@@ -1672,7 +1671,7 @@ bool SGPropertyNode::interpolate( const std::string& type,
 
 //------------------------------------------------------------------------------
 bool SGPropertyNode::interpolate( const std::string& type,
-                                  const PropertyList& values,
+                                  const simgear::PropertyList& values,
                                   const double_list& deltas,
                                   const std::string& easing )
 {
@@ -1810,7 +1809,7 @@ SGPropertyNode::untie ()
   }
   case props::STRING:
   case props::UNSPECIFIED: {
-    string val = getStringValue();
+    std::string val = getStringValue();
     clearValue();
     _type = props::STRING;
     _local_val.string_val = copy_string(val.c_str());
index 8e17cc49845cdc90db39bf6dfc3344c023fc7073..52a2bf91ec49b4b9a821481d71103afedc07a6f4 100644 (file)
@@ -252,15 +252,14 @@ class SGRawBase<T, 0> : public SGRawExtended
 /**
  * Abstract base class for a raw value.
  *
- * <p>The property manager is implemented in two layers.  The {@link
- * SGPropertyNode} is the highest and most abstract layer,
- * representing an LValue/RValue pair: it records the position of the
- * property in the property tree and contains facilities for
- * navigation to other nodes.  It is guaranteed to be persistent: the
- * {@link SGPropertyNode} will not change during a session, even if
- * the property is bound and unbound multiple times.</p>
+ * The property manager is implemented in two layers. The SGPropertyNode is the
+ * highest and most abstract layer, representing an LValue/RValue pair: it
+ * records the position of the property in the property tree and contains
+ * facilities for navigation to other nodes. It is guaranteed to be persistent:
+ * the SGPropertyNode will not change during a session, even if the property is
+ * bound and unbound multiple times.
  *
- * <p>When the property value is not managed internally in the
+ * When the property value is not managed internally in the
  * SGPropertyNode, the SGPropertyNode will contain a reference to an
  * SGRawValue (this class), which provides an abstract way to get,
  * set, and clone the underlying value.  The SGRawValue may change
@@ -268,13 +267,12 @@ class SGRawBase<T, 0> : public SGRawExtended
  * unbound to various data source, but the abstract SGPropertyNode
  * layer insulates the application from those changes.
  *
- * <p>The SGPropertyNode class always keeps a *copy* of a raw value,
- * not the original one passed to it; if you override a derived class
- * but do not replace the {@link #clone} method, strange things will
- * happen.</p>
+ * The SGPropertyNode class always keeps a *copy* of a raw value, not the
+ * original one passed to it; if you override a derived class but do not replace
+ * the {@link SGRaw::clone clone()} method, strange things will happen.
  *
- * <p>All derived SGRawValue classes must implement {@link #getValue},
- * {@link #setValue}, and {@link #clone} for the appropriate type.</p>
+ * All derived SGRawValue classes must implement getValue(), setValue(), and
+ * {@link SGRaw::clone clone()} for the appropriate type.
  *
  * @see SGPropertyNode
  * @see SGRawValuePointer
@@ -696,9 +694,15 @@ class SGPropertyChangeListener
 {
 public:
   virtual ~SGPropertyChangeListener ();
-  virtual void valueChanged (SGPropertyNode * node);
-  virtual void childAdded (SGPropertyNode * parent, SGPropertyNode * child);
-  virtual void childRemoved (SGPropertyNode * parent, SGPropertyNode * child);
+
+  /// Called if value of \a node has changed.
+  virtual void valueChanged(SGPropertyNode * node);
+
+  /// Called if \a child has been added to the given \a parent.
+  virtual void childAdded(SGPropertyNode * parent, SGPropertyNode * child);
+
+  /// Called if \a child has been removed from its \a parent.
+  virtual void childRemoved(SGPropertyNode * parent, SGPropertyNode * child);
 
 protected:
   friend class SGPropertyNode;
@@ -1289,7 +1293,7 @@ public:
    *
    * @param type        Type of interpolation ("numeric", "color", etc.)
    * @param values      Nodes containing intermediate and target values
-   * @param duration    Durations for each interpolation step (in seconds)
+   * @param deltas      Durations for each interpolation step (in seconds)
    * @param easing      Easing function (http://easings.net/)
    */
   bool interpolate( const std::string& type,
index 00e3697ff75a943081e89f2209de3b3bd2b362c4..87998b59b737c2b209233eb93eb16577e4b2526a 100644 (file)
@@ -1,5 +1,5 @@
-/**
- * \file propsfwwd.hxx
+/** \file
+ *
  * Forward declarations for properties (and related structures)
  */
  
@@ -9,10 +9,10 @@
 #include <simgear/structure/SGSharedPtr.hxx>
 
 class SGPropertyNode;
+
 typedef SGSharedPtr<SGPropertyNode> SGPropertyNode_ptr;
 typedef SGSharedPtr<const SGPropertyNode> SGConstPropertyNode_ptr;
+
 class SGCondition; 
 
 #endif // of SG_PROPS_FWD_HXX
index 06b8ba9f4ab32b054bb9f45583fb16a3c1333e37..a919f10b3398d5380e28197e40d0b0e80777f3a3 100644 (file)
@@ -295,9 +295,9 @@ const SGPropertyNode* getEffectPropertyChild(Effect* effect,
                                              const char* name);
 
 /**
- * Get the name of a node mentioned in a <use> clause from the global property
+ * Get the name of a node mentioned in a \<use\> clause from the global property
  * tree.
- * @return empty if prop doesn't contain a <use> clause; otherwise the
+ * @return empty if prop doesn't contain a \<use\> clause; otherwise the
  * mentioned node name.
  */
 std::string getGlobalProperty(const SGPropertyNode* prop,
@@ -597,9 +597,9 @@ inline void setDynamicVariance(osg::Object* obj)
 /**
  * Initialize the value and the possible updating of an effect
  * attribute. If the value is specified directly, set it. Otherwise,
- * use the <use> tag to look at the parameters. Again, if there is a
+ * use the \<use\> tag to look at the parameters. Again, if there is a
  * value there set it directly. Otherwise, the parameter contains its
- * own <use> tag referring to a property in the global property tree;
+ * own \<use\> tag referring to a property in the global property tree;
  * install a change listener that will set the attribute when the
  * property changes.
  *
@@ -641,12 +641,12 @@ initFromParameters(Effect* effect, const SGPropertyNode* prop, ObjType* obj,
  * The parameter may be updated at runtime.
  *
  * If the value is specified directly, set it. Otherwise, use the
- * <use> tag to look at the parameters. Again, if there is a value
+ * \<use\> tag to look at the parameters. Again, if there is a value
  * there set it directly. Otherwise, the parameter contains one or several
- * <use> tags. If there is one tag, it is a property that is the root
+ * \<use\> tags. If there is one tag, it is a property that is the root
  * for the values needed to update the parameter; nameIter holds the
  * names of the properties relative to the root. If there are several
- * <use> tags, they each hold the name of the property holding the
+ * \<use\> tags, they each hold the name of the property holding the
  * value for the corresponding vector member.
  *
  * Install a change listener that will set the attribute when the
index 2fe251049ddf684be099c5e0c5de172c36508aad..7d661dbbd8a1c9f5b83ee0017ced6b4bf2aed28a 100644 (file)
 #include "Pass.hxx"
 
 using std::map;
-using std::string;
 using namespace simgear;
 
-\f
 ////////////////////////////////////////////////////////////////////////
 // Constructors and destructor.
 ////////////////////////////////////////////////////////////////////////
@@ -82,8 +80,10 @@ SGMaterial::_internal_state::_internal_state(Effect *e, bool l,
 {
 }
 
-SGMaterial::_internal_state::_internal_state(Effect *e, const string &t, bool l, 
-                                             const SGReaderWriterOptions* o)
+SGMaterial::_internal_state::_internal_state( Effect *e,
+                                              const std::string &t,
+                                              bool l,
+                                              const SGReaderWriterOptions* o )
     : effect(e), effect_realized(l), options(o)
 {
     texture_paths.push_back(std::make_pair(t,0));
@@ -132,7 +132,7 @@ SGMaterial::read_properties(const SGReaderWriterOptions* options,
     std::vector<SGPropertyNode_ptr> textures = props->getChildren("texture");
     for (unsigned int i = 0; i < textures.size(); i++)
     {
-        string tname = textures[i]->getStringValue();
+        std::string tname = textures[i]->getStringValue();
 
         if (tname.empty()) {
             tname = "unknown.rgb";
@@ -140,7 +140,7 @@ SGMaterial::read_properties(const SGReaderWriterOptions* options,
 
         SGPath tpath("Textures.high");
         tpath.append(tname);
-        string fullTexPath = SGModelLib::findDataFile(tpath.str(), options);
+        std::string fullTexPath = SGModelLib::findDataFile(tpath.str(), options);
         if (fullTexPath.empty()) {
             tpath.set("Textures");
             tpath.append(tname);
@@ -170,14 +170,14 @@ SGMaterial::read_properties(const SGReaderWriterOptions* options,
         std::vector<SGPropertyNode_ptr> textures = texturesets[i]->getChildren("texture");
         for (unsigned int j = 0; j < textures.size(); j++)
         {
-            string tname = textures[j]->getStringValue();
+            std::string tname = textures[j]->getStringValue();
             if (tname.empty()) {
                 tname = "unknown.rgb";
             }
 
             SGPath tpath("Textures.high");
             tpath.append(tname);
-            string fullTexPath = SGModelLib::findDataFile(tpath.str(), options);
+            std::string fullTexPath = SGModelLib::findDataFile(tpath.str(), options);
             if (fullTexPath.empty()) {
                 tpath.set("Textures");
                 tpath.append(tname);
@@ -215,12 +215,13 @@ SGMaterial::read_properties(const SGReaderWriterOptions* options,
     std::vector<SGPropertyNode_ptr> masks = props->getChildren("object-mask");
     for (unsigned int i = 0; i < masks.size(); i++)
     {
-        string omname = masks[i]->getStringValue();
+        std::string omname = masks[i]->getStringValue();
 
         if (! omname.empty()) {
             SGPath ompath("Textures.high");
             ompath.append(omname);
-            string fullMaskPath = SGModelLib::findDataFile(ompath.str(), options);
+            std::string fullMaskPath =
+              SGModelLib::findDataFile(ompath.str(), options);
 
             if (fullMaskPath.empty()) {
                 ompath.set("Textures");
@@ -279,7 +280,8 @@ SGMaterial::read_properties(const SGReaderWriterOptions* options,
     building_coverage = props->getDoubleValue("building-coverage", 0.0);
     building_spacing = props->getDoubleValue("building-spacing-m", 5.0);
     
-    string bt = props->getStringValue("building-texture", "Textures/buildings.png");
+    std::string bt = props->getStringValue( "building-texture",
+                                            "Textures/buildings.png" );
     building_texture = SGModelLib::findDataFile(bt, options);    
     
     if (building_texture.empty()) {
@@ -340,7 +342,7 @@ SGMaterial::read_properties(const SGReaderWriterOptions* options,
     const SGPropertyNode* treeTexNode = props->getChild("tree-texture");
     
     if (treeTexNode) {
-        string treeTexPath = props->getStringValue("tree-texture");
+        std::string treeTexPath = props->getStringValue("tree-texture");
 
         if (! treeTexPath.empty()) {
             SGPath treePath("Textures.high");
@@ -540,9 +542,9 @@ void SGMaterial::buildEffectProperties(const SGReaderWriterOptions* options)
     }
 }
 
-SGMaterialGlyph* SGMaterial::get_glyph (const string& name) const
+SGMaterialGlyph* SGMaterial::get_glyph (const std::string& name) const
 {
-    map<string, SGSharedPtr<SGMaterialGlyph> >::const_iterator it;
+    map<std::string, SGSharedPtr<SGMaterialGlyph> >::const_iterator it;
     it = glyphs.find(name);
     if (it == glyphs.end())
         return 0;
index 93a28cd1e7ed2ca66d00306d65a3fde946909b6a..7144ebab7f79632a4af62261abce9723728a0a4c 100644 (file)
@@ -32,7 +32,7 @@ ConditionNode::ConditionNode()
 {
 }
 
-ConditionNode::ConditionNode(const ConditionNode& rhs, const CopyOp& op)
+ConditionNode::ConditionNode(const ConditionNode& rhs, const osg::CopyOp& op)
     : Group(rhs, op), _condition(rhs._condition)
 {
 }
index 47a7a0dc246beb0081d5292c74589ef2cf48f998..a7deb4a48259b9c37a1ececb3f978cc0df74a252 100644 (file)
@@ -100,7 +100,7 @@ TextureUpdateVisitor::TextureUpdateVisitor(const osgDB::FilePathList& pathList)
 {
 }
 
-void TextureUpdateVisitor::apply(Node& node)
+void TextureUpdateVisitor::apply(osg::Node& node)
 {
     StateSet* stateSet = cloneStateSet(node.getStateSet());
     if (stateSet)
index e41d170bae3a75a62d5627c5b8c3f598dc8a6831..db5bd09d0b310891e763d93b02bfb902414821fa 100644 (file)
@@ -500,8 +500,12 @@ bool SGCloudLayer::repaint( const SGVec3f& fog_color ) {
 // lat specifies a rotation about the new Y axis
 // spin specifies a rotation about the new Z axis (and orients the
 // sunrise/set effects
-bool SGCloudLayer::reposition( const SGVec3f& p, const SGVec3f& up, double lon, double lat,
-                              double alt, double dt )
+bool SGCloudLayer::reposition( const SGVec3f& p,
+                               const SGVec3f& up,
+                               double lon,
+                               double lat,
+                               double alt,
+                               double dt )
 {
 
     if (getCoverage() != SGCloudLayer::SG_CLOUD_CLEAR)
index c79481af7d944cdff1b773c4c99d420b8cc476e9..fb4cf3c55fe06e408dd292fb6c7d3ab594deaf66 100644 (file)
@@ -214,13 +214,13 @@ public:
      * orientation.
      * @param p position vector
      * @param up the local up vector
-     * @param lon specifies a rotation about the Z axis
-     * @param lat specifies a rotation about the new Y axis
-     * @param spin specifies a rotation about the new Z axis
-     *        (and orients the sunrise/set effects)
+     * @param lon TODO
+     * @param lat TODO
+     * @param alt TODO
      * @param dt the time elapsed since the last call
      */
-    bool reposition( const SGVec3f& p, const SGVec3f& up,
+    bool reposition( const SGVec3f& p,
+                     const SGVec3f& up,
                      double lon, double lat, double alt,
                      double dt = 0.0 );
 
index 71160207245b39dbe84b9582fd39c721a29f8e6f..389d8bf42d5392a80478aa95036c9f13e3c44e39 100644 (file)
@@ -79,9 +79,12 @@ SGSky::~SGSky( void )
 
 // initialize the sky and connect the components to the scene graph at
 // the provided branch
-void SGSky::build( double h_radius_m, double v_radius_m,
-                   double sun_size, double moon_size,
-                   const SGEphemeris& eph, SGPropertyNode *property_tree_node,
+void SGSky::build( double h_radius_m,
+                   double v_radius_m,
+                   double sun_size,
+                   double moon_size,
+                   const SGEphemeris& eph,
+                   SGPropertyNode *property_tree_node,
                    simgear::SGReaderWriterOptions* options )
 {
     dome = new SGSkyDome;
index 6b99d4aca3bce1f988bc913b7bae243d8021e83c..a824b74a02db13bcb55253e00109b5ff80937d49 100644 (file)
 #define _SG_SKY_HXX
 
 
-#ifndef __cplusplus
-# error This library requires C++
-#endif
-
 #include <simgear/compiler.h>
 #include <simgear/math/sg_random.h>
 #include <simgear/misc/sg_path.hxx>
@@ -57,29 +53,36 @@ namespace simgear {
 class SGReaderWriterOptions;
 }
 
-typedef struct {
-    SGVec3d pos;
-    SGGeod pos_geod;
-    SGQuatd ori;
-    double spin;
-       double gst;
-       double sun_dist;
-       double moon_dist;
-       double sun_angle;
-} SGSkyState;
-
-typedef struct {
-       SGVec3f sky_color;
-    SGVec3f adj_sky_color;
-    SGVec3f fog_color;
-       SGVec3f cloud_color;
-       double sun_angle, moon_angle;
-} SGSkyColor;
+struct SGSkyState
+{
+  SGVec3d pos;     //!< View position in world Cartesian coordinates.
+  SGGeod pos_geod;
+  SGQuatd ori;
+  double spin;     //!< An offset angle for orienting the sky effects with the
+                   //   sun position so sunset and sunrise effects look correct.
+  double gst;      //!< GMT side real time.
+  double sun_dist; //!< the sun's distance from the current view point
+                   //   (to keep it inside your view volume).
+  double moon_dist;//!< The moon's distance from the current view point.
+  double sun_angle;
+};
+
+struct SGSkyColor
+{
+  SGVec3f sky_color;
+  SGVec3f adj_sky_color;
+  SGVec3f fog_color;
+  SGVec3f cloud_color;
+  double sun_angle,
+         moon_angle;
+};
 
 /**
+ * \anchor SGSky-details
+ *
  * A class to model a realistic (time/date/position) based sky.
  *
- * Introduction 
+ * Introduction
  *
  * The SGSky class models a blended sky dome, a haloed sun, a textured
  * moon with phase that properly matches the date, stars and planets,
@@ -164,10 +167,10 @@ typedef struct {
 
  * A typical application might do the following: 
 
- * <li> thesky->preDraw( my_altitude );
- * <li> thesky->drawUpperClouds();
- * <li> ssgCullAndDraw ( myscene ) ;
- * <li> thesky->drawLowerClouds();
+ * \li thesky->preDraw( my_altitude );
+ * \li thesky->drawUpperClouds();
+ * \li ssgCullAndDraw ( myscene ) ;
+ * \li thesky->drawLowerClouds();
 
  * The current altitude in meters is passed to the preDraw() method
  * so the clouds layers can be rendered correction from most distant
@@ -261,84 +264,54 @@ public:
 
     /**
      * Initialize the sky and connect the components to the scene
-     * graph at the provided branch.  See discussion in detailed class
-     * description.
-     * @param h_radius_m horizontal radius of sky dome
-     * @param v_radius_m vertical radius of sky dome
-     * @param sun_size size of sun
-     * @param moon_size size of moon
-     * @param nplanets number of planets
-     * @param planet_data an array of planet right ascensions, declinations,
-     *        and magnitudes
-     * @param nstars number of stars
-     * @param star_data an array of star right ascensions, declinations,
-     *        and magnitudes
+     * graph at the provided branch.
+     *
+     * @note See discussion in \ref SGSky-details "detailed class description".
+     *
+     * @param h_radius_m    Horizontal radius of sky dome
+     * @param v_radius_m    Vertical radius of sky dome
+     * @param sun_size      Size of sun
+     * @param moon_size     Size of moon
+     * @param eph           Current positions of planets and stars
+     * @param node          Property node connecting sun with environment
+     * @param options
      */
-    void build( double h_radius_m, double v_radius_m,
-                double sun_size, double moon_size,
-                const SGEphemeris& eph, SGPropertyNode *property_tree_node,
-                simgear::SGReaderWriterOptions* options);
+    void build( double h_radius_m,
+                double v_radius_m,
+                double sun_size,
+                double moon_size,
+                const SGEphemeris& eph,
+                SGPropertyNode *node,
+                simgear::SGReaderWriterOptions* options );
 
     /**
-     * Repaint the sky components based on current value of sun_angle,
-     * sky, and fog colors.  You can also specify new star and planet
-     * data so that we can optionally change the magnitude of these
-     * (for day/night transitions.)  See discussion in detailed
-     * class description.
+     * Repaint the sky components based on current sun angle, and sky and fog
+     * colors.
+     *
+     * @note See discussion in \ref SGSky-details "detailed class description".
      *
-     * Sun and moon angles are specified in degrees relative to local up
-     * <li> 0 degrees = high noon
-     * <li> 90 degrees = sun rise/set
-     * <li> 180 degrees = darkest midnight
-     * @param sky_color the base sky color (for the top of the dome)
-     * @param fog_color the fog color (for the horizon)
-     * @param sun_angle the sun angle with the horizon (for sunrise/sunset
-     *        effects)
-     * @param moon_angle the moon angle (so we can make it more yellow
-     *        at the horizon)
-     * @param nplanets number of planets
-     * @param planet_data an array of planet right ascensions, declinations,
-     *        and magnitudes
-     * @param nstars number of stars
-     * @param star_data an array of star right ascensions, declinations,
-     *        and magnitudes
+     * @param sky_color The base sky color (for the top of the dome)
+     * @param eph       Current positions of planets and stars
      */
-    bool repaint( const SGSkyColor &sc, const SGEphemeris& eph );
+    bool repaint( const SGSkyColor &sky_color,
+                  const SGEphemeris& eph );
 
     /**
-     * Reposition the sky at the specified origin and orientation
+     * Reposition the sky at the specified origin and orientation.
+     *
+     * @note See discussion in \ref SGSky-details "detailed class description".
      *
-     * lon specifies a rotation about the Z axis
-     * lat specifies a rotation about the new Y axis
-     * spin specifies a rotation about the new Z axis (this allows
-     * additional orientation for the sunrise/set effects and is used
-     * by the skydome and perhaps clouds.  See discussion in detailed
-     * class description.
-     * @param view_pos specify your view position in world Cartesian
-     *        coordinates
-     * @param zero_elev the zero elevation position in world Cartesian
-     *        coordinates
-     * @param view_up the up vector in world Cartesian coordinates
-     * @param lon current longitude
-     * @param lat current latitude
-     * @param alt current altitude
-     * @param spin an offset angle for orienting the sky effects with the
-     *        sun position so sunset and sunrise effects look correct.
-     * @param gst GMT side real time
-     * @param sun_ra the sun's current right ascension
-     * @param sun_dec the sun's current declination
-     * @param sun_dist the sun's distance from the current view point
-     *        (to keep it inside your view volume.)
-     * @param moon_ra the moon's current right ascension
-     * @param moon_dec the moon's current declination
-     * @param moon_dist the moon's distance from the current view point. 
      */
-    bool reposition( const SGSkyState &st, const SGEphemeris& eph, double dt = 0.0 );
+    bool reposition( const SGSkyState& sky_state,
+                     const SGEphemeris& eph,
+                     double dt = 0.0 );
 
     /**
      * Modify the given visibility based on cloud layers, thickness,
-     * transition range, and simulated "puffs".  See discussion in detailed
-     * class description.
+     * transition range, and simulated "puffs".
+     *
+     * @note See discussion in \ref SGSky-details "detailed class description".
+     *
      * @param alt current altitude
      * @param time_factor amount of time since modify_vis() last called so
      *        we can scale effect rates properly despite variable frame rates.
@@ -350,7 +323,8 @@ public:
 
     /** 
      * Specify the texture path (optional, defaults to current directory)
-     * @param path base path to texture locations
+     *
+     * @param path Base path to texture locations
      */
     void texture_path( const std::string& path );
 
@@ -424,7 +398,8 @@ public:
     float get_3dCloudVisRange() const;
 
     /** Set 3D cloud visibility range
-     * @param density 3D cloud visibility range
+     *
+     * @param vis 3D cloud visibility range
      */
     void set_3dCloudVisRange(float vis);
 
@@ -432,7 +407,8 @@ public:
     float get_3dCloudImpostorDistance() const;
 
     /** Set 3D cloud impostor distance
-     * @param density 3D cloud impostor distance
+     *
+     * @param vis 3D cloud impostor distance
      */
     void set_3dCloudImpostorDistance(float vis);
 
@@ -456,7 +432,8 @@ public:
     bool get_3dCloudUseImpostors() const;
 
     /** Set 3D cloud impostor usage
-     * @param wrap whether use impostors for 3D clouds
+     *
+     * @param imp whether use impostors for 3D clouds
      */
     void set_3dCloudUseImpostors(bool imp);
 
index f990f946ae02a991f88a4d7239ba532481785e01..c550280c8965a19e974e288282395d88de2b9ff2 100644 (file)
@@ -111,7 +111,6 @@ public:
     void calcApronPts(double tex_width);
     
 };
-}
 
 void OceanMesh::calcMesh(const SGVec3d& cartCenter, const SGQuatd& orient,
                          double clon, double clat,
@@ -238,8 +237,6 @@ void OceanMesh::calcApronPts(double tex_width)
     }
 }
 
-namespace
-{
 // Enter the vertices of triangles that fill one row of the
 // mesh. The vertices are entered in counter-clockwise order.
 void fillDrawElementsRow(int width, short row0Start, short row1Start,
index 257171c770c164f953bb04eae6f8e431f2934907..22e7595e9924ac3e01ba63f8c8a0bd936e1a6cbb 100644 (file)
@@ -28,14 +28,18 @@ namespace simgear
 {
 using namespace osg;
 
-NodeAndDrawableVisitor::NodeAndDrawableVisitor(NodeVisitor::TraversalMode tm) :
-    NodeVisitor(tm)
+NodeAndDrawableVisitor::NodeAndDrawableVisitor(
+  osg::NodeVisitor::TraversalMode tm
+):
+  NodeVisitor(tm)
 {
 }
 
-NodeAndDrawableVisitor::NodeAndDrawableVisitor(NodeVisitor::VisitorType type,
-                                               NodeVisitor::TraversalMode tm) :
-    NodeVisitor(type, tm)
+NodeAndDrawableVisitor::NodeAndDrawableVisitor(
+  osg::NodeVisitor::VisitorType type,
+  osg::NodeVisitor::TraversalMode tm
+):
+  NodeVisitor(type, tm)
 {
 }
 
@@ -43,16 +47,16 @@ NodeAndDrawableVisitor::~NodeAndDrawableVisitor()
 {
 }
 
-void NodeAndDrawableVisitor::apply(Node& node)
+void NodeAndDrawableVisitor::apply(osg::Node& node)
 {
     traverse(node);
 }
 
-void NodeAndDrawableVisitor::apply(Drawable& Drawable)
+void NodeAndDrawableVisitor::apply(osg::Drawable& Drawable)
 {
 }
 
-void NodeAndDrawableVisitor::traverse(Node& node)
+void NodeAndDrawableVisitor::traverse(osg::Node& node)
 {
     TraversalMode tm = getTraversalMode();
     if (tm == TRAVERSE_NONE) {
index 290d407c4f3655f7f409afcc4602562521bde9da..899308987ef59fb33b16f5e8a24386783fcb1ecf 100644 (file)
@@ -1,4 +1,5 @@
-///@file Helper for OSG related debugging
+///@file
+/// Helper for OSG related debugging
 //
 // Copyright (C) 2013  Thomas Geymayer <tomgey@gmail.com>
 //
index 1f28594910fb51c5ec19b9587cdd1a3ea217e737..5421d873fea53fef3dee1394925471ffe5715a97 100644 (file)
@@ -16,7 +16,7 @@ void SplicingVisitor::reset()
     NodeVisitor::reset();
 }
 
-NodeList SplicingVisitor::traverse(Node& node)
+NodeList SplicingVisitor::traverse(osg::Node& node)
 {
     NodeList result;
     _childStack.push_back(NodeList());
@@ -25,21 +25,22 @@ NodeList SplicingVisitor::traverse(Node& node)
     _childStack.pop_back();
     return result;
 }
-void SplicingVisitor::apply(Node& node)
+void SplicingVisitor::apply(osg::Node& node)
 {
     NodeVisitor::traverse(node);
     pushNode(&node);
 }
 
-void SplicingVisitor::apply(Group& node)
+void SplicingVisitor::apply(osg::Group& node)
 {
     if (pushNode(getNewNode(node)))
         return;
     pushResultNode(&node, &node, traverse(node));
 }
 
-Group* SplicingVisitor::pushResultNode(Group* node, Group* newNode,
-                                       const NodeList& children)
+osg::Group* SplicingVisitor::pushResultNode( osg::Group* node,
+                                             osg::Group* newNode,
+                                             const osg::NodeList& children )
 {
     ref_ptr<Group> result;
     if (node == newNode) {
@@ -56,21 +57,21 @@ Group* SplicingVisitor::pushResultNode(Group* node, Group* newNode,
     return result.get();
 }
 
-Node* SplicingVisitor::pushResultNode(Node* node, Node* newNode)
+osg::Node* SplicingVisitor::pushResultNode(osg::Node* node, osg::Node* newNode)
 {
     _childStack.back().push_back(newNode);
     recordNewNode(node, newNode);
     return newNode;
 }
 
-Node* SplicingVisitor::pushNode(Node* node)
+osg::Node* SplicingVisitor::pushNode(osg::Node* node)
 {
     if (node)
         _childStack.back().push_back(node);
     return node;
 }
 
-Node* SplicingVisitor::getResult()
+osg::Node* SplicingVisitor::getResult()
 {
     NodeList& top = _childStack.at(0);
     if (top.empty()) {
@@ -87,7 +88,7 @@ Node* SplicingVisitor::getResult()
     }
 }
 
-Node* SplicingVisitor::getNewNode(osg::Node* node)
+osg::Node* SplicingVisitor::getNewNode(osg::Node* node)
 {
     ref_ptr<Node> tmpPtr(node);
     NodeMap::iterator itr;
index 78efd1675efa71718e6956ba21d5208f1e24aae1..f4c64d46a0e49362b69ee120f8fa6e0400a60b86 100644 (file)
@@ -33,8 +33,6 @@
 #include "soundmgr_openal_private.hxx"
 #include "sample_group.hxx"
 
-using std::string;
-
 #ifdef HAVE_STD_ISNAN
 using std::isnan;
 #endif
@@ -57,7 +55,8 @@ SGSampleGroup::SGSampleGroup () :
     _samples.clear();
 }
 
-SGSampleGroup::SGSampleGroup ( SGSoundMgr *smgr, const string &refname ) :
+SGSampleGroup::SGSampleGroup ( SGSoundMgr *smgr,
+                               const std::string &refname ):
     _smgr(smgr),
     _refname(refname),
     _active(false), 
@@ -227,8 +226,9 @@ void SGSampleGroup::update( double dt ) {
 }
 
 // add a sound effect, return true if successful
-bool SGSampleGroup::add( SGSharedPtr<SGSoundSample> sound, const string& refname ) {
-
+bool SGSampleGroup::add( SGSharedPtr<SGSoundSample> sound,
+                         const std::string& refname )
+{
     sample_map_iterator sample_it = _samples.find( refname );
     if ( sample_it != _samples.end() ) {
         // sample name already exists
@@ -241,7 +241,7 @@ bool SGSampleGroup::add( SGSharedPtr<SGSoundSample> sound, const string& refname
 
 
 // remove a sound effect, return true if successful
-bool SGSampleGroup::remove( const string &refname ) {
+bool SGSampleGroup::remove( const std::string &refname ) {
 
     sample_map_iterator sample_it = _samples.find( refname );
     if ( sample_it == _samples.end() ) {
@@ -259,7 +259,7 @@ bool SGSampleGroup::remove( const string &refname ) {
 
 
 // return true of the specified sound exists in the sound manager system
-bool SGSampleGroup::exists( const string &refname ) {
+bool SGSampleGroup::exists( const std::string &refname ) {
     sample_map_iterator sample_it = _samples.find( refname );
     if ( sample_it == _samples.end() ) {
         // sample was not found
@@ -272,7 +272,7 @@ bool SGSampleGroup::exists( const string &refname ) {
 
 // return a pointer to the SGSoundSample if the specified sound exists
 // in the sound manager system, otherwise return NULL
-SGSoundSample *SGSampleGroup::find( const string &refname ) {
+SGSoundSample *SGSampleGroup::find( const std::string &refname ) {
     sample_map_iterator sample_it = _samples.find( refname );
     if ( sample_it == _samples.end() ) {
         // sample was not found
@@ -353,7 +353,9 @@ SGSampleGroup::resume ()
 
 
 // tell the scheduler to play the indexed sample in a continuous loop
-bool SGSampleGroup::play( const string &refname, bool looping = false ) {
+bool SGSampleGroup::play( const std::string &refname,
+                          bool looping )
+{
     SGSoundSample *sample = find( refname );
 
     if ( sample == NULL ) {
@@ -366,7 +368,7 @@ bool SGSampleGroup::play( const string &refname, bool looping = false ) {
 
 
 // return true of the specified sound is currently being played
-bool SGSampleGroup::is_playing( const string& refname ) {
+bool SGSampleGroup::is_playing( const std::string& refname ) {
     SGSoundSample *sample = find( refname );
 
     if ( sample == NULL ) {
@@ -377,7 +379,7 @@ bool SGSampleGroup::is_playing( const string& refname ) {
 }
 
 // immediate stop playing the sound
-bool SGSampleGroup::stop( const string& refname ) {
+bool SGSampleGroup::stop( const std::string& refname ) {
     SGSoundSample *sample  = find( refname );
 
     if ( sample == NULL ) {
@@ -488,7 +490,7 @@ void SGSampleGroup::update_sample_config( SGSoundSample *sample )
 #endif
 }
 
-bool SGSampleGroup::testForError(void *p, string s)
+bool SGSampleGroup::testForError(void *p, std::string s)
 {
    if (p == NULL) {
       SG_LOG( SG_SOUND, SG_ALERT, "Error (sample group): " << s);
@@ -497,7 +499,7 @@ bool SGSampleGroup::testForError(void *p, string s)
    return false;
 }
 
-bool SGSampleGroup::testForALError(string s)
+bool SGSampleGroup::testForALError(std::string s)
 {
 #ifdef SG_C
     ALenum error = alGetError();
index eb850b3b2f43797ca9353681b24f05f86c0eee86..f87cb1dc10d6ee0a64084a668fd5244f0e164c9b 100644 (file)
@@ -1,30 +1,26 @@
-// sample_group.hxx -- Manage a group of samples relative to a base position
+///@file
+/// Manage a group of samples relative to a base position
+///
+/// Sample groups contain all sounds related to one specific object and
+/// have to be added to the sound manager, otherwise they won't get processed.
 //
 // Written for the new SoundSystem by Erik Hofman, October 2009
 //
 // Copyright (C) 2009 Erik Hofman <erik@ehofman.com>
 //
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License as
-// published by the Free Software Foundation; either version 2 of the
-// License, or (at your option) any later version.
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Library General Public
+// License as published by the Free Software Foundation; either
+// version 2 of the License, or (at your option) any later version.
 //
-// This program is distributed in the hope that it will be useful, but
-// WITHOUT ANY WARRANTY; without even the implied warranty of
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-// General Public License for more details.
+// Library General Public License for more details.
 //
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-//
-// $Id$
-
-/**
- * \file sample_group.hxx
- * sample groups contain all sounds related to one specific object and
- * have to be added to the sound manager, otherwise they won't get processed.
- */
+// You should have received a copy of the GNU Library General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA.
 
 #ifndef _SG_SAMPLE_GROUP_OPENAL_HXX
 #define _SG_SAMPLE_GROUP_OPENAL_HXX 1
@@ -137,7 +133,7 @@ public:
      * @param looping Define if the sound should loop continuously
      * @return true if the audio sample exsists and is scheduled for playing
      */
-    bool play( const std::string& refname, bool looping );
+    bool play( const std::string& refname, bool looping = false );
     
     /**
      * Request to start playing the referred audio sample looping.
index ba3fef3d3ac750504e77f3abb63f91261b6d0f9a..fd9216d803ad1b9ea2da6abed0b89c608f3b3845 100644 (file)
@@ -1,4 +1,5 @@
-// sample_openal.hxx -- Audio sample encapsulation class
+///@file
+/// Provides an audio sample encapsulation class.
 // 
 // Written by Curtis Olson, started April 2004.
 // Modified to match the new SoundSystem by Erik Hofman, October 2009
@@ -6,26 +7,19 @@
 // Copyright (C) 2004  Curtis L. Olson - http://www.flightgear.org/~curt
 // Copyright (C) 2009 Erik Hofman <erik@ehofman.com>
 //
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License as
-// published by the Free Software Foundation; either version 2 of the
-// License, or (at your option) any later version.
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Library General Public
+// License as published by the Free Software Foundation; either
+// version 2 of the License, or (at your option) any later version.
 //
-// This program is distributed in the hope that it will be useful, but
-// WITHOUT ANY WARRANTY; without even the implied warranty of
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-// General Public License for more details.
+// Library General Public License for more details.
 //
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-//
-// $Id$
-
-/**
- * \file audio sample.hxx
- * Provides a audio sample encapsulation
- */
+// You should have received a copy of the GNU Library General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA.
 
 #ifndef _SG_SAMPLE_HXX
 #define _SG_SAMPLE_HXX 1
@@ -45,7 +39,9 @@ class SGPath;
  
 
 /**
- * manages everything we need to know for an individual audio sample
+ * Encapsulate and audio sample.
+ *
+ * Manages everything we need to know for an individual audio sample.
  */
 
 class SGSoundSample : public SGReferenced {
@@ -95,6 +91,7 @@ public:
      * Test if this audio sample configuration has changed since the last call.
      * Calling this function will reset the flag so calling it a second
      * time in a row will return false.
+     *
      * @return Return true is the configuration has changed in the mean time.
      */
     bool has_changed() {
@@ -105,6 +102,7 @@ public:
      * Test if static data of audio sample configuration has changed.
      * Calling this function will reset the flag so calling it a second
      * time in a row will return false.
+     *
      * @return Return true is the static data has changed in the mean time.
      */
     bool has_static_data_changed() {
@@ -114,7 +112,8 @@ public:
     /**
      * Schedule this audio sample for playing. Actual playing will only start
      * at the next call op SoundGroup::update()
-     * @param _loop Define whether this sound should be played in a loop.
+     *
+     * @param loop Whether this sound should be played in a loop.
      */
     void play( bool loop = false ) {
         _playing = true; _loop = loop; _changed = true; _static_changed = true;
@@ -122,6 +121,7 @@ public:
 
     /**
      * Check if this audio sample is set to be continuous looping.
+     *
      * @return Return true if this audio sample is set to looping.
      */
     inline bool is_looping() { return _loop; }
@@ -405,7 +405,8 @@ public:
     /**
      * Set the velocity vector (in meters per second) of this sound.
      * This is in the local frame coordinate system; x=north, y=east, z=down
-     * @param Velocity vector
+     *
+     * @param vel Velocity vector
      */
     inline void set_velocity( const SGVec3f& vel ) {
         _velocity = vel; _changed = true;
index 2b11393a97f8120d5ada97a047b05f601f2d2fd0..e3725702baf2ecb2197b1ae555c5e7155167c1f0 100644 (file)
@@ -1,37 +1,27 @@
-// queue.hxx -- Sample Queue encapsulation class
-// 
+///@file
+/// Provides a sample queue encapsulation
+//
 // based on sample.hxx
 // 
 // Copyright (C) 2010 Erik Hofman <erik@ehofman.com>
 //
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License as
-// published by the Free Software Foundation; either version 2 of the
-// License, or (at your option) any later version.
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Library General Public
+// License as published by the Free Software Foundation; either
+// version 2 of the License, or (at your option) any later version.
 //
-// This program is distributed in the hope that it will be useful, but
-// WITHOUT ANY WARRANTY; without even the implied warranty of
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-// General Public License for more details.
+// Library General Public License for more details.
 //
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-//
-// $Id$
-
-/**
- * \file audio sample.hxx
- * Provides a sample queue encapsulation
- */
+// You should have received a copy of the GNU Library General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA.
 
 #ifndef _SG_QUEUE_HXX
 #define _SG_QUEUE_HXX 1
 
-#ifndef __cplusplus
-# error This library requires C++
-#endif
-
 #include <string>
 #include <vector>
 
@@ -68,20 +58,23 @@ public:
     virtual void stop();
 
     /**
-     * Queue new data for this audio sample
-     * @param data Pointer to a memory block containg this audio sample data.
-     * @param len length of the sample buffer in bytes
+     * Queue new data for this audio sample.
+     *
+     * @param data  Pointer to a memory block containg this audio sample data.
+     * @param len   Length of the sample buffer in bytes.
      */
-    void add( const void* smp_data, size_t len );
+    void add( const void* data, size_t len );
 
     /**
-     * Set the source id of this source
+     * Set the source id of this source.
+     *
      * @param sid OpenAL source-id
      */
     virtual void set_source(unsigned int sid);
 
     /**
      * Test if the buffer-id of this audio sample may be passed to OpenAL.
+     *
      * @return false for sample queue
      */
     inline bool is_valid_buffer() const { return false; }
index 910653b1ab27fe3827c460a2667010c2b48b9c5a..a3e1d3d70ec5dc0fab1a701ab68270b79a573472 100644 (file)
@@ -45,7 +45,6 @@
 #include <simgear/debug/logstream.hxx>
 #include <simgear/misc/sg_path.hxx>
 
-using std::string;
 using std::vector;
 
 
@@ -408,7 +407,7 @@ if (isNaN(_velocity.data())) printf("NaN in listener velocity\n");
 }
 
 // add a sample group, return true if successful
-bool SGSoundMgr::add( SGSampleGroup *sgrp, const string& refname )
+bool SGSoundMgr::add( SGSampleGroup *sgrp, const std::string& refname )
 {
     sample_group_map_iterator sample_grp_it = d->_sample_groups.find( refname );
     if ( sample_grp_it != d->_sample_groups.end() ) {
@@ -424,7 +423,7 @@ bool SGSoundMgr::add( SGSampleGroup *sgrp, const string& refname )
 
 
 // remove a sound effect, return true if successful
-bool SGSoundMgr::remove( const string &refname )
+bool SGSoundMgr::remove( const std::string &refname )
 {
     sample_group_map_iterator sample_grp_it = d->_sample_groups.find( refname );
     if ( sample_grp_it == d->_sample_groups.end() ) {
@@ -439,7 +438,7 @@ bool SGSoundMgr::remove( const string &refname )
 
 
 // return true of the specified sound exists in the sound manager system
-bool SGSoundMgr::exists( const string &refname ) {
+bool SGSoundMgr::exists( const std::string &refname ) {
     sample_group_map_iterator sample_grp_it = d->_sample_groups.find( refname );
     return ( sample_grp_it != d->_sample_groups.end() );
 }
@@ -447,7 +446,7 @@ bool SGSoundMgr::exists( const string &refname ) {
 
 // return a pointer to the SGSampleGroup if the specified sound exists
 // in the sound manager system, otherwise return NULL
-SGSampleGroup *SGSoundMgr::find( const string &refname, bool create ) {
+SGSampleGroup *SGSoundMgr::find( const std::string &refname, bool create ) {
     sample_group_map_iterator sample_grp_it = d->_sample_groups.find( refname );
     if ( sample_grp_it == d->_sample_groups.end() ) {
         // sample group was not found.
@@ -524,7 +523,7 @@ unsigned int SGSoundMgr::request_buffer(SGSoundSample *sample)
 #ifdef ENABLE_SOUND
     if ( !sample->is_valid_buffer() ) {
         // sample was not yet loaded or removed again
-        string sample_name = sample->get_sample_name();
+        std::string sample_name = sample->get_sample_name();
         void *sample_data = NULL;
 
         // see if the sample name is already cached
@@ -588,7 +587,7 @@ void SGSoundMgr::release_buffer(SGSoundSample *sample)
 {
     if ( !sample->is_queue() )
     {
-        string sample_name = sample->get_sample_name();
+        std::string sample_name = sample->get_sample_name();
         buffer_map_iterator buffer_it = d->_buffers.find( sample_name );
         if ( buffer_it == d->_buffers.end() ) {
             // buffer was not found
@@ -608,8 +607,11 @@ void SGSoundMgr::release_buffer(SGSoundSample *sample)
     }
 }
 
-bool SGSoundMgr::load(const string &samplepath, void **dbuf, int *fmt,
-                                          size_t *sz, int *frq )
+bool SGSoundMgr::load( const std::string &samplepath,
+                       void **dbuf,
+                       int *fmt,
+                       size_t *sz,
+                       int *frq )
 {
     if ( !is_working() )
         return false;
@@ -668,7 +670,7 @@ vector<const char*> SGSoundMgr::get_available_devices()
 }
 
 
-bool SGSoundMgr::testForError(void *p, string s)
+bool SGSoundMgr::testForError(void *p, std::string s)
 {
    if (p == NULL) {
       SG_LOG( SG_SOUND, SG_ALERT, "Error: " << s);
@@ -678,7 +680,7 @@ bool SGSoundMgr::testForError(void *p, string s)
 }
 
 
-bool SGSoundMgr::testForALError(string s)
+bool SGSoundMgr::testForALError(std::string s)
 {
 #ifdef ENABLE_SOUND
     ALenum error = alGetError();
@@ -691,7 +693,7 @@ bool SGSoundMgr::testForALError(string s)
     return false;
 }
 
-bool SGSoundMgr::testForALCError(string s)
+bool SGSoundMgr::testForALCError(std::string s)
 {
 #ifdef ENABLE_SOUND
     ALCenum error;
index d8c2c19af950834591a6d90761c92921e5411302..58168fc8822f44e5b1aca32bd82720b7efad17d7 100644 (file)
@@ -1,4 +1,8 @@
-// soundmgr.hxx -- Sound effect management class
+///@file
+/// Sound effect management class
+///
+/// Provides a sound manager class to keep track of multiple sounds and manage
+/// playing them with different effects and timings.
 //
 // Sound manager initially written by David Findlay
 // <david_j_findlay@yahoo.com.au> 2001
 // Copyright (C) 2001  Curtis L. Olson - http://www.flightgear.org/~curt
 // Copyright (C) 2009 Erik Hofman <erik@ehofman.com>
 //
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License as
-// published by the Free Software Foundation; either version 2 of the
-// License, or (at your option) any later version.
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Library General Public
+// License as published by the Free Software Foundation; either
+// version 2 of the License, or (at your option) any later version.
 //
-// This program is distributed in the hope that it will be useful, but
-// WITHOUT ANY WARRANTY; without even the implied warranty of
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-// General Public License for more details.
+// Library General Public License for more details.
 //
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-//
-// $Id$
-
-/**
- * \file soundmgr.hxx
- * Provides a sound manager class to keep track of
- * multiple sounds and manage playing them with different effects and
- * timings.
- */
+// You should have received a copy of the GNU Library General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA.
 
 #ifndef _SG_SOUNDMGR_OPENAL_HXX
 #define _SG_SOUNDMGR_OPENAL_HXX 1
@@ -114,13 +109,16 @@ public:
 
     /**
      * Find a specified sample group in the sound manager
+     *
      * @param refname Reference name of the sample group to find
+     * @param create  If the group should be create if it does not exist
      * @return A pointer to the SGSampleGroup
      */
     SGSampleGroup *find( const std::string& refname, bool create = false );
 
     /**
      * Set the Cartesian position of the sound manager.
+     *
      * @param pos OpenAL listener position
      */
     void set_position( const SGVec3d& pos, const SGGeod& pos_geod );
@@ -132,6 +130,7 @@ public:
     /**
      * Get the position of the sound manager.
      * This is in the same coordinate system as OpenGL; y=up, z=back, x=right
+     *
      * @return OpenAL listener position
      */
     const SGVec3d& get_position() const;
@@ -139,7 +138,8 @@ public:
     /**
      * Set the velocity vector (in meters per second) of the sound manager
      * This is the horizontal local frame; x=north, y=east, z=down
-     * @param Velocity vector
+     *
+     * @param vel Velocity vector
      */
     void set_velocity( const SGVec3d& vel ) {
         _velocity = vel; _changed = true;
@@ -148,18 +148,21 @@ public:
     /**
      * Get the velocity vector of the sound manager
      * This is in the same coordinate system as OpenGL; y=up, z=back, x=right.
+     *
      * @return Velocity vector of the OpenAL listener
      */
     inline SGVec3f get_velocity() { return toVec3f(_velocity); }
 
     /**
      * Set the orientation of the sound manager
+     *
      * @param ori Quaternation containing the orientation information
      */
     void set_orientation( const SGQuatd& ori );
 
     /**
      * Get the orientation of the sound manager
+     *
      * @return Quaternation containing the orientation information
      */
     const SGQuatd& get_orientation() const;
@@ -167,6 +170,7 @@ public:
     /**
      * Get the direction vector of the sound manager
      * This is in the same coordinate system as OpenGL; y=up, z=back, x=right.
+     *
      * @return Look-at direction of the OpenAL listener
      */
     SGVec3f get_direction() const;
@@ -179,24 +183,28 @@ public:
 
     /**
      * Set the master volume.
+     *
      * @param vol Volume (must be between 0.0 and 1.0)
      */
     void set_volume( float vol );
 
     /**
      * Get the master volume.
+     *
      * @return Volume (must be between 0.0 and 1.0)
      */
     inline float get_volume() { return _volume; }
 
     /**
      * Get a free OpenAL source-id
+     *
      * @return NO_SOURCE if no source is available
      */
     unsigned int request_source();
 
     /**
      * Free an OpenAL source-id for future use
+     *
      * @param source OpenAL source-id to free
      */
     void release_source( unsigned int source );
@@ -204,6 +212,7 @@ public:
     /**
      * Get a free OpenAL buffer-id
      * The buffer-id will be assigned to the sample by calling this function.
+     *
      * @param sample Pointer to an audio sample to assign the buffer-id to
      * @return NO_BUFFER if loading of the buffer failed.
      */
@@ -211,6 +220,7 @@ public:
 
     /**
      * Free an OpenAL buffer-id for this sample
+     *
      * @param sample Pointer to an audio sample for which to free the buffer
      */
     void release_buffer( SGSoundSample *sample );
@@ -218,6 +228,7 @@ public:
     /**
      * Test if the position of the sound manager has changed.
      * The value will be set to false upon the next call to update_late()
+     *
      * @return true if the position has changed
      */
     inline bool has_changed() { return _changed; }
@@ -232,6 +243,7 @@ public:
 
     /**
      * Load a sample file and return it's configuration and data.
+     *
      * @param samplepath Path to the file to load
      * @param data Pointer to a variable that points to the allocated data
      * @param format Pointer to a vairable that gets the OpenAL format
@@ -239,8 +251,11 @@ public:
      * @param freq Pointer to a vairable that gets the sample frequency in Herz
      * @return true if succesful, false on error
      */
-    bool load(const std::string &samplepath, void **data, int *format,
-                                         size_t *size, int *freq );
+    bool load( const std::string &samplepath,
+               void **data,
+               int *format,
+               size_t *size,
+               int *freq );
 
     /**
      * Get a list of available playback devices.
index 2629c29d1f92cd0e7110cde9d6fb6fe96b783b0c..7891bf78812c19f7cbd7e54ddfc90941ee1abc89 100644 (file)
@@ -88,9 +88,11 @@ SGXmlSound::~SGXmlSound()
 }
 
 void
-SGXmlSound::init(SGPropertyNode *root, SGPropertyNode *node,
-                 SGSampleGroup *sgrp, SGSampleGroup *avionics,
-                 const SGPath& currentDir)
+SGXmlSound::init( SGPropertyNode *root,
+                  SGPropertyNode *node,
+                  SGSampleGroup *sgrp,
+                  SGSampleGroup *avionics,
+                  const SGPath& path )
 {
 
    //
@@ -279,7 +281,7 @@ SGXmlSound::init(SGPropertyNode *root, SGPropertyNode *node,
       _sgrp = sgrp;
    }
    string soundFileStr = node->getStringValue("path", "");
-   _sample = new SGSoundSample(soundFileStr.c_str(), currentDir);
+   _sample = new SGSoundSample(soundFileStr.c_str(), path);
    if (!_sample->file_path().exists()) {
       throw sg_io_exception("XML sound: couldn't find file: '" + soundFileStr + "'");
    }
index 34761df0e4733f3546073ecd1988283556527f5c..576ead7b13084e804621f03ce2a871572268b885 100644 (file)
@@ -1,30 +1,26 @@
-// sound.hxx -- Sound class implementation
+///@file
+/// Sound class implementation
+///
+/// Provides a class to manage a single sound event including things like
+/// looping, volume and pitch changes.
 //
 // Started by Erik Hofman, February 2002
 //
 // Copyright (C) 2002  Erik Hofman - erik@ehofman.com
 //
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License as
-// published by the Free Software Foundation; either version 2 of the
-// License, or (at your option) any later version.
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Library General Public
+// License as published by the Free Software Foundation; either
+// version 2 of the License, or (at your option) any later version.
 //
-// This program is distributed in the hope that it will be useful, but
-// WITHOUT ANY WARRANTY; without even the implied warranty of
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-// General Public License for more details.
+// Library General Public License for more details.
 //
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-//
-// $Id$
-
-/** 
- * \file sound.hxx 
- * Provides a class to manage a single sound event including things
- * like looping, volume and pitch changes.
- */
+// You should have received a copy of the GNU Library General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA.
 
 #ifndef _SG_SOUND_HXX
 #define _SG_SOUND_HXX 1
@@ -71,6 +67,7 @@ public:
    * and a sound manager class has to be defined.
    *
    * A sound configuration file would look like this:
+   * @code{xml}
    *  <fx>
    *   <event_name>
    *    <name/> Define the name of the event. For reference only.
@@ -98,16 +95,20 @@ public:
    *   <event_name>
    *   </event_name>
    *  </fx>
+   * @endcode
    *
-   * @param root The root node of the programs property tree.
-   * @param child A pointer to the location of the current event as defined
-   * in the configuration file.
-   * @param sgrp A pointer to a pre-initialized sample group class.
-   * @param avionics A pointer to the pre-initialized avionics sample group.
-   * @param path The path where the audio files remain.
+   * @param root        The root node of the programs property tree.
+   * @param child       A pointer to the location of the current event as
+   *                    defined in the configuration file.
+   * @param sgrp        A pointer to a pre-initialized sample group class.
+   * @param avionics    A pointer to the pre-initialized avionics sample group.
+   * @param path        The path where the audio files remain.
    */
-  virtual void init (SGPropertyNode *, SGPropertyNode *, SGSampleGroup *,
-                     SGSampleGroup *, const SGPath& currentDir);
+  virtual void init( SGPropertyNode *root,
+                     SGPropertyNode *child,
+                     SGSampleGroup *sgrp,
+                     SGSampleGroup *avionics,
+                     const SGPath& path );
 
   /**
    * Check whether an event has happened and if action has to be taken.
index 15757faeeeb357c214c0dd3c5d0a06abe74d5a46..ef573a014b01e36b9732ed72b6a0900a29bdd558 100644 (file)
@@ -41,7 +41,7 @@ public:
     /**
      * Convenience constructor.
      *
-     * @param node The binding will be built from this node.
+     * @param commandName TODO
      */
     SGBinding(const std::string& commandName);
 
@@ -49,8 +49,10 @@ public:
    * Convenience constructor.
    *
    * @param node The binding will be built from this node.
+   * @param root Property root used while building binding.
    */
-  SGBinding (const SGPropertyNode * node, SGPropertyNode* root);
+  SGBinding( const SGPropertyNode *node,
+             SGPropertyNode *root );
 
 
   /**
@@ -97,6 +99,8 @@ public:
    * Read a binding from a property node.
    *
    * @param node The property node containing the binding.
+   * @param root The property root node used while building the binding from
+   *             \a node.
    */
   void read (const SGPropertyNode * node, SGPropertyNode* root);
 
index 9e92a7b0f396530e7496e18ea59f1e44b98315bb..3afcfc9103bf69d6eff446c039899d74f07c1362 100644 (file)
@@ -1,22 +1,21 @@
-/* -*-c++-*-
- *
- * Copyright (C) 2005-2012 Mathias Froehlich 
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- */
+///@file
+/// Pointer proxy doing reference counting.
+//
+// Copyright (C) 2005-2012 Mathias Froehlich
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Library General Public
+// License as published by the Free Software Foundation; either
+// version 2 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Library General Public License for more details.
+//
+// You should have received a copy of the GNU Library General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA.
 
 #ifndef SGSharedPtr_HXX
 #define SGSharedPtr_HXX
@@ -31,7 +30,7 @@ class SGWeakPtr;
 /// it is pointing to.
 /// The SGSharedPtr class handles reference counting and possible
 /// destruction if no nore references are in use automatically.
-/// Classes derived from @SGReferenced can be handled with SGSharedPtr.
+/// Classes derived from SGReferenced can be handled with SGSharedPtr.
 /// Once you have a SGSharedPtr available you can use it just like
 /// a usual pointer with the exception that you don't need to delete it.
 /// Such a reference is initialized by zero if not initialized with a
index 2ffabf0ac12370b535eb9c65f3675fe24b66bdad..7f4185ec421fad63aa33b4b5ae3f336dfc09baee 100644 (file)
@@ -101,11 +101,11 @@ public:
   /**
    * Register a new command with the manager.
    *
-   * @param name The command name.  Any existing command with
-   * the same name will silently be overwritten.
-   * @param command A pointer to a one-arg function returning
-   * a bool result.  The argument is always a const pointer to
-   * an SGPropertyNode (which may contain multiple values).
+   * @param name    The command name. Any existing command with the same name
+   *                will silently be overwritten.
+   * @param f       A pointer to a one-arg function returning a bool result. The
+   *                argument is always a const pointer to an SGPropertyNode
+   *                (which may contain multiple values).
    */
   void addCommand(const std::string& name, command_t f)
   { addCommandObject(name, new FunctionCommand(f)); }
index 082d12e4ef782558b15c4e7c76f602f36b5f17a0..cac9cc950e515e68ab57e1563084d1c9727743ec 100644 (file)
@@ -13,8 +13,6 @@
 
 #include <simgear/misc/sg_path.hxx>
 
-using std::string;
-\f
 ////////////////////////////////////////////////////////////////////////
 // Implementation of sg_location class.
 ////////////////////////////////////////////////////////////////////////
@@ -148,10 +146,10 @@ sg_throwable::getMessage () const
   return _message;
 }
 
-const string
+const std::string
 sg_throwable::getFormattedMessage () const
 {
-  return string(getMessage());
+  return std::string(getMessage());
 }
 
 void
@@ -204,7 +202,7 @@ sg_error::sg_error (const char* message, const char *origin)
 {
 }
 
-sg_error::sg_error (const string& message, const string& origin)
+sg_error::sg_error(const std::string& message, const std::string& origin)
   : sg_throwable(message.c_str(), origin.c_str())
 {
 }
@@ -212,7 +210,7 @@ sg_error::sg_error (const string& message, const string& origin)
 sg_error::~sg_error () throw ()
 {
 }
-\f
+
 ////////////////////////////////////////////////////////////////////////
 // Implementation of sg_exception class.
 ////////////////////////////////////////////////////////////////////////
@@ -227,7 +225,8 @@ sg_exception::sg_exception (const char* message, const char* origin)
 {
 }
 
-sg_exception::sg_exception (const string& message, const string& origin)
+sg_exception::sg_exception( const std::string& message,
+                            const std::string& origin )
   : sg_throwable(message.c_str(), origin.c_str())
 {
 }
@@ -235,7 +234,7 @@ sg_exception::sg_exception (const string& message, const string& origin)
 sg_exception::~sg_exception () throw ()
 {
 }
-\f
+
 ////////////////////////////////////////////////////////////////////////
 // Implementation of sg_io_exception.
 ////////////////////////////////////////////////////////////////////////
@@ -258,34 +257,36 @@ sg_io_exception::sg_io_exception (const char* message,
 {
 }
 
-sg_io_exception::sg_io_exception (const string& message, const string& origin)
+sg_io_exception::sg_io_exception( const std::string& message,
+                                  const std::string& origin )
   : sg_exception(message, origin)
 {
 }
 
-sg_io_exception::sg_io_exception (const string& message,
-                                 const sg_location &location,
-                                 const string& origin)
+sg_io_exception::sg_io_exception( const std::string& message,
+                                  const sg_location &location,
+                                  const std::string& origin )
   : sg_exception(message, origin),
     _location(location)
 {
 }
 
-sg_io_exception::sg_io_exception (const string &message, const SGPath& origin)
+sg_io_exception::sg_io_exception( const std::string &message,
+                                  const SGPath& origin )
     : sg_exception(message, origin.str())
 {
-    
+
 }
 
 sg_io_exception::~sg_io_exception () throw ()
 {
 }
 
-const string
+const std::string
 sg_io_exception::getFormattedMessage () const
 {
-  string ret = getMessage();
-  string loc = getLocation().asString();
+  std::string ret = getMessage();
+  std::string loc = getLocation().asString();
   if (loc.length()) {
     ret += "\n at ";
     ret += loc;
@@ -325,9 +326,9 @@ sg_format_exception::sg_format_exception (const char* message,
   setText(text);
 }
 
-sg_format_exception::sg_format_exception (const string& message,
-                                         const string& text,
-                                         const string& origin)
+sg_format_exception::sg_format_exception( const std::string& message,
+                                          const std::string& text,
+                                          const std::string& origin )
   : sg_exception(message, origin)
 {
   setText(text.c_str());
@@ -371,8 +372,8 @@ sg_range_exception::sg_range_exception (const char* message,
 {
 }
 
-sg_range_exception::sg_range_exception(const string& message,
-                                       const string& origin)
+sg_range_exception::sg_range_exception(const std::string& message,
+                                       const std::string& origin)
   : sg_exception(message, origin)
 {
 }
index 8aadebbc8f1a3a480d9400e1459ec0195639d455..93d664a2d9c6dc1af731ac68aeed6ef32fc1535d 100644 (file)
@@ -13,21 +13,18 @@ public:
 
     /**
      * Create an SGGuard object and lock the passed lockable object.
-     * @param SGLOCK A lockable object.
+     * @param l A lockable object.
      */
     inline SGGuard( SGLOCK& l ) : lock(l) { lock.lock(); }
 
     /**
-     * Destroy this object and unlock the locakable object.
+     * Destroy this object and unlock the lockable object.
      */
     inline ~SGGuard() { lock.unlock(); }
 
 private:
 
-    /**
-     * A lockable object.
-     */
-    SGLOCK& lock;
+    SGLOCK& lock; //!< A lockable object
 
 private:
     // Disable copying.
index 7f49b5d97f73775a38ccc8bbe9814875d43525fb..41c2cf306147eb512c0614907c2d86fb3c9c1ab3 100644 (file)
@@ -38,21 +38,21 @@ public:
     /**
      * Add an item to the end of the queue.
      *
-     * @param T object to add.
+     * @param item  object to add.
      */
     virtual void push( const T& item ) = 0;
 
     /**
      * View the item from the head of the queue.
      *
-     * @return T next available object.
+     * @return The next available object.
      */
     virtual T front() = 0;
 
     /**
      * Get an item from the head of the queue.
      *
-     * @return T next available object.
+     * @return The next available object.
      */
     virtual T pop() = 0;
 
@@ -86,12 +86,12 @@ public:
     /**
      * Destroy this object.
      */
-    ~SGLockedQueue() {}
+    virtual ~SGLockedQueue() {}
 
     /**
      * Returns whether this queue is empty (contains no elements).
      *
-     * @return bool True if queue is empty, otherwisr false.
+     * @return True if queue is empty, otherwise false.
      */
     virtual bool empty() {
        SGGuard<SGMutex> g(mutex);
@@ -101,7 +101,7 @@ public:
     /**
      * Add an item to the end of the queue.
      *
-     * @param T object to add.
+     * @param item object to add.
      */
     virtual void push( const T& item ) {
        SGGuard<SGMutex> g(mutex);
@@ -111,7 +111,7 @@ public:
     /**
      * View the item from the head of the queue.
      *
-     * @return T next available object.
+     * @return The next available object.
      */
     virtual T front() {
        SGGuard<SGMutex> g(mutex);
@@ -123,7 +123,7 @@ public:
     /**
      * Get an item from the head of the queue.
      *
-     * @return T next available object.
+     * @return The next available object.
      */
     virtual T pop() {
        SGGuard<SGMutex> g(mutex);
@@ -142,7 +142,7 @@ public:
     /**
      * Query the size of the queue
      *
-     * @return size_t size of queue.
+     * @return Size of queue.
      */
     virtual size_t size() {
        SGGuard<SGMutex> g(mutex);
@@ -178,7 +178,7 @@ public:
     /**
      * Destroy this queue.
      */
-    ~SGBlockingQueue() {}
+    virtual ~SGBlockingQueue() {}
 
     /**
      *
@@ -191,7 +191,7 @@ public:
     /**
      * Add an item to the end of the queue.
      *
-     * @param T object to add.
+     * @param item The object to add.
      */
     virtual void push( const T& item ) {
        SGGuard<SGMutex> g(mutex);
@@ -203,7 +203,7 @@ public:
      * View the item from the head of the queue.
      * Calling thread is not suspended
      *
-     * @return T next available object.
+     * @return The next available object.
      */
     virtual T front() {
        SGGuard<SGMutex> g(mutex);
@@ -219,7 +219,7 @@ public:
      * Get an item from the head of the queue.
      * If no items are available then the calling thread is suspended
      *
-     * @return T next available object.
+     * @return The next available object.
      */
     virtual T pop() {
        SGGuard<SGMutex> g(mutex);
@@ -238,7 +238,7 @@ public:
     /**
      * Query the size of the queue
      *
-     * @return size_t size of queue.
+     * @return Size of queue.
      */
     virtual size_t size() {
        SGGuard<SGMutex> g(mutex);
@@ -280,7 +280,7 @@ public:
     /**
      * Destroy this dequeue.
      */
-    ~SGBlockingDeque() {}
+    virtual ~SGBlockingDeque() {}
 
     /**
      *
@@ -301,7 +301,7 @@ public:
     /**
      * Add an item to the front of the queue.
      *
-     * @param T object to add.
+     * @param item The object to add.
      */
     virtual void push_front( const T& item ) {
     SGGuard<SGMutex> g(mutex);
@@ -312,7 +312,7 @@ public:
     /**
      * Add an item to the back of the queue.
      *
-     * @param T object to add.
+     * @param item The object to add.
      */
     virtual void push_back( const T& item ) {
     SGGuard<SGMutex> g(mutex);
@@ -324,7 +324,7 @@ public:
      * View the item from the head of the queue.
      * Calling thread is not suspended
      *
-     * @return T next available object.
+     * @return The next available object.
      */
     virtual T front() {
     SGGuard<SGMutex> g(mutex);
@@ -340,7 +340,7 @@ public:
      * Get an item from the head of the queue.
      * If no items are available then the calling thread is suspended
      *
-     * @return T next available object.
+     * @return The next available object.
      */
     virtual T pop_front() {
     SGGuard<SGMutex> g(mutex);
@@ -360,7 +360,7 @@ public:
      * Get an item from the tail of the queue.
      * If no items are available then the calling thread is suspended
      *
-     * @return T next available object.
+     * @return The next available object.
      */
     virtual T pop_back() {
     SGGuard<SGMutex> g(mutex);
@@ -379,7 +379,7 @@ public:
     /**
      * Query the size of the queue
      *
-     * @return size_t size of queue.
+     * @return Size of queue.
      */
     virtual size_t size() {
     SGGuard<SGMutex> g(mutex);
index 94d5e40524ab77d9fd2923f22f22a9d5752a0c51..d905c62443d293938935b89571cb18db73d901e3 100644 (file)
@@ -146,16 +146,16 @@ public:
     /**
      * Wait for this condition variable to be signaled.
      *
-     * @param SGMutex& reference to a locked mutex.
+     * @param mutex Reference to a locked mutex.
      */
-    void wait(SGMutex&);
+    void wait(SGMutex& mutex);
 
     /**
-     * Wait for this condition variable to be signaled for at most
-     * 'ms' milliseconds.
+     * Wait for this condition variable to be signaled for at most \a 'msec'
+     * milliseconds.
      *
-     * @param mutex reference to a locked mutex.
-     * @param ms milliseconds to wait for a signal.
+     * @param mutex Reference to a locked mutex.
+     * @param msec  Milliseconds to wait for a signal.
      *
      * @return
      */
index d59ee249e223cd196f8de3dc1320c0472c0196f7..c4f3a36f7486e437693b749231fd0067efad5b10 100644 (file)
@@ -116,13 +116,15 @@ public:
      * If you don't know your position when you call the SGTime
      * constructor, you can just use the first form (which assumes 0,
      * 0).
-     * @param lon_rad current longitude (radians)
-     * @param lat_rad current latitude (radians)
-     * @param root root path point to data file location (timezone, etc.)
-     * @param init_time provide an initialization time, 0 means use
-              current clock time */
-    SGTime( const SGGeod& location, const SGPath& root,
-               time_t init_time );
+     *
+     * @param location  Current geodetic location
+     * @param root      Root path point to data file location (timezone, etc.)
+     * @param init_time Provide an initialization time, 0 means use current
+     *                  clock time
+     */
+    SGTime( const SGGeod& location,
+            const SGPath& root,
+            time_t init_time );
 
     /**
      * Create an instance given a data file path.
@@ -140,12 +142,13 @@ public:
      * you to offset "sim" time relative to "real" time. The update()
      * method is designed to be called by the host application before
      * every frame.
-     * @param lon_rad current longitude (radians)
-     * @param lat_rad current latitude (radians)
-     * @param ct specify a unix time, otherwise specify 0 to use current
-              clock time
-     * @param warp an optional time offset specified in seconds.  This
-     *        allows us to advance or rewind "time" if we choose to.  */
+     *
+     * @param location  Current geodetic location
+     * @param ct        Specify a unix time, otherwise specify 0 to use current
+     *                  clock time
+     * @param warp      Optional time offset in seconds. This allows to advance
+     *                  or rewind "time".
+     */
     void update( const SGGeod& location, time_t ct, long int warp );
 
     /** Deprecated method. To be removed after the next release... */
@@ -158,9 +161,10 @@ public:
      * enough that your timezone may have changed as well. In the
      * FlightGear project we call updateLocal() every few minutes from
      * our periodic event manager.
-     * @param lon_rad current longitude (radians)
-     * @param lat_rad current latitude (radians)
-     * @param root base path containing time zone directory */
+     *
+     * @param location  Current geodetic location
+     * @param root      Bbase path containing time zone directory
+     */
     void updateLocal( const SGGeod& location, const std::string& root );
 
     /** @return current system/unix time in seconds */