]> git.mxchange.org Git - simgear.git/blobdiff - simgear/misc/sg_path.hxx
Fix BTG writer for non-included index arrays.
[simgear.git] / simgear / misc / sg_path.hxx
index 41b7d744b49552c2f89bacfb04c5c2482184a2d6..0684d5701927b5f7b0bb320218a1b6dd06280ec3 100644 (file)
@@ -58,6 +58,7 @@ public:
     /** Default constructor */
     SGPath();
 
+    /** Copy contructor */
     SGPath(const SGPath& p);
     
     SGPath& operator=(const SGPath& p);
@@ -68,6 +69,13 @@ public:
      */
     SGPath( const std::string& p );
 
+    /**
+     * Construct a path based on the starting path provided and a relative subpath
+     * @param p initial path
+     * @param r relative subpath
+     */
+    SGPath( const SGPath& p, const std::string& r );
+
     /** Destructor */
     ~SGPath();
 
@@ -131,7 +139,12 @@ public:
      * Get the path string
      * @return path in "C" string (ptr to char array) form.
      */
-    const char* c_str() { return path.c_str(); }
+    const char* c_str() const { return path.c_str(); }
+
+    /**
+     * Get the path string in OS native form
+     */
+    std::string str_native() const;
 
     /**
      * Determine if file exists by attempting to fopen it.
@@ -147,6 +160,22 @@ public:
 
     bool isFile() const;
     bool isDir() const;
+    
+    /**
+     * Opposite sense to isAbsolute
+     */
+    bool isRelative() const { return !isAbsolute(); }
+    
+    /**
+     * Is this an absolute path?
+     * I.e starts with a directory seperator, or a single character + colon
+     */
+    bool isAbsolute() const;
+    
+    /**
+     * check for default constructed path
+     */
+    bool isNull() const;
 private:
 
     void fix();