]> git.mxchange.org Git - simgear.git/commitdiff
Modified Files:
authorfrohlich <frohlich>
Sat, 2 Dec 2006 15:56:55 +0000 (15:56 +0000)
committerfrohlich <frohlich>
Sat, 2 Dec 2006 15:56:55 +0000 (15:56 +0000)
interpolater.cxx interpolater.hxx: Enable reading tables directly
from our dom like tree.

simgear/math/interpolater.cxx
simgear/math/interpolater.hxx

index ae2af9b65ed0ecf51124e3f66cebca146902ae13..59caa2fcaa636b5ded7549d785f9e2fd1dec12fd 100644 (file)
@@ -29,6 +29,7 @@
 
 #include <simgear/debug/logstream.hxx>
 #include <simgear/misc/sgstream.hxx>
+#include <simgear/props/props.hxx>
 
 #include "interpolater.hxx"
 
@@ -39,6 +40,15 @@ SGInterpTable::SGInterpTable()
 {
 }
 
+SGInterpTable::SGInterpTable(const SGPropertyNode* interpolation) 
+{
+    if (!interpolation)
+        return;
+    std::vector<SGPropertyNode_ptr> entries = interpolation->getChildren("entry");
+    for (unsigned i = 0; i < entries.size(); ++i)
+        addEntry(entries[i]->getDoubleValue("ind", 0.0),
+                 entries[i]->getDoubleValue("dep", 0.0));
+}
 
 // Constructor -- loads the interpolation table from the specified
 // file
index 1681d9d3c1ff401e867c26078e9149806c2680d2..797ddf4fcb3079bbc9b14053e830a436a4e1b1e3 100644 (file)
@@ -42,6 +42,8 @@
 #include STL_STRING
 SG_USING_STD(string);
 
+class SGPropertyNode;
+
 /**
  * A class that provids a simple linear 2d interpolation lookup table.
  * The actual table is expected to be loaded from a file.  The
@@ -56,6 +58,13 @@ public:
      */
     SGInterpTable();
 
+    /**
+     * Constructor. Loads the interpolation table from an interpolation
+     * property node.
+     * @param interpolation property node having entry children
+     */
+    SGInterpTable(const SGPropertyNode* interpolation);
+
     /**
      * Constructor. Loads the interpolation table from the specified file.
      * @param file name of interpolation file