Changeset 116 in Sophya for trunk/SophyaPI


Ignore:
Timestamp:
Jul 3, 1998, 5:39:48 PM (27 years ago)
Author:
ansari
Message:

Changement boutons PIDraw3DWdg ety modifs ImageTools Reza 03/07/98

Location:
trunk/SophyaPI/PI
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaPI/PI/pi3ddrw.cc

    r115 r116  
    9999  cTeta = cPhi = 0.;  cUlen = 1.;
    100100
    101   ActivateButton(1);    //  Pour pouvoir tourner la camera
    102   ActivateMove(1);     
    103   ActivateButton(2);    //  Pour deplacer la camera le long de son axe
    104   ActivateMove(2);
    105   ActivateButton(3);    //  Pour pouvoir tourner la camera
     101  ActivateButton(2);    //  Pour pouvoir tourner la camera
     102  ActivateMove(2);     
     103  ActivateButton(3);    //  Pour deplacer la camera le long de son axe
     104  ActivateMove(3);
     105  ActivateButton(1);   
    106106
    107107  mGr3d = new PIGraphic3D(mWGrC, 0, 0, sx, sy);
     
    213213
    214214/* --Methode-- */
    215 void PIDraw3DWdg::But1Press(int x, int y)
     215void PIDraw3DWdg::But2Press(int x, int y)
    216216{
    217217  mGr3d->SetBaseGraphic(mWGrC, 0, 0, XSize(), YSize());
     
    220220  float dax, day, co, dco;
    221221  mGr3d->Get3DCS(xc, yc, zc, xo, yo, zo, teta, phi, psi, dax, day, co, dco);
    222 //   puts("\n PIDraw3DWdg::But1Press() ");
     222//   puts("\n PIDraw3DWdg::But2Press() ");
    223223//   mGr3d->PrintCS();
    224224  lPx = x;  lPy = y;   
     
    232232  {
    233233  char buff[256];
    234   sprintf(buff, "But1Press() C=%g %g %g  T,P=%g %g   ", xc, yc, zc, cTeta, cPhi);
     234  sprintf(buff, "But2Press() C=%g %g %g  T,P=%g %g   ", xc, yc, zc, cTeta, cPhi);
    235235  mWGrC->DrawOpaqueString(0,20,buff);
    236236  }
     
    241241
    242242/* --Methode-- */
    243 void PIDraw3DWdg::Ptr1Move(int x, int y)
     243void PIDraw3DWdg::Ptr2Move(int x, int y)
    244244{
    245245  DrawXYZAxes();
     
    251251/*  {
    252252  char buff[256];
    253   sprintf(buff, "Ptr1Move() T,P=%g %g -> %g %g  ", cTeta, cPhi, teta, phi);
     253  sprintf(buff, "Ptr2Move() T,P=%g %g -> %g %g  ", cTeta, cPhi, teta, phi);
    254254  mWGrC->DrawOpaqueString(0,20,buff);
    255255  }
     
    260260
    261261/* --Methode-- */
    262 void PIDraw3DWdg::But1Release(int x, int y)
    263 {
    264   DrawXYZAxes();
    265 //  puts("\n PIDraw3DWdg::But1Release()");
     262void PIDraw3DWdg::But2Release(int x, int y)
     263{
     264  DrawXYZAxes();
     265//  puts("\n PIDraw3DWdg::But2Release()");
    266266//  mGr3d->PrintCS();
    267267  SelPointerShape(PI_ArrowPointer);
     
    273273
    274274/* --Methode-- */
    275 void PIDraw3DWdg::But2Press(int x, int y)
     275void PIDraw3DWdg::But3Press(int x, int y)
    276276{
    277277  float xc, yc, zc, xo, yo, zo;
     
    290290  {
    291291  char buff[256];
    292   sprintf(buff, "But2Press() C=%g %g %g  O= %g %g %g  L= %g   ", xc, yc, zc, xo, yo, zo, co);
     292  sprintf(buff, "But3Press() C=%g %g %g  O= %g %g %g  L= %g   ", xc, yc, zc, xo, yo, zo, co);
    293293  mWGrC->DrawOpaqueString(0,20,buff);
    294294  }
     
    299299
    300300/* --Methode-- */
    301 void PIDraw3DWdg::Ptr2Move(int x, int y)
     301void PIDraw3DWdg::Ptr3Move(int x, int y)
    302302{
    303303  DrawXYZAxes();
     
    315315  {
    316316  char buff[256];
    317   sprintf(buff, "Ptr2Move() Rap=%g %g -> %g %g %g     ", rapx, rapy, rapy*clCO, rapx*cDax, rapx*cDay);
     317  sprintf(buff, "Ptr3Move() Rap=%g %g -> %g %g %g     ", rapx, rapy, rapy*clCO, rapx*cDax, rapx*cDay);
    318318  mWGrC->DrawOpaqueString(0,20,buff);
    319319  }
     
    324324
    325325/* --Methode-- */
    326 void PIDraw3DWdg::But2Release(int x, int y)
     326void PIDraw3DWdg::But3Release(int x, int y)
    327327{
    328328  DrawXYZAxes();
     
    367367
    368368/* --Methode-- */
    369 void PIDraw3DWdg::But3Press(int x, int y)
    370 {
     369void PIDraw3DWdg::But1Press(int x, int y)
     370{
     371  Send(Msg(), PIMsg_Active);
     372  if ( (x > 50) || ( y > 50) ) return;
    371373  list<int>::iterator it = m3DrIl.begin();
    372374  if (it == m3DrIl.end())  return;
  • trunk/SophyaPI/PI/pi3ddrw.h

    r113 r116  
    6464
    6565  virtual void          But1Press(int x, int y);
    66   virtual void          But1Release(int x, int y);
    67   virtual void          Ptr1Move(int x, int y);
    6866
    6967  virtual void          But2Press(int x, int y);
     
    7270
    7371  virtual void          But3Press(int x, int y);
     72  virtual void          But3Release(int x, int y);
     73  virtual void          Ptr3Move(int x, int y);
     74
    7475
    7576protected :
  • trunk/SophyaPI/PI/piimage.cc

    r113 r116  
    1111
    1212#include "piimage.h"
     13#include "piimgtools.h"
    1314
    1415// --------------------------------------------------------------------------------
     
    387388if (kmod == PIKM_Alt) {
    388389  if (key == 'V' || key == 'v') RequestSelection();  // Pour coller (copier/coller) 
    389   if (key == 'Z' || key == 'z') mdrw->ElDelAll();   // Pour supprimer tous les signes
     390  if (key == 'Z' || key == 'z') { mdrw->ElDelAll();  Refresh(); } // Pour supprimer tous les signes
     391  if (key == 'O' || key == 'o') PIImgLutWind::ShowPIImgLutWind();   // Fentre LUT et options
    390392  }
    391393
  • trunk/SophyaPI/PI/piimgtools.cc

    r114 r116  
    1212// ------ Menu des options et fenetre de dialogue pour changement de LUT --------
    1313
     14PIImgLutWind* PIImgLutWind::curlutw = NULL;
     15/* --Methode-- */
     16void PIImgLutWind::ShowPIImgLutWind()
     17{
     18if (curlutw == NULL)  curlutw = new PIImgLutWind(PIApplicationGetApp());
     19curlutw->Show();
     20}
    1421
    1522/* --Methode-- */
     
    1724: PIWindow((PIMsgHandler*)par, "PIImageTools", PIWK_dialog, 240, 240, 150, 150)
    1825{
    19 int bsx, bsy;
     26int bsx, bsy, spx, spy;
    2027
    2128// On definit la taille a partir de la taille par defaut des composantes
    2229// PIApplicationPrefCompSize(bsx, bsy);
    2330par->PrefCompSz(bsx, bsy);
    24 mLab[0] = new PILabel(this, "MinPixel", 60, 35, 30, 20);
    25 mLab[1] = new PILabel(this, "MaxPixel", 60, 35, 30, 65);
    26 
     31spx = bsx/10;
     32spy = bsy/4;
     33
     34int wszx = 8*spx+3*bsx+1.5*bsy;
     35int wszy = 10*spy+7*bsy;
     36SetSize(wszx, wszy);
     37
     38int cpx = spx*2;
     39int cpy = spy*2;
     40int csx = cpx;
     41int csy = cpy;
     42mLab[0] = new PILabel(this, "MinPixel", bsx, bsy, cpx, cpy);
     43cpy += spy+bsy;
     44mLab[1] = new PILabel(this, "MaxPixel", bsx, bsy, cpx, cpy);
    2745mLab[0]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
    2846mLab[1]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
    2947
    30 mText[0] = new PIText(this, "MinVal", 100, 35, 110, 20);
     48cpy = spy*2;
     49cpx += spx+bsx;
     50mText[0] = new PIText(this, "MinVal", 1.75*bsx, bsy, cpx, cpy);
    3151mText[0]->SetText("1");
    32 mText[1] = new PIText(this, "MaxVal", 100, 35, 110, 65);
     52cpy += spy+bsy;
     53mText[1] = new PIText(this, "MaxVal", 1.75*bsx, bsy, cpx, cpy);
    3354mText[1]->SetText("32000");
    3455mText[0]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
    3556mText[1]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
    36 
    37 mOlb[0] = new PILabel(this, "LutType", 60, 30, 30, 110);
     57cpy += spy+bsy;
     58cpx = spx*2;
     59mOlb[0] = new PILabel(this, "LutType", bsx, bsy, cpx, cpy);
    3860mOlb[0]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
    39 mOpt[0] = new PIOptMenu(this, "imglut-opt-1", 100, 30, 110, 110);
     61cpx += spx+bsx;
     62mOpt[0] = new PIOptMenu(this, "imglut-opt-1", 1.75*bsx, bsy, cpx, cpy);
    4063mOpt[0]->AppendItem("Linear", 1100);
    4164mOpt[0]->AppendItem("Log.", 1101);
     
    4366mOpt[0]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
    4467
    45 mOlb[1] = new PILabel(this, "AutoLut", 60, 30, 30, 140);
     68cpy += spy+bsy;
     69cpx = spx*2;
     70mOlb[1] = new PILabel(this, "AutoLut", bsx, bsy, cpx, cpy);
    4671mOlb[1]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
    47 mOpt[1] = new PIOptMenu(this, "imglut-opt-2", 100, 30, 110, 140);
     72cpx += spx+bsx;
     73mOpt[1] = new PIOptMenu(this, "imglut-opt-2", 1.75*bsx, bsy, cpx, cpy);
    4874mOpt[1]->AppendItem("+3 Sig", 1203);
    4975mOpt[1]->AppendItem("+2 Sig", 1202);
     
    5682mOpt[1]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
    5783
    58 mBut[0] = new PIButton(this, "Apply", 1500, 70, 30, 30, 190);
    59 mBut[1] = new PIButton(this, "Dismiss", 1600, 70, 30, 140, 190);
     84cpy += spy+bsy;
     85cpx = bsx/2;
     86mBut[0] = new PIButton(this, "Apply", 2500, bsx*1.5, bsy, cpx, cpy);
     87cpx += bsx*2;
     88mBut[1] = new PIButton(this, "Dismiss", 2600,  bsx*1.5, bsy, cpx, cpy);
    6089mBut[0]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
    6190mBut[1]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
     91
     92int offy = cpy+bsy+spy*2;
     93printf("-DBG- PIImgLutWind()  SzX,Y= %d %d , ButPos= %d %d (off=%d)\n", wszx, wszy, cpx, cpy, offy);
     94
     95cpx = 5*spx+2.5*bsx;
     96cpy = 2*spy;
     97mSc[0] = new PIScale(this, "offset-lut", 2700, false, bsy*0.75, 4.5*bsy, cpx, cpy);
     98cpx += 1.5*bsy;
     99mSc[1] = new PIScale(this, "offset-lut", 2800, false, bsy*0.75, 4.5*bsy, cpx, cpy);
     100mSc[0]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
     101mSc[0]->SetMinMax(-50, 50);
     102mSc[0]->SetValue(0);
     103mSc[1]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
     104mSc[1]->SetMinMax(-50, 50);
     105mSc[1]->SetValue(0);
     106
     107//  Option-Menu  Couleur/Zoom
     108cpx = 2*spx;
     109cpy = offy;
     110mOptzc[0] = new PIOptMenu(this, "imglut-opt-3", 1.5*bsx, bsy, cpx, cpy);
     111mOptzc[0]->AppendItem("Grey32", 201);
     112mOptzc[0]->AppendItem("GreyInv32", 202);
     113mOptzc[0]->AppendItem("ColRJ32", 203);
     114mOptzc[0]->AppendItem("ColBR32", 204);
     115mOptzc[0]->AppendItem("ColRV32", 205);
     116mOptzc[0]->AppendItem("Grey128", 206);
     117mOptzc[0]->AppendItem("GreyInv128", 207);
     118mOptzc[0]->AppendItem("ColRJ128", 208);
     119mOptzc[0]->AppendItem("ColBR128", 209);
     120mOptzc[0]->AppendItem("Col16", 210);
     121mOptzc[0]->SetValue(203);
     122
     123cpx += 1.5*bsx+2*spx;
     124mOptzc[1] = new PIOptMenu(this, "imglut-opt-4", 1.5*bsx, bsy, cpx, cpy);
     125mOptzc[1]->AppendItem("Agr. x10", 110);
     126mOptzc[1]->AppendItem("Agr. x 8", 108);
     127mOptzc[1]->AppendItem("Agr. x 6", 106);
     128mOptzc[1]->AppendItem("Agr. x 5", 105);
     129mOptzc[1]->AppendItem("Agr. x 4", 104);
     130mOptzc[1]->AppendItem("Agr. x 3", 103);
     131mOptzc[1]->AppendItem("Agr. x 2", 102);
     132mOptzc[1]->AppendItem("Zoom x 1", 101);
     133mOptzc[1]->AppendItem("Red. / 2", 98);
     134mOptzc[1]->AppendItem("Red. / 3", 97);
     135mOptzc[1]->AppendItem("Red. / 4", 96);
     136mOptzc[1]->AppendItem("Red. / 5", 95);
     137mOptzc[1]->AppendItem("Red. / 6", 94);
     138mOptzc[1]->AppendItem("Red. / 8", 92);
     139mOptzc[1]->AppendItem("Red. /10", 90);
     140mOptzc[1]->SetValue(101);
     141
     142curlutw = this;
     143
    62144}
    63145
     
    65147PIImgLutWind::~PIImgLutWind()
    66148{
     149if (curlutw == this)  curlutw = NULL;
    67150for(int i=0; i<2; i++)
    68151  {
     
    72155  delete mOpt[i];
    73156  delete mOlb[i];
     157  delete mSc[i];
     158  delete mOptzc[i];
    74159  }
    75160}
     
    92177string s("NoAuto");
    93178mOpt[1]->SetValueStr(s);
     179mSc[0]->SetValue(0);
     180mSc[1]->SetValue(0);
    94181return;
    95182}
     
    99186void PIImgLutWind::Process(PIMessage msg, PIMsgHandler* /*sender*/, void* /*data*/)
    100187{
    101 float min, max;
     188float min, max, del;
    102189int lauto, typ;
    103190int typlut[2] = {kLutType_Lin, kLutType_Log} ;
     
    106193switch (msg)
    107194  {
    108   case 1600:
     195  case 2600:
    109196    this->Hide();
    110197    break;
    111   case 1500:
     198  case 2500:
     199  case 2700 :
     200  case 2800 :
     201    {
    112202    if (PIImage::CurrentPIImage() == NULL)  return;
    113203    min = atof(mText[0]->GetText().c_str());
    114204    max = atof(mText[1]->GetText().c_str());
     205    if (msg == 2700) {
     206      min += (float)mSc[0]->GetValue()/100*del;
     207      max += (float)mSc[0]->GetValue()/100*del;
     208    }
     209    if (msg == 2800) {
     210      min -= (float)mSc[0]->GetValue()/100*del*0.5;
     211      max += (float)mSc[0]->GetValue()/100*del*0.5;
     212    }
     213    if ( (msg == 2700) || (msg == 2800) ) {
     214      char buff[92];
     215      sprintf(buff,"%g", min);
     216      mText[0]->SetText(buff);
     217      sprintf(buff,"%g", max);
     218      mText[1]->SetText(buff);
     219    }
    115220    lauto = mOpt[1]->GetValue() - 1200;
    116221    typ = mOpt[0]->GetValue() - 1100;
    117222    if ( (typ < 0) || (typ > 1) )  typ = 0;
    118223    (PIImage::CurrentPIImage())->SetLut(min, max, typlut[typ], lauto);
     224    mSc[0]->SetValue(0);
     225    mSc[1]->SetValue(0);
    119226//    ((PIImage::CurrentPIImage())->Lut())->Print();
    120     break;
     227    }
     228    break;
     229
    121230  default:
    122231//    printf("PIImgLutWind::Process Msg %d received \n", (int)msg);
    123232    break;
    124233  }
     234
     235if (PIImage::CurrentPIImage() == NULL)  return;
     236
     237CMapId cmap[10] =  { CMAP_GREY32, CMAP_GREYINV32, CMAP_COLRJ32,
     238                      CMAP_COLBR32, CMAP_COLRV32, CMAP_GREY128,
     239                      CMAP_GREYINV128, CMAP_COLRJ128, CMAP_COLBR128,
     240                      CMAP_COL16 };
     241
     242if ((msg <= 110) && (msg >= 90))  // Zoom
     243  PIImage::CurrentPIImage()->SetZoom((int)(msg-100));
     244else if ((msg > 200) && (msg < 206)) // Changement de couleur
     245  PIImage::CurrentPIImage()->SetColMap(cmap[msg-201]);
     246
    125247}
    126248
     
    140262
    141263pdm[1] = new PIMenu(this, "Zoom");
    142 pdm[1]->AppendItem("Agr. *10", 110);
    143 pdm[1]->AppendItem("Agr. * 8", 108);
    144 pdm[1]->AppendItem("Agr. * 6", 106);
    145 pdm[1]->AppendItem("Agr. * 5", 105);
    146 pdm[1]->AppendItem("Agr. * 4", 104);
    147 pdm[1]->AppendItem("Agr. * 3", 103);
    148 pdm[1]->AppendItem("Agr. * 2", 102);
    149 pdm[1]->AppendItem("* 1", 101);
     264pdm[1]->AppendItem("Agr. x10", 110);
     265pdm[1]->AppendItem("Agr. x 8", 108);
     266pdm[1]->AppendItem("Agr. x 6", 106);
     267pdm[1]->AppendItem("Agr. x 5", 105);
     268pdm[1]->AppendItem("Agr. x 4", 104);
     269pdm[1]->AppendItem("Agr. x 3", 103);
     270pdm[1]->AppendItem("Agr. x 2", 102);
     271pdm[1]->AppendItem("Zoom x1", 101);
    150272pdm[1]->AppendItem("Red. / 2", 98);
    151273pdm[1]->AppendItem("Red. / 3", 97);
  • trunk/SophyaPI/PI/piimgtools.h

    r112 r116  
    2222  virtual void  Show();
    2323
     24  static PIImgLutWind* curlutw;
     25  static void ShowPIImgLutWind();
    2426protected:
    2527  virtual void  Process(PIMessage msg, PIMsgHandler* sender, void* data=NULL);
    2628
    2729private:
    28   PILabel * mLab[2];
    29   PIButton * mBut[2];
    30   PIText * mText[2];
    31   PIOptMenu * mOpt[2];
    32   PILabel * mOlb[2];
     30// Pour changer la LUT
     31  PILabel* mLab[2];
     32  PIButton* mBut[2];
     33  PIText* mText[2];
     34  PIOptMenu* mOpt[2];
     35  PILabel* mOlb[2];
     36  PIScale* mSc[2];
     37// Pour la couleur et le zoom
     38  PIOptMenu* mOptzc[2];
     39// Pour expand et compress
     40  PIButton* mButsz[5];
     41// Pour options d'affichage
     42  PIButton* mButoa[6];
     43// Config axes
     44  PIButton* mButcax[3];
    3345};
     46
    3447
    3548class PIImgMenu : public PIMenu
     
    4457};
    4558
     59
    4660#endif
  • trunk/SophyaPI/PI/pisurfdr.cc

    r115 r116  
    5252  float D = xmax-xmin;
    5353  if (D < (ymax-ymin))  D = ymax-ymin;
    54   D *= 1.4;
     54  D *= 1.5;
    5555 
    56   Set3DView((xmin+xmax)/2., (ymin+ymax)/2, (zmin+zmax)/2.,
     56  Set3DView((xmin+xmax)/2., (ymin+ymax)/2, (zmin+zmax)*0.4,
    5757            (xmin+xmax)/2.+D , (ymin+ymax)/2.+2.*D , zmin+(zmax-zmin)*0.1, 0.3, 0.3); 
    5858//  printf("PISurfaceDrawer::UpdateSize() : %g-%g  %g-%g  %g-%g (%g) \n", xmin,xmax,ymin,ymax,zmin,zmax,D);
Note: See TracChangeset for help on using the changeset viewer.