Ignore:
Timestamp:
Dec 11, 2007, 3:04:13 PM (17 years ago)
Author:
garnier
Message:

ajout du EPS vectoriel ticket #100

Location:
trunk/geant4/visualization/OpenGL
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/geant4/visualization/OpenGL/include/G4OpenGLQtExportDialog.hh

    r639 r652  
    6969  int getSliderValue();
    7070
    71   /** return the new width for file if format has a width widget, instead return -1 */
     71  /** return the new width for file if format has a width widget, instead return
     72the original value */
    7273  int getWidth();
    7374
    74   /** return the new height for file if format has a height widget, instead return -1 */
     75  /** return the new height for file if format has a height widget, instead return
     76the original value  */
    7577  int getHeight();
    7678
     
    8082  /** return the numbers of colors in the picture if format has a BW/Color widget, instead return -1 */
    8183  int getNbColor();
     84
     85  /** return if vector EPS is checked, if button does'nt exist, return 0 */
     86  bool getVectorEPS();
    8287
    8388public slots:
     
    102107  QPushButton* buttonOk;
    103108  QPushButton* buttonCancel;
    104   QCheckBox* transparencyEPS,*boxTransparency;
     109  QCheckBox* transparencyEPS,*boxTransparency,*vectorEPSCheckBox;
    105110  QCheckBox* ratioCheckBox;
    106111  QSlider * qualitySlider;
  • trunk/geant4/visualization/OpenGL/include/G4OpenGLQtViewer.hh

    r632 r652  
    9292  void rescaleImage(int, int);
    9393  bool generateEPS(QString,int,QImage); 
     94  bool generateVectorEPS (QString,int,int,QImage);
    9495  bool generatePS_PDF(QString,int,QImage); 
    9596
  • trunk/geant4/visualization/OpenGL/src/G4OpenGLQtExportDialog.cc

    r651 r652  
    273273
    274274    QWidget * EPSWidgetGroupBox; // widget containing group button
    275     QButtonGroup * EPSButtonGroupBox; // group button
    276275    QVBoxLayout *EPSGroupBoxLayout;
    277276
    278277#if QT_VERSION < 0x040000
    279278
    280     EPSButtonGroupBox = new QButtonGroup( 2,Qt::Vertical, tr("EPS options"),this);
    281     //    EPSGroupBoxLayout = new QVBoxLayout(EPSButtonGroupBox);
    282     colorButton = new QRadioButton("Color",EPSButtonGroupBox);
    283     BWButton = new QRadioButton("Grayscale",EPSButtonGroupBox);
    284     EPSButtonGroupBox->setInsideMargin (15);
    285     EPSButtonGroupBox->insert(colorButton);
    286     EPSButtonGroupBox->insert(BWButton);
    287     EPSButtonGroupBox->setExclusive(true);
    288     EPSWidgetGroupBox = EPSButtonGroupBox;
    289     //    EPSGroupBoxLayout->add(EPSWidgetGroupBox);
     279    QButtonGroup * EPSColorButtonGroupBox = new QButtonGroup( 2,Qt::Vertical, tr("EPS options"),this);
     280    //    EPSGroupBoxLayout = new QVBoxLayout(EPSColorButtonGroupBox);
     281    colorButton = new QRadioButton("Color",EPSColorButtonGroupBox);
     282    BWButton = new QRadioButton("Grayscale",EPSColorButtonGroupBox);
     283    EPSColorButtonGroupBox->setInsideMargin (15);
     284    EPSColorButtonGroupBox->insert(colorButton);
     285    EPSColorButtonGroupBox->insert(BWButton);
     286    EPSColorButtonGroupBox->setExclusive(true);
     287    EPSWidgetGroupBox->add(EPSColorButtonGroupBox);
     288
     289    vectorEPSCheckBox = new QCheckBox( "Vector EPS File",EPSWidgetGroupBox);
     290    vectorEPSCheckBox->setChecked( true );
     291    EPSWidgetGroupBox->add(vectorEPSCheckBox);
    290292
    291293#else
     
    297299    BWButton = new QRadioButton("Grayscale",EPSWidgetGroupBox);
    298300
    299     EPSButtonGroupBox = new QButtonGroup();
    300     EPSButtonGroupBox->addButton(colorButton);
    301     EPSButtonGroupBox->addButton(BWButton);
    302     EPSButtonGroupBox->setExclusive(true);
     301    QButtonGroup * EPSColorButtonGroupBox = new QButtonGroup();
     302    EPSColorButtonGroupBox->addButton(colorButton);
     303    EPSColorButtonGroupBox->addButton(BWButton);
     304    EPSColorButtonGroupBox->setExclusive(true);
    303305
    304306    EPSGroupBoxLayout->addWidget(colorButton);   
    305307    EPSGroupBoxLayout->addWidget(BWButton);   
     308
     309    vectorEPSCheckBox = new QCheckBox( "Vector EPS File",EPSWidgetGroupBox);
     310    vectorEPSCheckBox->setChecked( true );
     311    EPSGroupBoxLayout->addWidget(vectorEPSCheckBox);
     312
    306313    EPSWidgetGroupBox->setLayout(EPSGroupBoxLayout);
    307 
    308314#endif
    309315    colorButton->setChecked( true );
     
    355361int G4OpenGLQtExportDialog::getHeight()
    356362{
    357   if (!height) return -1;
     363  if (!height) return originalHeight;
    358364  return height->text().toInt();
    359365}
     
    361367int G4OpenGLQtExportDialog::getWidth()
    362368{
    363   if (!width) return -1;
     369  if (!width) return originalWidth;
    364370  return width->text().toInt();
    365371}
     
    381387}
    382388
     389bool G4OpenGLQtExportDialog::getVectorEPS()
     390{
     391  if (!vectorEPSCheckBox) return 0;
     392  return vectorEPSCheckBox->isChecked();
     393}
     394
    383395
    384396void G4OpenGLQtExportDialog::changeSizeBox()
  • trunk/geant4/visualization/OpenGL/src/G4OpenGLQtExportDialog_moc.cc

    r647 r652  
    22** Meta object code from reading C++ file 'G4OpenGLQtExportDialog.hh'
    33**
    4 ** Created: Fri Dec 7 15:42:42 2007
     4** Created: Tue Dec 11 12:06:10 2007
    55**      by: The Qt Meta Object Compiler version 59 (Qt 4.2.2)
    66**
  • trunk/geant4/visualization/OpenGL/src/G4OpenGLQtViewer.cc

    r650 r652  
    11151115    }   
    11161116    if (format == QString("eps")) {
    1117       generateEPS(nomFich,exportDialog->getNbColor(),image);
     1117      if (exportDialog->getVectorEPS()) {
     1118        generateVectorEPS(nomFich,exportDialog->getWidth(),exportDialog->getHeight(),image);
     1119      } else {
     1120        generateEPS(nomFich,exportDialog->getNbColor(),image);
     1121      }
    11181122    } else if ((format == "ps") || (format == "pdf")) {
    11191123      generatePS_PDF(nomFich,exportDialog->getNbColor(),image);
     
    12481252    } else if (mButtons & Qt::RightButton) {
    12491253      // NEVER DONE BECAUSE OF MOUSE MENU
    1250 #ifdef GEANT4_QT_DEBUG
    1251       //       printf("G4OpenGLQtViewer::mouseMoveEvent Right \n");
    1252 #endif
    12531254      //       setXRotation(xRot + dy/2);
    12541255      //       setZRotation(zRot + dx/2);
     
    12891290
    12901291/**
    1291    Generate Postscript form image
     1292   Generate Vectorial Encapsulated Postscript form image
     1293   @param aFilename : name of file
     1294   @param aInColor : numbers of colors : 1->BW 2->RGB 3->RGB+Alpha
     1295   @param aImage : Image to print
     1296*/
     1297bool G4OpenGLQtViewer::generateVectorEPS (
     1298 QString aFilename
     1299,int aWidth
     1300,int aHeight
     1301,QImage aImage
     1302)
     1303{
     1304  // Print vectored PostScript
     1305 
     1306  G4int size = 5000000;
     1307
     1308  GLfloat* feedback_buffer;
     1309  GLint returned;
     1310  FILE* file;
     1311 
     1312  feedback_buffer = new GLfloat[size];
     1313  glFeedbackBuffer (size, GL_3D_COLOR, feedback_buffer);
     1314  glRenderMode (GL_FEEDBACK);
     1315 
     1316#ifdef GEANT4_QT_DEBUG
     1317  printf("generateVectorEPS::  AVANt DRAWVIEW !!======================== \n");
     1318#endif
     1319  glViewport (0, 0, aWidth,aHeight);
     1320  DrawView();
     1321
     1322#ifdef GEANT4_QT_DEBUG
     1323  printf("generateVectorEPS::  APREs DRAWVIEW !!======================== \n");
     1324#endif
     1325  returned = glRenderMode (GL_RENDER);
     1326 
     1327 
     1328#if QT_VERSION < 0x040000
     1329  file = fopen (aFilename.ascii(), "w");
     1330#else
     1331  file = fopen (aFilename.toStdString().c_str(), "w");
     1332#endif
     1333  if (file) {
     1334    spewWireframeEPS (file, returned, feedback_buffer, "rendereps");
     1335  } else {
     1336    printf("Could not open %s\n", print_string);
     1337  }
     1338 
     1339  delete[] feedback_buffer;
     1340
     1341  return true;
     1342}
     1343
     1344/**
     1345   Generate Encapsulated Postscript form image
    12921346   @param aFilename : name of file
    12931347   @param aInColor : numbers of colors : 1->BW 2->RGB 3->RGB+Alpha
  • trunk/geant4/visualization/OpenGL/src/G4OpenGLQtViewer_moc.cc

    r647 r652  
    22** Meta object code from reading C++ file 'G4OpenGLQtViewer.hh'
    33**
    4 ** Created: Fri Dec 7 15:42:41 2007
     4** Created: Tue Dec 11 12:08:34 2007
    55**      by: The Qt Meta Object Compiler version 59 (Qt 4.2.2)
    66**
  • trunk/geant4/visualization/OpenGL/src/G4OpenGLStoredQtViewer.cc

    r635 r652  
    134134   //Make sure current viewer is attached and clean...
    135135   //Qt version needed
    136    glViewport (0, 0, WinSize_x, WinSize_y);
     136   //   glViewport (0, 0, WinSize_x, WinSize_y);
    137137
    138138   //See if things have changed from last time and remake if necessary...
Note: See TracChangeset for help on using the changeset viewer.