From 2b15e1aff433a1013cc13107556eb6a897bfb744 Mon Sep 17 00:00:00 2001 From: William Joye Date: Fri, 17 Mar 2017 16:22:53 -0400 Subject: Region: add filled region support for circle, ellipse, box, polygon --- tksao/frame/basefill.C | 109 ------------------------------------------------- tksao/frame/basefill.h | 41 ------------------- 2 files changed, 150 deletions(-) delete mode 100644 tksao/frame/basefill.C delete mode 100644 tksao/frame/basefill.h diff --git a/tksao/frame/basefill.C b/tksao/frame/basefill.C deleted file mode 100644 index 91e5171..0000000 --- a/tksao/frame/basefill.C +++ /dev/null @@ -1,109 +0,0 @@ -// Copyright (C) 1999-2016 -// Smithsonian Astrophysical Observatory, Cambridge, MA, USA -// For conditions of distribution and use, see copyright notice in "copyright" - -#include - -#include "basefill.h" - -// BaseFill - -BaseFill::BaseFill(const BaseFill& a) -{ - fill_ = a.fill_; -} - -BaseFill::BaseFill() -{ - fill_ =0; -} - -BaseFill::BaseFill(int ff) -{ - fill_ =ff; -} - -// BaseFillEllipse - -BaseFillEllipse::BaseFillEllipse(const BaseFillEllipse& a) : BaseFill(a) {} - -BaseFillEllipse::BaseFillEllipse() : BaseFill() {} - -BaseFillEllipse::BaseFillEllipse(int ff) : BaseFill(ff) {} - -void BaseFillEllipse::renderXCircleDraw(Display* display, Drawable drawable, - GC lgc, - Vector& st, Vector& size, - int a1, int aa) -{ - if (fill_) - XFillArc(display, drawable, lgc, st[0], st[1], size[0], size[1], a1, aa); - else - XDrawArc(display, drawable, lgc, st[0], st[1], size[0], size[1], a1, aa); -} - -void BaseFillEllipse::renderXEllipseDraw(Display* display, Drawable drawable, - GC lgc, - XPoint* pts, int cnt) -{ - if (fill_) - XFillPolygon(display, drawable, lgc, pts, cnt, Convex, CoordModeOrigin); - else - XDrawLines(display, drawable, lgc, pts, cnt, CoordModeOrigin); -} - -void BaseFillEllipse::renderPSCircleDraw(Base* parent, - Vector& cc, double l, - float a1, float a2) -{ - ostringstream str; - str << "newpath " - << cc.TkCanvasPs(parent->getCanvas()) << ' ' - << l << ' ' - << a1 << ' ' << a2 << ' ' - << "arc "; - if (fill_) - str << "fill"; - else - str << "stroke"; - str << endl << ends; - - Tcl_AppendResult(parent->interp, str.str().c_str(), NULL); -} - -void BaseFillEllipse::renderPSEllipseArcDraw(Base* parent, Vector& center, - Vector& tt0, Vector& xx1, - Vector& xx2, Vector& tt1) -{ - ostringstream str; - if (fill_) { - Vector cc = parent->mapFromRef(center,Coord::CANVAS); - - str << "newpath " - << tt0.TkCanvasPs(parent->getCanvas()) << ' ' - << "moveto " - << xx1.TkCanvasPs(parent->getCanvas()) << ' ' - << xx2.TkCanvasPs(parent->getCanvas()) << ' ' - << tt1.TkCanvasPs(parent->getCanvas()) << ' ' - << "curveto fill" << endl - << "newpath " - << cc.TkCanvasPs(parent->getCanvas()) << ' ' - << "moveto " - << tt0.TkCanvasPs(parent->getCanvas()) << ' ' - << "lineto " - << tt1.TkCanvasPs(parent->getCanvas()) << ' ' - << "lineto closepath gsave" << endl - << "1 setlinejoin .75 setlinewidth stroke" << endl - << "grestore fill" << endl << ends; - } - else - str << "newpath " - << tt0.TkCanvasPs(parent->getCanvas()) << ' ' - << "moveto " - << xx1.TkCanvasPs(parent->getCanvas()) << ' ' - << xx2.TkCanvasPs(parent->getCanvas()) << ' ' - << tt1.TkCanvasPs(parent->getCanvas()) << ' ' - << "curveto stroke" << endl << ends; - - Tcl_AppendResult(parent->interp, str.str().c_str(), NULL); -} diff --git a/tksao/frame/basefill.h b/tksao/frame/basefill.h deleted file mode 100644 index 5e2dd2c..0000000 --- a/tksao/frame/basefill.h +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (C) 1999-2016 -// Smithsonian Astrophysical Observatory, Cambridge, MA, USA -// For conditions of distribution and use, see copyright notice in "copyright" - -#ifndef __basefill_h__ -#define __basefill_h__ - -#include "vector.h" -#include "base.h" - -class BaseFill { - protected: - int fill_; - - protected: - void doit(); - - public: - BaseFill(); - BaseFill(int); - BaseFill(const BaseFill& a); - - void fill(int ff) {fill_ = ff;} - int getFill() {return fill_;} -}; - -class BaseFillEllipse : public BaseFill { - protected: - void renderXCircleDraw(Display*, Drawable, GC, Vector&, Vector&, int, int); - void renderXEllipseDraw(Display*, Drawable, GC, XPoint*, int); - void renderPSCircleDraw(Base*, Vector&, double, float, float); - void renderPSEllipseArcDraw(Base*, Vector&, Vector&, Vector&, - Vector&, Vector&); - - public: - BaseFillEllipse(); - BaseFillEllipse(int); - BaseFillEllipse(const BaseFillEllipse& a); -}; - -#endif -- cgit v0.12