diff options
Diffstat (limited to 'samples/OpenGL/qt_terr/terrain.h')
-rw-r--r-- | samples/OpenGL/qt_terr/terrain.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/samples/OpenGL/qt_terr/terrain.h b/samples/OpenGL/qt_terr/terrain.h new file mode 100644 index 0000000..3382a4c --- /dev/null +++ b/samples/OpenGL/qt_terr/terrain.h @@ -0,0 +1,33 @@ +#ifndef TERRAIN_H
+#define TERRAIN_H
+
+#include "quad.h"
+
+#include <vector>
+#include <math.h>
+
+class Terrain : public Quad
+{
+public:
+ double z_mean_;
+ double z_mean() {
+ if( isnan(z_mean_) ) {
+ return z_mean_ =
+ ( z[0][0] + z[0][1] +
+ z[1][0] + z[1][1] ) / 4.;
+ }
+ return z_mean_;
+ };
+ double z[2][2];
+
+public:
+ Terrain(std::vector<double>* V_) : Quad(V_) { z_mean_ = NAN; }
+
+ virtual void split();
+ virtual void track_down(double x, double y, double nz, int levels);
+
+/*protected:
+ virtual void set_range(double nx1, double nx2, double ny1, double ny2);*/
+};
+
+#endif/*TERRAIN_H*/
|