summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/metaplot/examples/cpoint.h
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/metaplot/examples/cpoint.h')
-rw-r--r--Master/texmf-dist/doc/latex/metaplot/examples/cpoint.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/metaplot/examples/cpoint.h b/Master/texmf-dist/doc/latex/metaplot/examples/cpoint.h
new file mode 100644
index 00000000000..ebee071c23f
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/metaplot/examples/cpoint.h
@@ -0,0 +1,57 @@
+/* MetaContour, version 0.1 -------------------------------------- */
+/* Copyright(C) 2004, Brooks Moses */
+/* */
+/* This version of MetaContour is made available under the Gnu */
+/* Public License; see metacontour_main.cc for details. */
+/* */
+/* This is a very pre-release version of MetaContour, distributed */
+/* primarily as an example of a use of MetaPlot. It can be */
+/* compiled with gcc using the line: */
+/* */
+/* g++ metacontour.cc cpoint.cc metacontour_main.cc */
+/* */
+/*-----------------------------------------------------------------*/
+
+/* Class for 2D points with one data value each */
+
+#include<string>
+#include<valarray>
+using namespace std;
+
+struct cpoint {
+ double x;
+ double y;
+ double z;
+
+ cpoint();
+ cpoint(double, double, double);
+
+ cpoint interpolateto(cpoint, double);
+ cpoint partwayto(cpoint, double);
+ static double saddlepoint(cpoint, cpoint, cpoint, cpoint);
+
+ string metapoint();
+};
+
+
+class cparray {
+ valarray<cpoint>* a;
+ int i;
+ int j;
+public:
+ cparray(int x, int y); // note: no default constructor
+ cparray(const cparray&);
+ cparray& operator=(const cparray&);
+ ~cparray();
+
+ int size() const { return i*j; }
+ int i_dim() const { return i; }
+ int j_dim() const { return j; }
+
+ cpoint& operator()(int x, int y); // Fortran-style subscripts
+ cpoint operator()(int x, int y) const;
+
+ valarray<cpoint>& array() { return *a; }
+};
+
+