diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/metaplot/examples/cpoint.h')
-rw-r--r-- | Master/texmf-dist/doc/latex/metaplot/examples/cpoint.h | 57 |
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; } +}; + + |