]> git.mxchange.org Git - simgear.git/blobdiff - simgear/props/propertyObject.hxx
scenery: Use correct property root in xml loading.
[simgear.git] / simgear / props / propertyObject.hxx
index 33921c7a9b2ebc3461e68d8432c553d563c14ed6..a6d357f89d817ea40f07027a23f5d884b5503213 100644 (file)
@@ -28,6 +28,8 @@ class PropertyObjectBase
 public:
   static void setDefaultRoot(SGPropertyNode* aRoot);
   
+  PropertyObjectBase();
+  
   PropertyObjectBase(const PropertyObjectBase& aOther);
     
   PropertyObjectBase(const char* aChild);
@@ -57,6 +59,8 @@ template <typename T>
 class PropertyObject : PropertyObjectBase
 {
 public:
+  PropertyObject();
+  
   /**
    * Create from path relative to the default root, and option default value
    */
@@ -143,7 +147,34 @@ public:
   
   }
   
+// copy-constructor
+  PropertyObject(const PropertyObject<std::string>& aOther) :
+    PropertyObjectBase(aOther)
+  {
+  }
 
+// create form
+  static PropertyObject<std::string> create(const char* aPath, const std::string& aValue)
+  {
+    PropertyObject<std::string> p(aPath);
+    p = aValue;
+    return p;
+  }
+  
+  static PropertyObject<std::string> create(SGPropertyNode* aNode, const std::string& aValue)
+  {
+    PropertyObject<std::string> p(aNode);
+    p = aValue;
+    return p;
+  }
+
+  static PropertyObject<std::string> create(SGPropertyNode* aNode, const char* aChild, const std::string& aValue)
+  {
+    PropertyObject<std::string> p(aNode, aChild);
+    p = aValue;
+    return p;
+  }
+  
   
   operator std::string () const
   {
@@ -193,11 +224,9 @@ private:
 
 } // of namespace simgear
 
-/*
 typedef simgear::PropertyObject<double> SGPropObjDouble;
 typedef simgear::PropertyObject<bool> SGPropObjBool;
 typedef simgear::PropertyObject<std::string> SGPropObjString;
 typedef simgear::PropertyObject<long> SGPropObjInt;
-*/
 
 #endif