diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2018-10-22 19:28:45 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2018-10-22 19:28:45 (GMT) |
commit | 6130024322fe3ba0694b2dd8bfbacc834ed22aed (patch) | |
tree | ecb884fbeba7a3ea00a5078dc252ff6021a003af /tksao | |
parent | 37af68eb5fe5865d15299e23412e63185f72e3fb (diff) | |
download | blt-6130024322fe3ba0694b2dd8bfbacc834ed22aed.zip blt-6130024322fe3ba0694b2dd8bfbacc834ed22aed.tar.gz blt-6130024322fe3ba0694b2dd8bfbacc834ed22aed.tar.bz2 |
new mask
Diffstat (limited to 'tksao')
-rw-r--r-- | tksao/frame/fitsmask.C | 17 | ||||
-rw-r--r-- | tksao/frame/fitsmask.h | 3 | ||||
-rw-r--r-- | tksao/frame/frame.C | 10 | ||||
-rw-r--r-- | tksao/frame/frload.C | 2 |
4 files changed, 22 insertions, 10 deletions
diff --git a/tksao/frame/fitsmask.C b/tksao/frame/fitsmask.C index 50cadc6..c080085 100644 --- a/tksao/frame/fitsmask.C +++ b/tksao/frame/fitsmask.C @@ -6,14 +6,16 @@ #include "fitsmask.h" #include "base.h" -#include "fitsimage.h" +#include "context.h" -FitsMask::FitsMask(Base* pp, Context* cc, char* clr, int mrk) - : parent_(pp), context_(cc) +FitsMask::FitsMask(Base* pp, char* clr, int mrk) { + context_ = new Context(); + context_->parent(pp); + colorName_ = dupstr(clr); - color_ = parent_->getXColor(colorName_); - parent_->encodeTrueColor(color_, trueColor_); + color_ = pp->getXColor(colorName_); + pp->encodeTrueColor(color_, trueColor_); mark_ = mrk; next_ = NULL; @@ -24,5 +26,10 @@ FitsMask::~FitsMask() { if (colorName_) delete [] colorName_; + + if (context_) { + context_->unload(); + delete context_; + } } diff --git a/tksao/frame/fitsmask.h b/tksao/frame/fitsmask.h index 5c41cae..393e987 100644 --- a/tksao/frame/fitsmask.h +++ b/tksao/frame/fitsmask.h @@ -12,7 +12,6 @@ class Context; class FitsMask { private: - Base* parent_; Context* context_; char* colorName_; @@ -26,7 +25,7 @@ class FitsMask { FitsMask* next_; public: - FitsMask(Base*, Context*, char*, int); + FitsMask(Base*, char*, int); virtual ~FitsMask(); Context* context() {return context_;} diff --git a/tksao/frame/frame.C b/tksao/frame/frame.C index f0ff5e7..d60a032 100644 --- a/tksao/frame/frame.C +++ b/tksao/frame/frame.C @@ -366,6 +366,9 @@ void Frame::unloadFits() context->unload(); + // delete any masks + mask.deleteAll(); + FrameBase::unloadFits(); } @@ -798,10 +801,13 @@ void Frame::loadFitsMMapIncrCmd(const char* fn, LayerType ll) { switch (ll) { case IMG: - Base::loadFitsMMapIncrCmd(fn,ll); + Base::loadFitsMMapIncrCmd(fn, ll); break; case MASK: - + FitsMask* msk = new FitsMask(this, maskColorName, maskMark); + mask.append(msk); + FitsImage* img = new FitsImageFitsMMapIncr(msk->context(), interp, fn, 1); + loadDone(msk->context()->load(MMAPINCR, fn, img)); break; } } diff --git a/tksao/frame/frload.C b/tksao/frame/frload.C index 8645a9d..352bccf 100644 --- a/tksao/frame/frload.C +++ b/tksao/frame/frload.C @@ -695,7 +695,7 @@ void Base::loadMosaicImageWFPC2SocketGZCmd(int s, const char* fn) { unloadFits(); FitsImage* img = new FitsImageFitsSocketGZ(currentContext, interp, - s, fn, FitsFile::NOFLUSH, 1); + s, fn, FitsFile::NOFLUSH, 1); loadDone(currentContext->loadMosaicWFPC2(SOCKETGZ, fn, img), IMG); } |