diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2017-02-17 22:10:13 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2017-02-17 22:10:13 (GMT) |
commit | 33275f0fcd0068455b55182387fdc84afb87e7d8 (patch) | |
tree | badd8b3a946b4e72e29d8de7dc7585798bd9eeee | |
parent | 22ab08a3da8a9b05a504a715260dcf96b191b626 (diff) | |
download | blt-33275f0fcd0068455b55182387fdc84afb87e7d8.zip blt-33275f0fcd0068455b55182387fdc84afb87e7d8.tar.gz blt-33275f0fcd0068455b55182387fdc84afb87e7d8.tar.bz2 |
fix has contours issue
-rw-r--r-- | tksao/frame/context.C | 122 | ||||
-rw-r--r-- | tksao/frame/context.h | 6 |
2 files changed, 81 insertions, 47 deletions
diff --git a/tksao/frame/context.C b/tksao/frame/context.C index 8b23ddd..0762a17 100644 --- a/tksao/frame/context.C +++ b/tksao/frame/context.C @@ -454,16 +454,20 @@ void Context::contourCreateFV(const char* color, int width, int dash, } } } + + hasContour_ =1; } void Context::contourDeleteFV() { fvcontour_.lcontourlevel().deleteAll(); + hasContour_ =0; } void Context::contourDeleteAux() { auxcontours_.deleteAll(); + hasAuxContour_ =0; } void Context::contourListFV(ostream& str, Coord::CoordSystem sys, @@ -472,6 +476,9 @@ void Context::contourListFV(ostream& str, Coord::CoordSystem sys, if (!cfits) return; + if (!hasContour_) + return; + contourList(str, sys, sky, fvcontour_.lcontourlevel()); } @@ -481,6 +488,9 @@ void Context::contourListAux(ostream& str, Coord::CoordSystem sys, if (!cfits) return; + if (!hasAuxContour_) + return; + contourList(str, sys, sky, auxcontours_); } @@ -586,16 +596,20 @@ void Context::contourPS(Widget::PSColorSpace cs) // render back to front // aux contours - if (auxcontours_.tail()) - do - auxcontours_.current()->ps(cs); - while (auxcontours_.previous()); + if (hasAuxContour_) { + if (auxcontours_.tail()) + do + auxcontours_.current()->ps(cs); + while (auxcontours_.previous()); + } - List<ContourLevel>& cc = fvcontour_.lcontourlevel(); - if (cc.head()) - do - cc.current()->ps(cs); - while (cc.next()); + if (hasContour_) { + List<ContourLevel>& cc = fvcontour_.lcontourlevel(); + if (cc.head()) + do + cc.current()->ps(cs); + while (cc.next()); + } } void Context::contourX11(Pixmap pm, Coord::InternalSystem sys, @@ -606,16 +620,20 @@ void Context::contourX11(Pixmap pm, Coord::InternalSystem sys, // render back to front // aux contours - if (auxcontours_.tail()) - do - auxcontours_.current()->render(pm, sys, width, height); - while (auxcontours_.previous()); + if (hasAuxContour_) { + if (auxcontours_.tail()) + do + auxcontours_.current()->render(pm, sys, width, height); + while (auxcontours_.previous()); + } - List<ContourLevel>& cc = fvcontour_.lcontourlevel(); - if (cc.head()) - do - cc.current()->render(pm, sys, width, height); - while (cc.next()); + if (hasContour_) { + List<ContourLevel>& cc = fvcontour_.lcontourlevel(); + if (cc.head()) + do + cc.current()->render(pm, sys, width, height); + while (cc.next()); + } } #ifdef MAC_OSX_TK @@ -626,16 +644,20 @@ void Context::contourMacOSX() // render back to front // aux contours - if (auxcontours_.tail()) - do - auxcontours_.current()->macosx(); - while (auxcontours_.previous()); + if (hasAuxContour_) { + if (auxcontours_.tail()) + do + auxcontours_.current()->macosx(); + while (auxcontours_.previous()); + } - List<ContourLevel>& cc = fvcontour_.lcontourlevel(); - if (cc.head()) - do - cc.current()->macosx(); - while (cc.next()); + if (hasContour_) { + List<ContourLevel>& cc = fvcontour_.lcontourlevel(); + if (cc.head()) + do + cc.current()->macosx(); + while (cc.next()); + } } #endif @@ -647,16 +669,20 @@ void Context::contourWin32() // render back to front // aux contours - if (auxcontours_.tail()) - do - auxcontours_.current()->win32(); - while (auxcontours_.previous()); + if (hasAuxContour_) { + if (auxcontours_.tail()) + do + auxcontours_.current()->win32(); + while (auxcontours_.previous()); + } - List<ContourLevel>& cc = fvcontour_.lcontourlevel(); - if (cc.head()) - do - cc.current()->win32(); - while (cc.next()); + if (hasContour_) { + List<ContourLevel>& cc = fvcontour_.lcontourlevel(); + if (cc.head()) + do + cc.current()->win32(); + while (cc.next()); + } } #endif @@ -2527,6 +2553,8 @@ void Context::unload() fvcontour_.lcontourlevel().deleteAll(); auxcontours_.deleteAll(); + hasContour_ =0; + hasAuxContour_ =0; resetSecMode(); updateClip(); @@ -2734,16 +2762,20 @@ void Context::updateContours(const Matrix& mx) return; // aux contours - if (auxcontours_.head()) - do - auxcontours_.current()->updateCoords(mx); - while (auxcontours_.next()); + if (hasAuxContour_) { + if (auxcontours_.head()) + do + auxcontours_.current()->updateCoords(mx); + while (auxcontours_.next()); + } - List<ContourLevel>& cc = fvcontour_.lcontourlevel(); - if (cc.head()) - do - cc.current()->updateCoords(mx); - while (cc.next()); + if (hasContour_) { + List<ContourLevel>& cc = fvcontour_.lcontourlevel(); + if (cc.head()) + do + cc.current()->updateCoords(mx); + while (cc.next()); + } } void Context::updateSlice(int id, int ss) diff --git a/tksao/frame/context.h b/tksao/frame/context.h index eb39de5..d83a312 100644 --- a/tksao/frame/context.h +++ b/tksao/frame/context.h @@ -69,6 +69,8 @@ class Context { FVContour fvcontour_; List<ContourLevel> auxcontours_; + int hasContour_; + int hasAuxContour_; protected: void binFinish(); @@ -149,8 +151,8 @@ class Context { FitsZBound* getDataParams(FrScale::SecMode); // return bbox in IMAGE Vector getMinMax(); - int hasContour() {return !fvcontour_.isEmpty();} - int hasContourAux() {return !auxcontours_.isEmpty();} + int hasContour() {return hasContour_;} + int hasContourAux() {return hasAuxContour_;} double* histequ() {return frScale.histequ(fits);} Coord::Orientation IRAFOrientation(Coord::Orientation oo) |