summaryrefslogtreecommitdiffstats
path: root/tkblt/generic/tkbltGrElemLine.h
diff options
context:
space:
mode:
Diffstat (limited to 'tkblt/generic/tkbltGrElemLine.h')
-rw-r--r--tkblt/generic/tkbltGrElemLine.h184
1 files changed, 0 insertions, 184 deletions
diff --git a/tkblt/generic/tkbltGrElemLine.h b/tkblt/generic/tkbltGrElemLine.h
deleted file mode 100644
index f937615..0000000
--- a/tkblt/generic/tkbltGrElemLine.h
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * Smithsonian Astrophysical Observatory, Cambridge, MA, USA
- * This code has been modified under the terms listed below and is made
- * available under the same terms.
- */
-
-/*
- * Copyright 1993-2004 George A Howlett.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef __BltGrElemLine_h__
-#define __BltGrElemLine_h__
-
-#include <tk.h>
-
-#include "tkbltGraph.h"
-#include "tkbltGrElem.h"
-#include "tkbltGrPenLine.h"
-
-namespace Blt {
-
- typedef struct {
- Point2d *screenPts;
- int nScreenPts;
- int *styleMap;
- int *map;
- } MapInfo;
-
- typedef struct {
- Point2d *points;
- int length;
- int *map;
- } GraphPoints;
-
- typedef struct {
- int start;
- GraphPoints screenPts;
- } bltTrace;
-
- typedef struct {
- Weight weight;
- LinePen* penPtr;
- GraphPoints symbolPts;
- GraphSegments xeb;
- GraphSegments yeb;
- int symbolSize;
- int errorBarCapWidth;
- } LineStyle;
-
- typedef struct {
- Element* elemPtr;
- const char* label;
- char** tags;
- Axis* xAxis;
- Axis* yAxis;
- ElemCoords coords;
- ElemValues* w;
- ElemValues* xError;
- ElemValues* yError;
- ElemValues* xHigh;
- ElemValues* xLow;
- ElemValues* yHigh;
- ElemValues* yLow;
- int hide;
- int legendRelief;
- Chain* stylePalette;
- LinePen *builtinPenPtr;
- LinePen *activePenPtr;
- LinePen *normalPenPtr;
- LinePenOptions builtinPen;
-
- // derived
- Tk_3DBorder fillBg;
- int reqMaxSymbols;
- double rTolerance;
- int scaleSymbols;
- int reqSmooth;
- int penDir;
- } LineElementOptions;
-
- class LineElement : public Element {
- public:
- enum PenDirection {INCREASING, DECREASING, BOTH_DIRECTIONS};
- enum Smoothing {LINEAR, STEP, CUBIC, QUADRATIC, CATROM};
-
- protected:
- LinePen* builtinPenPtr;
- Smoothing smooth_;
- Point2d *fillPts_;
- int nFillPts_;
- GraphPoints symbolPts_;
- GraphPoints activePts_;
- GraphSegments xeb_;
- GraphSegments yeb_;
- int symbolInterval_;
- int symbolCounter_;
- Chain* traces_;
-
- void drawCircle(Display*, Drawable, LinePen*, int, Point2d*, int);
- void drawSquare(Display*, Drawable, LinePen*, int, Point2d*, int);
- void drawSCross(Display*, Drawable, LinePen*, int, Point2d*, int);
- void drawCross(Display*, Drawable, LinePen*, int, Point2d*, int);
- void drawDiamond(Display*, Drawable, LinePen*, int, Point2d*, int);
- void drawArrow(Display*, Drawable, LinePen*, int, Point2d*, int);
-
- protected:
- int scaleSymbol(int);
- void getScreenPoints(MapInfo*);
- void reducePoints(MapInfo*, double);
- void generateSteps(MapInfo*);
- void generateSpline(MapInfo*);
- void generateParametricSpline(MapInfo*);
- void mapSymbols(MapInfo*);
- void mapActiveSymbols();
- void mergePens(LineStyle**);
- int outCode(Region2d*, Point2d*);
- int clipSegment(Region2d*, int, int, Point2d*, Point2d*);
- void saveTrace(int, int, MapInfo*);
- void freeTraces();
- void mapTraces(MapInfo*);
- void mapFillArea(MapInfo*);
- void mapErrorBars(LineStyle**);
- void reset();
- int closestTrace();
- void closestPoint(ClosestSearch*);
- void drawSymbols(Drawable, LinePen*, int, int, Point2d*);
- void drawTraces(Drawable, LinePen*);
- void drawValues(Drawable, LinePen*, int, Point2d*, int*);
- void setLineAttributes(PSOutput*, LinePen*);
- void printTraces(PSOutput*, LinePen*);
- void printValues(PSOutput*, LinePen*, int, Point2d*, int*);
- void printSymbols(PSOutput*, LinePen*, int, int, Point2d*);
- double distanceToLine(int, int, Point2d*, Point2d*, Point2d*);
- double distanceToX(int, int, Point2d*, Point2d*, Point2d*);
- double distanceToY(int, int, Point2d*, Point2d*, Point2d*);
- int simplify(Point2d*, int, int, double, int*);
- double findSplit(Point2d*, int, int, int*);
-
- int naturalSpline(Point2d*, int, Point2d*, int);
- int quadraticSpline(Point2d*, int, Point2d*, int);
- int naturalParametricSpline(Point2d*, int, Region2d*, int, Point2d*, int);
- int catromParametricSpline(Point2d*, int, Point2d*, int);
-
- public:
- LineElement(Graph*, const char*, Tcl_HashEntry*);
- virtual ~LineElement();
-
- ClassId classId() {return CID_ELEM_LINE;}
- const char* className() {return "LineElement";}
- const char* typeName() {return "line";}
-
- int configure();
- void map();
- void extents(Region2d*);
- void closest();
- void draw(Drawable);
- void drawActive(Drawable);
- void drawSymbol(Drawable, int, int, int);
- void print(PSOutput*);
- void printActive(PSOutput*);
- void printSymbol(PSOutput*, double, double, int);
- };
-};
-
-#endif