Ignore:
Timestamp:
07/15/03 15:05:21 (22 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Cosy/gui
Files:
2 deleted
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Cosy/gui/GuiLinkDef.h

    r1819 r2278  
    1818
    1919#pragma link C++ class MGCosy+;
    20 #pragma link C++ class MGStarguider+;
    2120
    2221#endif
  • trunk/MagicSoft/Cosy/gui/MGAccuracy.cc

    r1953 r2278  
    170170
    171171MGAccuracy::MGAccuracy(const TGWindow* p, const UInt_t w)
    172 : MGEmbeddedCanvas("Accuracy", p, w, 75*4)
     172: MGEmbeddedCanvas("Accuracy", p, w, 300)
    173173{
    174174    DrawCoordinateSystem();
  • trunk/MagicSoft/Cosy/gui/MGCosy.cc

    r2069 r2278  
    5555    kPB_DECp,
    5656    kPB_DECm,
     57    kPB_ZDp,
     58    kPB_ZDm,
     59    kPB_AZp,
     60    kPB_AZm,
    5761    kPB_LoadBending,
    5862    kPB_ResetBending,
    5963    kPB_CALIBSE,
    6064    kCB_PredefPos,
     65    kCB_StarList,
    6166
    6267    // kLog
     
    8590    TGPopupMenu *logmenu = new TGPopupMenu(gClient->GetRoot());
    8691    logmenu->AddEntry("&Copy Selected", kLogCopy);
    87     logmenu->AddEntry("Clear all",      kLogClear);
     92    logmenu->AddEntry("&Select All",    kLogSelect);
    8893    logmenu->AddSeparator();
    89     logmenu->AddEntry("Select All",     kLogSelect);
     94    logmenu->AddEntry("Clear &all",     kLogClear);
    9095    /*
    9196     logmenu->AddSeparator();
     
    9398     */
    9499    logmenu->AddSeparator();
    95     logmenu->AddEntry("Save",           kLogSave);
    96     logmenu->AddEntry("Save append",    kLogAppend);
     100    logmenu->AddEntry("Sa&ve",          kLogSave);
     101    logmenu->AddEntry("Save a&ppend",   kLogAppend);
    97102    logmenu->Associate(this);
    98103
     
    160165    fList->Add(fLabel2);
    161166    fList->Add(fLabel3);
    162 
     167/*
    163168    l = new TGLabel(f, "Offset-Zd:");
    164169    l->Move(x-60, y+102);
     
    177182    fList->Add(fOffsetZd);
    178183    fList->Add(fOffsetAz);
    179 
     184*/
    180185    l = new TGLabel(f, "Ra (estimated):");
    181     l->Move(x-60, y+142);
     186    l->Move(x-60, y+142-20);
    182187    fList->Add(l);
    183188
    184189    l = new TGLabel(f, "Ra (nominal):");
    185     l->Move(x-60, y+159);
     190    l->Move(x-60, y+159-20);
    186191    fList->Add(l);
    187192
    188193    l = new TGLabel(f, "Dec (estimated):");
    189     l->Move(x-60, y+182);
     194    l->Move(x-60, y+182-20);
    190195    fList->Add(l);
    191196
    192197    l = new TGLabel(f, "Dec (nominal):");
    193     l->Move(x-60, y+199);
     198    l->Move(x-60, y+199-20);
    194199    fList->Add(l);
    195200
     
    214219    fZdSoll->SetTextJustify(kTextRight);
    215220    fAzSoll->SetTextJustify(kTextRight);
    216     fRaEst->Move(x+30, y+142);
    217     fRaSoll->Move(x+30, y+159);
    218     fDecEst->Move(x+30, y+182);
    219     fDecSoll->Move(x+30, y+199);
     221    fRaEst->Move(x+30, y+142-20);
     222    fRaSoll->Move(x+30, y+159-20);
     223    fDecEst->Move(x+30, y+182-20);
     224    fDecSoll->Move(x+30, y+199-20);
    220225    fZdSoll->Move(x+30, y+222);
    221226    fAzSoll->Move(x+30, y+239);
     
    311316    if (!fin)
    312317    {
    313         cout << "ERROR: Predifined posiion in 'prepos.txt' not found." << endl;
     318        cout << "ERROR: Predifined positions in 'prepos.txt' not found." << endl;
    314319        return;
    315320    }
     
    329334}
    330335
    331 void MGCosy::CreateTabs(TGTab *fTab)
     336void MGCosy::CreateStarList(TGCompositeFrame *tf1)
     337{
     338    /*
     339    TGComboBox *box = new TGComboBox(tf1, kCB_StarList);
     340    box->Resize(120, 20);
     341    box->Associate(this);
     342
     343    TGLayoutHints *lay = new TGLayoutHints(kLHintsLeft|kLHintsTop,
     344                                           27, 0, 200, 0);
     345    tf1->AddFrame(box, lay);
     346
     347    fList->Add(box);
     348    fList->Add(lay);
     349
     350    ifstream fin("stars.txt");
     351    if (!fin)
     352    {
     353        cout << "ERROR: Star List 'stars.txt' not found." << endl;
     354        return;
     355    }
     356
     357    int i=0;
     358    while (1)
     359    {
     360        TString str;
     361        Int_t h, m, s, d, am, as;
     362        fin >> h >> m >> s >> d >> am >> as;
     363        if (!fin)
     364            break;
     365
     366        box->AddEntry(str, i++);
     367
     368        fStarList.Add(zd, az);
     369        }
     370        */
     371}
     372
     373void MGCosy::CreateTabs()
    332374{
    333375    TGCompositeFrame *tf1 = fTab->AddTab("Position");
    334376    TGCompositeFrame *tf2 = fTab->AddTab("Track");
     377    TGCompositeFrame *tf4 = fTab->AddTab("Calib");
    335378#ifdef EXPERT
    336     TGCompositeFrame *tf4 = fTab->AddTab("Calib");
    337379    TGCompositeFrame *tf5 = fTab->AddTab("Test SE");
    338380    TGCompositeFrame *tf6 = fTab->AddTab("Gear");
     
    345387
    346388    CreatePredefinedPos(tf1);
     389    CreateStarList(tf4);
    347390
    348391    fCRaDec = new MGCoordinates(tf2, kETypeRaDec);
     
    350393    fList->Add(fCRaDec);
    351394
    352 #ifdef EXPERT
    353395    fCCalib = new MGCoordinates(tf4, kETypeRaDec);
    354396    fCCalib->Move(27, 105);
    355397    fList->Add(fCCalib);
    356 #endif
    357398
    358399    const int x=15;
     
    386427    fList->Add(l3);
    387428
    388 #ifdef EXPERT
    389429    l1 = new TGLabel(tf4, "Start the calibration using the Start button.");
    390430    l2 = new TGLabel(tf4, "Write a coordinate pair to a TPoint file using");
     
    401441    fList->Add(l4);
    402442
     443#ifdef EXPERT
    403444    l1 = new TGLabel(tf5, "START starts histograming the differences of");
    404445    l2 = new TGLabel(tf5, "the two shaftencoders at the elevation axis.");
     
    495536    fList->Add(but);
    496537    */
     538#ifdef EXPERT
    497539    but = new TGTextButton(tf4, "Load", kPB_LoadBending);
    498     but->Resize(80, 25);
    499     but->Move(25, 190);
     540    but->Resize(50, 25);
     541    but->Move(151, 185);
    500542    but->SetToolTipText("Load bending corrections from file 'bending.txt'");
    501543    but->Associate(this);
     
    503545
    504546    but = new TGTextButton(tf4, "Reset", kPB_ResetBending);
    505     but->Resize(80, 25);
    506     but->Move(25, 220);
     547    but->Resize(50, 25);
     548    but->Move(206, 185);
    507549    but->SetToolTipText("Reset bending correction (coefficients=0)");
    508550    but->Associate(this);
    509551    fList->Add(but);
     552#endif EXPERT
    510553
    511554    but = new TGTextButton(tf4, "TPoint", kPB_TPOINT);
    512     but->Resize(80, 25);
    513     but->Move(25, 250);
     555    but->Resize(50, 25);
     556    but->Move(176/*231*/, 213);
    514557    but->SetToolTipText("Trigger writing a tpoint coordinate pair.");
     558    but->Associate(this);
     559    fList->Add(but);
     560
     561    but= new TGTextButton(tf4, "Zd -",  kPB_ZDm);
     562    but->Resize(50, 25);
     563    but->Move(25, 210);
     564    but->SetToolTipText("Zenith Distance -= 1SE");
     565    but->Associate(this);
     566    fList->Add(but);
     567    but= new TGTextButton(tf4, "Zd +",  kPB_ZDp);
     568    but->Resize(50, 25);
     569    but->Move(90, 210);
     570    but->SetToolTipText("Zenith Distance += 1SE");
     571    but->Associate(this);
     572    fList->Add(but);
     573    but= new TGTextButton(tf4, "Az +",  kPB_AZp);
     574    but->Resize(50, 25);
     575    but->Move(55, 185);
     576    but->SetToolTipText("Azimuth += 1SE");
     577    but->Associate(this);
     578    fList->Add(but);
     579    but= new TGTextButton(tf4, "Az -",  kPB_AZm);
     580    but->Resize(50, 25);
     581    but->Move(55, 235);
     582    but->SetToolTipText("Azimuth -= 1SE");
    515583    but->Associate(this);
    516584    fList->Add(but);
     
    728796    AddFrame(f2, hints2);
    729797
    730     //
    731     // FIXME!
    732     //
    733798#ifdef DEBUG
    734799    cout << "MGCosy: Creating Tabs" << endl;
    735800#endif
    736     CreateTabs(fTab);
     801    CreateTabs();
    737802#ifdef DEBUG
    738803    cout << "MGCosy: Creating Label" << endl;
     
    871936    }
    872937}
    873 
     938/*
    874939void MGCosy::UpdateOffset(ZdAz &off)
    875940{
     
    892957    }
    893958}
    894 
     959*/
    895960void MGCosy::UpdateZdAz(ZdAz &soll)
    896961{
     
    9541019}
    9551020
    956 void MGCosy::Update(ZdAz pos, ZdAz acc, ZdAz vel, ZdAz off, RaDec radec,
     1021void MGCosy::Update(ZdAz pos, ZdAz acc, ZdAz vel, /*ZdAz off,*/ RaDec radec,
    9571022                    ZdAz soll, UInt_t stat, UInt_t stat2)
    9581023{
     
    9621027    double mjd = UpdateTime();
    9631028    fSkyPosition->Update(pos, mjd);
    964     fAccuracy->Update(pos, acc);
    965     fVelocity->Update(vel);
    966     UpdateOffset(off);
     1029    //UpdateOffset(off);
    9671030    UpdateRaDec(pos, mjd, radec);
    9681031    UpdateZdAz(soll);
     
    9911054    SetLabelColor(fAvailSe3,  stat2&0x20);
    9921055
    993     stat&kTracking ? fAccuracy->MapWindow() : fAccuracy->UnmapWindow();
    994     stat&kTracking ? fVelocity->MapWindow() : fVelocity->UnmapWindow();
     1056    if (stat&kTracking)
     1057    {
     1058        fAccuracy->Update(pos, acc);
     1059        fVelocity->Update(vel);
     1060        fAccuracy->MapWindow();
     1061        fVelocity->MapWindow();
     1062    }
     1063    else
     1064    {
     1065        fAccuracy->UnmapWindow();
     1066        fVelocity->UnmapWindow();
     1067    }
    9951068    //    stat&kTracking ? fOffset->MapWindow()   : fOffset->UnmapWindow();
    9961069
     
    10221095}
    10231096
    1024 void MGCosy::StartTrack()
     1097void MGCosy::StartTrack(bool track)
    10251098{
    10261099    cout << "Start tracking." << endl;
    10271100
    1028     XY xy = fCRaDec->GetCoordinates();
    1029     RaDec dest(xy.X()*15., xy.Y()); // xy.X()  [h]->[ø]
    1030 
    1031     cout << dest.Ra() << "h " << dest.Dec() << "\xb0" << endl;
     1101    XY xy0 = fCRaDec->GetCoordinates();
     1102    XY xy1 = track ? xy0 : fCCalib->GetCoordinates();
     1103
     1104    RaDec dest0(xy0.X()*15., xy0.Y()); // xy.X()  [h]->[ø]
     1105    RaDec dest1(xy1.X()*15., xy1.Y()); // xy.X()  [h]->[ø]
     1106
     1107    cout << "TrackPos: " << dest0.Ra() << "h " << dest0.Dec() << "\xb0" << endl;
     1108    cout << "CalibPos: " << dest1.Ra() << "h " << dest1.Dec() << "\xb0" << endl;
     1109
     1110    RaDec dest[2] = { dest0, dest1 };
    10321111
    10331112    fQueue->PostMsg(WM_TRACK, &dest, sizeof(dest));
     
    10361115}
    10371116
    1038 void MGCosy::StartTrackPos()
     1117void MGCosy::StartTrackPos(Long_t mp1)
    10391118{
    10401119    cout << "Start tracking Zd/Az pos." << endl;
     
    10431122
    10441123    ZdAz za(xy.X(), xy.Y());
     1124
     1125    switch (mp1)
     1126    {
     1127    case kPB_ZDm:
     1128        za.Zd(za.Zd()-360/16384.);
     1129        break;
     1130    case kPB_ZDp:
     1131        za.Zd(za.Zd()+360/16384.);
     1132        break;
     1133    case kPB_AZm:
     1134        za.Az(za.Az()-360/16384.);
     1135        break;
     1136    case kPB_AZp:
     1137        za.Az(za.Az()+360/16384.);
     1138        break;
     1139    }
    10451140
    10461141    cout << za.Zd() << "\xb0 " << za.Az() << "\xb0" << endl;
     
    12031298                    return kTRUE;
    12041299                case 1:
    1205                     StartTrack();
     1300                    StartTrack(true);
    12061301                    return kTRUE;
    12071302                case 2:
    12081303                    fCRaDec->SetCoordinates(fCCalib->GetCoordinates());
     1304                    StartTrack(false);
    12091305                    return kTRUE;
    12101306                case 3:
     
    12611357                        break;
    12621358                    }
    1263                     RaDec dest(xy.X()*15., xy.Y()); // xy.X()  [h]->[ø]
    1264                     fQueue->PostMsg(WM_TRACK, &dest, sizeof(dest));
    1265                     //fQueue->Proc(WM_NEWTRACK, &dest);
    12661359                    fCRaDec->SetCoordinates(xy);
    1267 
    1268                     cout << "New Ra/Dec: " << dest.Ra() << "h " << dest.Dec() << "\xb0" << endl;
     1360                    StartTrack(false);
     1361                    /*
     1362                     RaDec dest(xy.X()*15., xy.Y()); // xy.X()  [h]->[ø]
     1363                     fQueue->PostMsg(WM_TRACK, &dest, sizeof(dest));
     1364                     //fQueue->Proc(WM_NEWTRACK, &dest);
     1365                     */
     1366                    //cout << "New Ra/Dec: " << dest.Ra() << "h " << dest.Dec() << "\xb0" << endl;
    12691367                }
     1368                return kTRUE;
     1369
     1370            case kPB_ZDp:
     1371            case kPB_ZDm:
     1372            case kPB_AZp:
     1373            case kPB_AZm:
     1374                StartTrackPos(mp1);
    12701375                return kTRUE;
    12711376
  • trunk/MagicSoft/Cosy/gui/MGCosy.h

    r2069 r2278  
    5050    TGLabel       *fLabel3;
    5151
    52     TGLabel       *fOffsetZd;
    53     TGLabel       *fOffsetAz;
     52    // TGLabel       *fOffsetZd;
     53    // TGLabel       *fOffsetAz;
    5454
    5555    TGLabel       *fRaEst;
     
    9898    void CreateMenu();
    9999    void CreateLabel(TGCompositeFrame *f);
    100     void CreateTabs(TGTab *fTab);
     100    void CreateTabs();
    101101    void CreatePredefinedPos(TGCompositeFrame *tf1);
     102    void CreateStarList(TGCompositeFrame *tf1);
    102103
    103104    void StartPos();
    104     void StartTrack();
    105     void StartTrackPos();
     105    void StartTrack(bool track);
     106    void StartTrackPos(Long_t mp1=0);
    106107    void StartDemo();
    107108    //void StartCalib();
     
    110111    void EnableLabel(TGLabel *label, Bool_t stat);
    111112    void SetLabelColor(TGLabel *label, Bool_t col);
    112     void UpdateOffset(ZdAz &off);
     113    //void UpdateOffset(ZdAz &off);
    113114    void UpdateZdAz(ZdAz &off);
    114115    void UpdateRaDec(ZdAz &pos, double mjd, RaDec &radec);
     
    127128    TGTextView *GetLog() const { return fLog; }
    128129
    129     void Update(ZdAz pos, ZdAz acc, ZdAz vel, ZdAz off, RaDec radec, ZdAz soll, UInt_t stat, UInt_t stat2);
     130    void Update(ZdAz pos, ZdAz acc, ZdAz vel, /*ZdAz off,*/ RaDec radec, ZdAz soll, UInt_t stat, UInt_t stat2);
    130131
    131132    Bool_t ProcessMessage(Long_t msg, Long_t mp1, Long_t mp2);
  • trunk/MagicSoft/Cosy/gui/MGEmbeddedCanvas.cc

    r1804 r2278  
    1717
    1818MGEmbeddedCanvas::MGEmbeddedCanvas(const char *name, const TGWindow* p,
    19                                    const UInt_t width, Float_t range)
     19                                   UInt_t width, Double_t range)
    2020    : TRootEmbeddedCanvas(name, p, width+1, width+1, 0/*kRaisedFrame*/),
    21       fModified(kFALSE), fWidth(width), fRange(range), fPix(2.*range/width)
     21      fModified(kFALSE), fWidth(width), fRange(fabs(range)), fPix(2.*fabs(range)/width)
    2222{
    2323#ifdef DEBUG
     
    3434    fCanvas->SetFillColor(39); // s. TAttFill
    3535#ifdef DEBUG
    36     cout << "MGEmbeddedCanvas: fRange=" << fRange << endl;
     36    cout << "MGEmbeddedCanvas." << endl;
    3737#endif
    38     if (fRange>0)
    39         fCanvas->Range(-fRange, -fRange, fRange, fRange);
     38
     39    fCanvas->Range(-fRange, -fRange, fRange, fRange);
    4040
    4141    fList = new TList;
  • trunk/MagicSoft/Cosy/gui/MGEmbeddedCanvas.h

    r1804 r2278  
    3434public:
    3535    MGEmbeddedCanvas(const char *name, const TGWindow* p,
    36                      const UInt_t width, const Float_t range);
     36                     UInt_t width, Double_t range);
    3737    ~MGEmbeddedCanvas();
    3838
  • trunk/MagicSoft/Cosy/gui/MGImage.cc

    r1690 r2278  
    1212#include <pthread.h>
    1313
     14#include <X11/Xlib.h>
     15
    1416#include <TTimer.h>
    1517#include <TSystem.h>
     
    1820
    1921ClassImp(MGImage);
     22/*
     23class MyX11 : public TGX11
     24{
     25public:
     26    Display *GetDisplay() { return fDisplay; }
     27    Drawable GetRootWin() { return fRootWin; }
     28    Drawable GetVisRootWin() { return fVisRootWin; }
     29    Int_t    GetDepth() { return fDepth; }
     30};
     31*/
    2032
    2133MGImage::MGImage(const TGWindow* p, UInt_t w, UInt_t h, UInt_t options, ULong_t back)
     
    2739
    2840    //
    29     // Set Color Table (Gray scale)
    30     //
    31     const int cols = 0x100+4*4*4;
    32 
    33     for (int c=0; c<0x100; c++)
    34         sprintf(fColors[c], "%02x", c);
    35 
    36     //
    37     // create space for the pixmap buffer, initialize pointer to data area
    38     //
    39     fBuffer = new char*[1+cols+fHeight+1];
    40     fBody   = &fBuffer[1+cols];
    41 
    42     //
    43     // fill buffer with header informations
    44     //
    45     fBuffer[0] = new char[14];
    46     sprintf(fBuffer[0], "%3d %3d %3d %1d", fWidth, fHeight, cols, 2);
    47 
    48     for (int k=0; k<0x100; k++)
    49     {
    50         const int l = k+1;
    51         fBuffer[l] = new char[13];
    52         fBuffer[l][0]  = fColors[k][0];
    53         fBuffer[l][1]  = fColors[k][1];
    54         fBuffer[l][2]  = '\t';
    55         fBuffer[l][3]  = 'c';
    56         fBuffer[l][4]  = ' ';
    57         fBuffer[l][5]  = '#';
    58         fBuffer[l][6]  = fColors[k][0];
    59         fBuffer[l][7]  = fColors[k][1];
    60         fBuffer[l][8]  = fColors[k][0];
    61         fBuffer[l][9]  = fColors[k][1];
    62         fBuffer[l][10] = fColors[k][0];
    63         fBuffer[l][11] = fColors[k][1];
    64         fBuffer[l][12] = '\0';
    65     }
    66 
    67     for (int b=0; b<4; b++)
    68         for (int g=0; g<4; g++)
    69             for (int r=0; r<4; r++)
    70             {
    71                 const int nr = r+(g<<2)+(b<<4);
    72                 const int l = 0x100+nr+1;
    73 
    74                 fBuffer[l] = new char[13];
    75                 fBuffer[l][0]  = 'f'+nr/8+1;
    76                 fBuffer[l][1]  = 'f'+nr%8+1;
    77                 fBuffer[l][2]  = '\t';
    78                 fBuffer[l][3]  = 'c';
    79                 fBuffer[l][4]  = ' ';
    80                 fBuffer[l][5]  = '#';
    81                 fBuffer[l][6]  = fColors[r*85][0];
    82                 fBuffer[l][7]  = fColors[r*85][1];
    83                 fBuffer[l][8]  = fColors[g*85][0];
    84                 fBuffer[l][9]  = fColors[g*85][1];
    85                 fBuffer[l][10] = fColors[b*85][0];
    86                 fBuffer[l][11] = fColors[b*85][1];
    87                 fBuffer[l][12] = '\0';
    88             }
    89 
    90     //
    91     // mark end of lines of the data area
    92     //
    93     for (UInt_t y=0; y<fHeight; y++)
    94     {
    95         fBody[y] = new char[fWidth*2+1];
    96         fBody[y][fWidth*2] = '\0';
    97     }
    98     //
    99     // mark end of buffer
    100     //
    101     fBuffer[1+cols+fHeight] = '\0';
    102 
    103     //
    104     // Create Default Graphic Context (XCreateGC)
    105     //
    106     fDefGC = gVirtualX->CreateGC(fId, 0); // GetBckgndGC().GetGC(); //
    107 
    108     //
    10941    // Creat drawing semaphore
    11042    //
     
    11244    pthread_mutex_init((pthread_mutex_t*)fMuxPixmap, NULL);
    11345
    114     //
    115     // create empty (black) pixmap
    116     //   return (Pixmap_t) XCreatePixmap(fDisplay, (Drawable) id, w, h,
    117     //          DefaultDepth(fDisplay, DefaultScreen(fDisplay)));
    118     //
    119     fPixmap = kNone; //@@@gVirtualX->CreatePixmap(fId, fWidth, fHeight);
    120 
    12146    Resize(w, h);
    12247
    123     //fTimer=new TTimer(Form("gClient->ProcessEventsFor((TGWindow*)0x%p);", this), 250, kTRUE);
    124 //    fTimer=new TTimer("printf(\"Timer!\\n\"); gSystem->ProcessEvents();", 250, kTRUE);
    125     //fTimer->Start();
    126 }
    127 
    128 void MGImage::Resize(UInt_t w, UInt_t h)
    129 {
    130 //    TGFrame::Resize(w+2*GetBorderWidth(), h+2*GetBorderWidth());
    131     // FIXME: RESIZE THE PIXMAP
    132 }
    133 
    134 void MGImage::Resize(TGDimension size)
    135 {
    136 //    TGFrame::Resize(size.fWidth+2*GetBorderWidth(), size.fHeight+2*GetBorderWidth());
    137     // FIXME: RESIZE THE PIXMAP
    138 }
    139 
    140 void MGImage::MoveResize(Int_t x, Int_t y, UInt_t w, UInt_t h)
    141 {
    142 //   TGFrame::MoveResize(x, y, w+2*GetBorderWidth(), h+2*GetBorderWidth());
    143    // FIXME: RESIZE THE PIXMAP
     48    //
     49    // create empty pixmap
     50    //
     51    fPixmap = gVirtualX->CreatePixmap(fId, fWidth, fHeight);
     52    fDefGC  = gVirtualX->CreateGC(fId, 0);
     53    fImage  = (XImage*)gVirtualX->CreateImage(fWidth, fHeight);
    14454}
    14555
    14656MGImage::~MGImage()
    14757{
    148     //fTimer->Stop();
    149     //delete fTimer;
    150 
    15158    pthread_mutex_lock((pthread_mutex_t*)fMuxPixmap);
    15259
    153     cout << "Deleting fBuffer..." << endl;
     60    cout << "Deleting MGImage..." << endl;
    15461
    155     char **b = fBuffer;
    156     while (*b)
    157         delete[] *b++;
    158     delete[] fBuffer;
    159 
    160     cout << "Deleting Pixmap..." << endl;
    161 
    162     if (fPixmap!=kNone) // @@@
    163     {
    164         cout << "Delete Pixmap" << endl;
    165         gVirtualX->DeletePixmap(fPixmap);  // XFreePixmap(fDisplay, (Pixmap) pmap);
    166     }
    167 
    168     cout << "Deleting GC..." << endl;
    169 
    170 
    171     gVirtualX->DeleteGC(fDefGC);       // XFreeGC(fDisplay, (GC) gc);
     62    gVirtualX->DeletePixmap(fPixmap);
     63    gVirtualX->DeleteGC(fDefGC);
     64    gVirtualX->DeleteImage((Drawable_t)fImage);
    17265
    17366    pthread_mutex_destroy((pthread_mutex_t*)fMuxPixmap);
     
    17669}
    17770
    178 #include <X11/Xlib.h>
    179 /*
    180 #include <X11/Xutil.h>
    181 #include <X11/Intrinsic.h>
    182 XImage *fPix=NULL;
    183 */
    184 
    18571void MGImage::DoRedraw()
    18672{
    187 //    TGFrame::DrawBorder();
    18873    pthread_mutex_lock((pthread_mutex_t*)fMuxPixmap);
    18974
    190     //===========================
    191     if (TestBit(kNeedRecreate))
     75    if (TestBit(kNeedRedraw))
    19276    {
    193         Pixmap_t mask = kNone;
    194         PictureAttributes_t attr;
    195         attr.fMask = kNone;
    196 
    197         if (fPixmap!=kNone)
    198             gVirtualX->DeletePixmap(fPixmap);
    199 
    200         fPixmap=kNone;
    201 
    202         if (!gVirtualX->CreatePictureFromData(fId, fBuffer, fPixmap,
    203                                               mask, attr))
    204         {
    205             cout << "Warning: Error in CreatePictureFromData" << endl;
    206             fPixmap=kNone;
    207         }
    208         ResetBit(kNeedRecreate);
     77        gVirtualX->PutImage(fId, fDefGC, (Drawable_t)fImage, 0, 0, 0, 0, fWidth, fHeight);
     78        ResetBit(kNeedRedraw);
    20979    }
    21080
    211     //===========================
    212 
    213     // Copy a drawable (i.e. pixmap) to another drawable (pixmap, window).
    214     // The graphics context gc will be used and the source will be copied
    215     // from src_x,src_y,src_x+width,src_y+height to dest_x,dest_y.
    216     // XCopyArea(fDisplay, src, dest, (GC) gc, src_x, src_y, width, height,
    217     //           dest_x, dest_y);
    218     if (fPixmap!=kNone) //@@@
    219     {
    220 //        gVirtualX->DrawString(fId, fDefGC, 20, 20, "HELLO WORLD!", 12);
    221 //        gVirtualX->FillRectangle(fId, fDefGC, 10, 10, 50, 50);
    222 
    223         //        cout << gVirtualX->IsA()->GetName() << endl;
    224         gVirtualX->CopyArea(fPixmap, fId, fDefGC,
    225                             0, 0, fWidth, fHeight,
    226                             GetBorderWidth(), GetBorderWidth());
    227 
    228         /*
    229         XCopyArea((Display*)gVirtualX->GetDisplay(), pm, fId,
    230                   (GC)fDefGC, 0, 0, fWidth, fHeight,
    231                   GetBorderWidth(), GetBorderWidth());
    232                   */
    233     }
    234 /*
    235      if (fPix)
    236     {
    237         cout << "put" << flush;
    238         XPutImage((Display*)gVirtualX->GetDisplay(), fId,
    239                   fDefGC, fPix,
    240                   0, 0, GetBorderWidth(), GetBorderWidth(),
    241                   fWidth, fHeight);
    242 
    243     cout << "done " << endl;
    244     }
    245 */
    24681    pthread_mutex_unlock((pthread_mutex_t*)fMuxPixmap);
    24782}
    24883
    249 
    250 //#include <TGClient.h>
    25184void MGImage::DrawImg(const byte *buffer)
    25285{
     
    25487        return;
    25588
    256     for (UInt_t y=0; y<fHeight; y++)
     89    char *d = fImage->data;
     90    char *e = (char*)(buffer+fWidth*fHeight);
     91    char *s = (char*)buffer;
     92
     93    // FIXME: This loop depends on the screen color depth
     94    while (s<e)
    25795    {
    258         for (UInt_t x=0; x<fWidth; x++)
    259         {
    260             const byte col = buffer[y*fWidth+x];
    261 
    262             fBody[y][x*2]   = fColors[col][0];
    263             fBody[y][x*2+1] = fColors[col][1];
    264         }
     96        *d++ = *s;
     97        *d++ = *s;
     98        *d++ = *s++;
     99        d++;
    265100    }
    266101
    267 /*
    268     cout << "CreateImage" << flush;
    269     if (!fPix)
    270     {
    271         Display *dsp = (Display*)gVirtualX->GetDisplay();
    272         Screen  *scr = DefaultScreenOfDisplay(dsp);
    273         Visual  *vis = DefaultVisualOfScreen(scr);
     102    SetBit(kNeedRedraw);
    274103
    275         cout << vis->visualid << endl;
    276         cout << vis->c_class << endl;
    277         cout << vis->bits_per_rgb << endl;
    278         cout << vis->map_entries << endl;
    279         Visual visual;
    280         visual.c_class = StaticGray;
    281 
    282         int n;
    283         XPixmapFormatValues *fmt = XListPixmapFormats(dsp, &n);
    284 
    285         cout << "N: " << n << endl;
    286         for (int i=0; i<n; i++)
    287         {
    288             cout << fmt[i].dww.epth << " " << fmt[i].bits_per_pixel << " "
    289                 << fmt[i].scanline_pad << endl;
    290         }
    291 
    292         Colormap colormap = XCreateColormap(dsp, fId, vis, AllocNone);
    293 
    294         for (int i=0; i<vis->map_entries; i++)
    295         {
    296             XColor color;
    297             char data[4];
    298 
    299             color.flags = DoRed | DoGreen | DoBlue;
    300             color.pixel = i;
    301             color.red   = (256*i/vis->map_entries) << 8;
    302             color.green = (256*i/vis->map_entries) << 8;
    303             color.blue  = (256*i/vis->map_entries) << 8;
    304 
    305             XAllocColor(dsp, colormap, &color);
    306 
    307             cout << color.pixel <<" " << flush;
    308         }
    309         fPix = XCreateImage(dsp, vis, 8, ZPixmap, 0,
    310                             buffer, 768, 576, 32, 0);
    311 
    312         cout << "Colors" << visual.visualid << flush;
    313 
    314     }
    315     cout << "Done " << (void*)fPix << endl;
    316     */
    317 
    318 /*
    319     Pixmap_t mask = kNone;
    320     PictureAttributes_t attr;
    321     attr.fMask = kNone;
    322     if (fPixmap!=kNone) // @@@
    323         gVirtualX->DeletePixmap(fPixmap); // XFreePixmap(fDisplay, (Pixmap) pmap);
    324 
    325     // Create a pixture pixmap from data. The picture attributes
    326     // are used for input and output. Returns kTRUE in case of success,
    327     // kFALSE otherwise. If mask does not exist it is set to kNone.
    328     //
    329     // XpmAttributes xpmattr;
    330     //
    331     // MapPictureAttributes(attr, xpmattr);
    332     //
    333     // Int_t res = XpmCreatePixmapFromData(fDisplay, id, data, (Pixmap*)&pict,
    334     //                                     (Pixmap*)&pict_mask, &xpmattr);
    335     //
    336     // MapPictureAttributes(attr, xpmattr, kFALSE);
    337     // XpmFreeAttributes(&xpmattr);
    338     //
    339     // if (res == XpmSuccess || res == XpmColorError)
    340     //   return kTRUE;
    341     //
    342     // if (pict) {
    343     //    XFreePixmap(fDisplay, (Pixmap)pict);
    344     //    pict = kNone;
    345     // }
    346     // if (pict_mask) {
    347     //    XFreePixmap(fDisplay, (Pixmap)pict_mask);
    348     //    pict_mask = kNone;
    349     // }
    350     // return kFALSE;
    351     fPixmap=kNone;
    352     if (!gVirtualX->CreatePictureFromData(fId, fBuffer, fPixmap,
    353                                           mask, attr))
    354     {
    355         cout << "Warning: Error in CreatePictureFromData" << endl;
    356         fPixmap=kNone;
    357     }
    358 */
    359     SetBit(kNeedRecreate);
    360104    pthread_mutex_unlock((pthread_mutex_t*)fMuxPixmap);
    361     //gClient->NeedRedraw(this);
    362     //fTimer->Start(10, kTRUE);
    363     //gVirtualX->UpdateWindow(1);
    364     //    ((TGX11*)gVirtualX)->Sync(1);
    365     //new TTimer(Form("gClient->ProcessEventsFor((TGWindow*)0x%p);", this), 1, kFALSE);
    366     //    DoRedraw();
    367105}
    368106
     
    372110        return;
    373111
    374     for (UInt_t y=0; y<fHeight; y++)
     112    char *d  = fImage->data;
     113    char *e  = (char*)(gbuf+fWidth*fHeight);
     114    char *s1 = (char*)gbuf;
     115    char *s2 = (char*)cbuf;
     116
     117    // FROM libAfterImage:
     118    // -------------------
     119    //#define ALPHA_TRANSPARENT         0x00
     120    //#define ALPHA_SEMI_TRANSPARENT    0x7F
     121    //#define ALPHA_SOLID               0xFF
     122    // * Lowermost 8 bits - Blue channel
     123    // * bits 8 to 15     - Green channel
     124    // * bits 16 to 23    - Red channel
     125    // * bits 24 to 31    - Alpha channel
     126    //#define ARGB32_White              0xFFFFFFFF
     127    //#define ARGB32_Black              0xFF000000
     128
     129    // FIXME: This loop depends on the screen color depth
     130    while (s1<e)
    375131    {
    376         for (UInt_t x=0; x<fWidth; x++)
     132        if (*s2)
    377133        {
    378             const byte ccol = cbuf[y*fWidth+x];
    379 
    380             if (ccol)
    381             {
    382                 fBody[y][x*2]   = 'f'+ccol/8+1;
    383                 fBody[y][x*2+1] = 'f'+ccol%8+1;
    384             }
    385             else
    386             {
    387                 const byte gcol = gbuf[y*fWidth+x];
    388                 fBody[y][x*2]   = fColors[gcol][0];
    389                 fBody[y][x*2+1] = fColors[gcol][1];
    390             }
     134            *d++ = ((*s2>>4)&0x3)*85;
     135            *d++ = ((*s2>>2)&0x3)*85;
     136            *d++ = ((*s2++ )&0x3)*85;
     137            d++;
     138            s1++;
     139        }
     140        else
     141        {
     142            *d++ = *s1;
     143            *d++ = *s1;
     144            *d++ = *s1++;
     145            d++;
     146            s2++;
    391147        }
    392148    }
    393 /*
    394     Pixmap_t mask = kNone;
    395     PictureAttributes_t attr;
    396     attr.fMask = kNone;
    397149
    398     if (fPixmap!=kNone)
    399         gVirtualX->DeletePixmap(fPixmap);
     150    SetBit(kNeedRedraw);
    400151
    401     fPixmap=kNone;
    402 
    403     if (!gVirtualX->CreatePictureFromData(fId, fBuffer, fPixmap,
    404                                           mask, attr))
    405     {
    406         cout << "Warning: Error in CreatePictureFromData" << endl;
    407         fPixmap=kNone;
    408     }
    409     */
    410     SetBit(kNeedRecreate);
    411152    pthread_mutex_unlock((pthread_mutex_t*)fMuxPixmap);
    412     //gClient->NeedRedraw(this);
    413     //fTimer->Start(10, kTRUE);
    414     //gVirtualX->UpdateWindow(1);
    415     //    ((TGX11*)gVirtualX)->Sync(1);
    416     //new TTimer(Form("gClient->ProcessEventsFor((TGWindow*)0x%p);", this), 1, kFALSE);
    417     //    DoRedraw();
    418153}
    419 
  • trunk/MagicSoft/Cosy/gui/MGImage.h

    r1690 r2278  
    88//   Version: V1.0 (1-8-2000)
    99
     10#ifndef ROOT_TGFrame
    1011#include <TGFrame.h>
     12#endif
     13#ifndef ROOT_TGX11
     14#include <TGX11.h>
     15#endif
    1116
    1217class TTimer;
     
    1621class MGImage : public TGFrame
    1722{
    18     char fColors[0x100][3];
    19 
    20     char **fBuffer;
    21     char **fBody;
     23    XImage *fImage;
    2224
    2325    GContext_t fDefGC;
     
    3133    TTimer *fTimer;
    3234
    33     enum { kNeedRecreate = BIT(17) };
     35    enum { kNeedRedraw = BIT(17) };
    3436
    3537public:
     
    3840
    3941    void DoRedraw();
    40 
    41     void Resize(UInt_t w, UInt_t h);
    42     void Resize(TGDimension size);
    43     void MoveResize(Int_t x, Int_t y, UInt_t w, UInt_t h);
    4442
    4543    void DrawImg(const byte *buffer);
  • trunk/MagicSoft/Cosy/gui/MGSkyPosition.cc

    r1804 r2278  
    6969    InitArc(fSaturn,  1001, kYellow/*17*/, 16);
    7070
    71     for (int i=0; i<13; i++)
     71    for (int i=0; i<14; i++)
    7272    {
    7373        fStars[i] = new TArc(0, 0, 1);
     
    110110}
    111111
    112 static const RaDec stars[13] =
     112static const RaDec stars[14] =
    113113{
    114114    // 32349   Sirius           -1.44 1.45    2.64      0.009   A0m
    115     (RaDec(Slalib::Hms2Rad(  6, 45, 0), Slalib::Dms2Rad(-16, 42, 0))),
     115    (RaDec(Slalib::Hms2Rad(  6, 45,  0), Slalib::Dms2Rad(-16, 42, 0))),
    116116    // 30438   Canopus          -0.62 -5.53   95.88     0.164   F0Ib
    117     (RaDec(Slalib::Hms2Rad(  6, 23, 0), Slalib::Dms2Rad(-52, 41, 0))),
     117    (RaDec(Slalib::Hms2Rad(  6, 23,  0), Slalib::Dms2Rad(-52, 41, 0))),
    118118    // 69673   Arcturus         -0.05 -0.31   11.25     1.239   K2IIIp
    119     (RaDec(Slalib::Hms2Rad( 14, 15, 0), Slalib::Dms2Rad( 19, 10, 0))),
    120     (RaDec(Slalib::Hms2Rad( 01, 37, 6), Slalib::Dms2Rad(-57, 14, 0))),
    121     (RaDec(Slalib::Hms2Rad( 12, 26, 6), Slalib::Dms2Rad(-63, 06, 0))),
    122     (RaDec(Slalib::Hms2Rad( 13, 25, 2), Slalib::Dms2Rad(-11, 10, 0))),
    123     (RaDec(Slalib::Hms2Rad(  5, 14, 0), Slalib::Dms2Rad(- 8, 12, 5))),
    124     (RaDec(Slalib::Hms2Rad( 19, 50, 0), Slalib::Dms2Rad(- 8, 52, 6))),
    125     (RaDec(Slalib::Hms2Rad( 18, 37, 0), Slalib::Dms2Rad( 38, 47, 0))),
    126     (RaDec(Slalib::Hms2Rad(  5, 16, 0), Slalib::Dms2Rad( 46, 00, 0))),
    127     (RaDec(Slalib::Hms2Rad(  7, 39, 0), Slalib::Dms2Rad(  5, 14, 0))),
    128     (RaDec(Slalib::Hms2Rad(  5, 55, 0), Slalib::Dms2Rad(  7, 24, 0))),
    129     (RaDec(Slalib::Hms2Rad( 19, 50, 0), Slalib::Dms2Rad(  8, 52, 0)))
     119    (RaDec(Slalib::Hms2Rad( 14, 15,  0), Slalib::Dms2Rad( 19, 10,  0))),
     120    //         Vega              0.03
     121    (RaDec(Slalib::Hms2Rad( 18, 37,  0), Slalib::Dms2Rad( 38, 47,  0))),
     122    //         Altair            0.77
     123    (RaDec(Slalib::Hms2Rad( 19, 50,  0), Slalib::Dms2Rad(  8, 52,  6))),
     124    //         Antares           0.96
     125    (RaDec(Slalib::Hms2Rad( 16, 29, 25), Slalib::Dms2Rad(-26, 25, 55))),
     126    //         Spica             0.98
     127    (RaDec(Slalib::Hms2Rad( 13, 25, 13), Slalib::Dms2Rad(-11,  9, 41))),
     128    //         Deneb             1.25
     129    (RaDec(Slalib::Hms2Rad( 20, 41, 26), Slalib::Dms2Rad( 45, 16, 49))),
     130    (RaDec(Slalib::Hms2Rad(  1, 37,  6), Slalib::Dms2Rad(-57, 14,  0))),
     131    (RaDec(Slalib::Hms2Rad( 12, 26,  6), Slalib::Dms2Rad(-63, 06,  0))),
     132    (RaDec(Slalib::Hms2Rad(  5, 14,  0), Slalib::Dms2Rad(- 8, 12,  5))),
     133    (RaDec(Slalib::Hms2Rad(  5, 16,  0), Slalib::Dms2Rad( 46, 00,  0))),
     134    (RaDec(Slalib::Hms2Rad(  7, 39,  0), Slalib::Dms2Rad(  5, 14,  0))),
     135    (RaDec(Slalib::Hms2Rad(  5, 55,  0), Slalib::Dms2Rad(  7, 24,  0)))
    130136};
    131137
    132138void MGSkyPosition::UpdateStars()
    133139{
    134     for (int i=0; i<13; i++)
     140    for (int i=0; i<14; i++)
    135141        SetDot(fStars[i], stars[i], 0);
    136142}
     
    138144void MGSkyPosition::InitText()
    139145{
    140     fText = new TText(105, 105, "");
    141     //fText->SetFillStyle(4000);  // transparent
    142     fText->SetTextAlign(33);  // right, top
    143     fText->SetTextColor(10);  // white
    144     fText->Draw();
    145 
    146     fList->Add(fText);
     146    fText1 = new TText(-105, 105, "");
     147    fText2 = new TText(105, 105, "");
     148
     149    fText1->SetTextAlign(13);  // left, top
     150    fText2->SetTextAlign(33);  // right, top
     151
     152    fText1->SetTextColor(10);  // white
     153    fText2->SetTextColor(10);  // white
     154
     155    fText1->Draw();
     156    fText2->Draw();
     157
     158    fList->Add(fText1);
     159    fList->Add(fText2);
    147160}
    148161
     
    339352
    340353    char txt[100];
    341     sprintf(txt, "Zd=%s%d\xb0%02.1f'\nAz=%s%d\xb0%02.1f'",
    342             x<0?"-":"", abs(xd), xm, y<0?"-":"", abs(yd), ym);
    343 
    344     fText->SetText(fText->GetX(), fText->GetY(), txt);
     354    sprintf(txt, "Zd=%s%d\xb0%02.1f'", x<0?"-":"", abs(xd), xm);
     355    fText1->SetText(fText1->GetX(), fText1->GetY(), txt);
     356
     357    sprintf(txt, "Az=%s%d\xb0%02.1f'", y<0?"-":"", abs(yd), ym);
     358    fText2->SetText(fText2->GetX(), fText2->GetY(), txt);
    345359
    346360    SetModified();
     
    379393            return false;
    380394
    381         x=-100;
    382         y= 100;
     395        x= 100;
     396        y=-100;
    383397    }
    384398
  • trunk/MagicSoft/Cosy/gui/MGSkyPosition.h

    r1804 r2278  
    3535    TArc       *fSaturn;
    3636
    37     TArc       *fStars[13];
     37    TArc       *fStars[14];
    3838
    3939    TArc       *fSaturnRing;
     
    4747    TLine      *fSunL[4];
    4848
    49     TText      *fText;
     49    TText      *fText1;
     50    TText      *fText2;
    5051
    5152    SlaStars   *fSlaStar;
  • trunk/MagicSoft/Cosy/gui/MGVelocity.cc

    r1702 r2278  
    2424void MGVelocity::DrawCoordinateSystem()
    2525{
    26     /*
    27     TArc arc;
    28     arc.SetFillStyle(4000);  // transparent
    29     arc.SetFillColor(39);
    30     arc.SetLineColor(3);     // green
    31     arc.SetLineStyle(2);     // dashed  (s. TAttLine)
    32     arc.DrawArc(0, 0,  20);
    33 
    34     arc.SetLineColor(5);     // yellow
    35     arc.DrawArc(0, 0,  40);
    36 
    37     arc.SetLineColor(2);     // red
    38     arc.DrawArc(0, 0, 60);
    39     */
    40     //
    41     // FIXME? Use TAxis?
    42     //
    43 /*
    44     TLine line;
    45     line.SetLineColor(13);
    46     line.SetLineStyle(3);  // dotted  (s. TAttLine)
    47     line.DrawLine(-30., -65., -30.,  65.);
    48     line.DrawLine(-65., -30.,  65., -30.);
    49     line.DrawLine( 30., -65.,  30.,  65.);
    50     line.DrawLine( -6.,  30.,  65.,  30.);
    51 
    52     line.DrawLine(-15., -65., -15.,  65.);
    53     line.DrawLine(-65., -15.,  65., -15.);
    54     line.DrawLine( 15., -65.,  15.,  65.);
    55     line.DrawLine(-65.,  15.,  65.,  15.);
    56 
    57     line.DrawLine(-45., -65., -45.,  65.);
    58     line.DrawLine(-65., -45.,  65., -45.);
    59     line.DrawLine( 45., -65.,  45.,  65.);
    60     line.DrawLine(-65.,  45.,  65.,  45.);
    61 
    62     line.SetLineColor(12);
    63     line.SetLineStyle(2);  // dashed  (s. TAttLine)
    64     line.DrawLine(-60., -65., -60.,  65.);
    65     line.DrawLine(-65., -60.,  65., -60.);
    66     line.DrawLine( 60., -65.,  60.,  65.);
    67     line.DrawLine(-65.,  60.,  65.,  60.);
    68 
    69     line.SetLineColor(1);  // black
    70     line.SetLineStyle(1);  // solid  (s. TAttLine)
    71     line.DrawLine(-65.,   0, 65.,  0);
    72     line.DrawLine(  0, -65.,  0, 65.);
    73 
    74     line.DrawLine(-1.,  60., 1.,  60.);
    75     line.DrawLine(-1., -60., 1., -60.);
    76     line.DrawLine(-1.,  30., 1.,  30.);
    77     line.DrawLine(-1., -30., 1., -30.);
    78 
    79     line.DrawLine( 60., -1.,  60., 1.);
    80     line.DrawLine(-60., -1., -60., 1.);
    81     line.DrawLine( 30., -1.,  30., 1.);
    82     line.DrawLine(-30., -1., -30., 1.);
    83 
    84     TText text;
    85     text.SetTextAlign(22);  // centered, centered (s.TAttText)
    86     text.DrawText(60., 5., "vAz['/min]");
    87     text.DrawText(0,  70., "vZd['/min]");
    88 
    89     text.SetTextAlign(23);  // centered, centered (s.TAttText)
    90     text.DrawText(-60., -2., "-1'");
    91     text.DrawText( 60., -2., "1'");
    92     text.DrawText(-30., -2., "-.5'");
    93     text.DrawText( 30., -2., ".5'");
    94 
    95     text.SetTextAlign(32);  // centered, centered (s.TAttText)
    96     text.DrawText(-2., -60., "-1'");
    97     text.DrawText(-2.,  60., "1'");
    98     text.DrawText(-2., -30., "-.5'");
    99     text.DrawText(-2.,  30., ".5'");
    100     */
    10126    TWbox box;
    10227    box.DrawWbox(-145, 145, -35, 120,  18,  2, 1);
     
    13055void MGVelocity::InitVelocity()
    13156{
    132     /*
    133      fLin1  = new TLine(0, 0, 0, 0);
    134     fLin2  = new TLine(0, 0, 0, 0);
    135 
    136     fLin1->SetLineColor(10); // white (s. TAttFill)
    137     fLin2->SetLineColor(10); // white
    138     fLin1->SetLineStyle(1);  // solid (s. TAttLine)
    139     fLin2->SetLineStyle(1);
    140 
    141     fLin1->Draw();
    142     fLin2->Draw();
    143 
    144     fList->Add(fLin1);
    145     fList->Add(fLin2);
    146     */
    14757    fArrow    = new TArrow(0, 0, 0, 0, 0.01);
    14858    fArrowX   = new TArrow(0, 0, 0, 0, 0.01);
     
    17080    fText->Draw();
    17181    fList->Add(fText);
    172 
    173     fTextVel = new TText(2*70, 2*70, "");
    174     fTextVel->SetTextAlign(33);  // right, top
    175     fTextVel->SetTextColor(10);  // white
    176     fTextVel->Draw();
    177     fList->Add(fTextVel);
    17882}
    17983
     
    255159    fArrowAvg->SetX2(avgx);
    256160    fArrowAvg->SetY2(avgy);
    257 
    258     //    cout << avgx << " " << avgy << endl;
    259161
    260162    if ((fabs(avgx)>/*40.*/110. || fabs(avgy)>/*40.*/110.))
     
    274176}
    275177
    276 void MGVelocity::UpdateVelText(Float_t vx, Float_t vy)
    277 {
    278     static int X = ~0;
    279     static int Y = ~0;
    280 
    281     vx /= 60.;  //['/min]
    282     vy /= 60.;  //['/min]
    283 
    284     int fx = (int)/*floor*/(vx*10.);
    285     int fy = (int)/*floor*/(vy*10.);
    286 
    287     if (X==fx && Y==fy)
    288         return;
    289 
    290     X = fx;
    291     Y = fy;
    292 
    293     char txt[100];
    294     sprintf(txt, "Zd=%.1f'\nAz=%.1f'",
    295             vy, vx);
    296 
    297     fTextVel->SetText(fTextVel->GetX(), fTextVel->GetY(), txt);
    298 }
    299 
    300178void MGVelocity::Update(ZdAz &zdaz)
    301179{
     
    303181    // calculate actual time for planet positions
    304182    //
    305     //    static int X = 0xaffe;
    306     //    static int Y = 0xaffe;
    307 
    308183    float vx = zdaz.Az()*3600.; // ["/min]
    309184    float vy = zdaz.Zd()*3600.; // ["/min]
    310185
    311     UpdateVelText(vx, vy);
    312 
    313186    int pixx = (int)(vx*fScale/fPix);
    314187    int pixy = (int)(vy*fScale/fPix);
     
    328201        return;
    329202
    330     //    cout << fScale << ": " << pixx << " " << pixy;
    331     //    cout << fScale << ": " << (int)rc << (int)((int)fOld->X()==pixx) << (int)((int)fOld->Y()==pixy) << "  ";
    332     //    cout << zdaz.Az()*3600. << " " << zdaz.Zd()*3600. << endl;
    333 
    334203    vx *= fScale;
    335204    vy *= fScale;
  • trunk/MagicSoft/Cosy/gui/MGVelocity.h

    r1111 r2278  
    3131
    3232    TText *fText;
    33     TText *fTextVel;
     33//    TText *fTextVel;
    3434
    3535    XY *fOld;
     
    4444    void DrawCoordinateSystem();
    4545    void UpdateText();
    46     void UpdateVelText(Float_t x, Float_t y);
     46    //void UpdateVelText(Float_t x, Float_t y);
    4747
    4848public:
  • trunk/MagicSoft/Cosy/gui/Makefile

    r1819 r2278  
    3232.SUFFIXES: .c .cc .cxx .h .hxx .o
    3333
    34 SRCFILES = MGCoordinate.cc \
     34SRCFILES = MGCosy.cc \
     35           MGCoordinate.cc \
    3536           MGCoordinates.cc \
    36            MGCosy.cc \
    3737           MGImage.cc \
    3838           MGEmbeddedCanvas.cc \
    3939           MGAccuracy.cc \
    4040           MGVelocity.cc \
    41            MGStarguider.cc \
    4241           MGSkyPosition.cc \
    43            MGMenu.cc
    44 
     42           MGMenu.cc 
     43           
    4544SRCS        = $(SRCFILES)
    4645HEADERS     = $(SRCFILES:.cc=.h)
Note: See TracChangeset for help on using the changeset viewer.