Changeset 587


Ignore:
Timestamp:
Sep 26, 2007, 3:29:10 PM (17 years ago)
Author:
garnier
Message:

r615@mac-90108: laurentgarnier | 2007-09-26 15:32:59 +0200
ok pour le moment avec alpha, mais tout les cas ne sont pas geres

Location:
trunk/geant4/visualization
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/geant4/visualization/G4History.macro

    r586 r587  
    5959/gui/addButton viewer "Update scene" "/vis/scene/notifyHandlers"
    6060/N03/event/printModulo 100
    61 /run/beamOn 1
  • trunk/geant4/visualization/OpenGL/src/G4OpenGLQtExportDialog.cc

    r586 r587  
    236236}
    237237
    238 int G4OpenGLQtExportDialog::getColorValue()
    239 {
     238int G4OpenGLQtExportDialog::getNbColor()
     239{
     240  // Black and white
    240241  if (!color->isChecked())
    241242    return 1;
     243  // rgb color with alpha
    242244  if (color->isChecked() && transparencyEPS->isChecked())
    243245    return 4;
     246  // rgb color
    244247  return 3;
    245248}
  • trunk/geant4/visualization/OpenGL/src/G4OpenGLQtViewer.cc

    r586 r587  
    958958)
    959959{
    960  
     960  // FIXME
    961961  printf("saving EPS\n");
    962962
    963963  FILE* fp;
    964  
     964  aInColor = 3;
     965
    965966  const uchar * pixels = aImage.bits ();
    966967    //  pixels = grabPixels (inColour, width, height);
     
    977978  fprintf (fp, "%%%%Title: %s\n", aFilename.toStdString().c_str());
    978979  fprintf (fp, "%%%%Creator: OpenGL pixmap render output\n");
    979   fprintf (fp, "%%%%BoundingBox: 0 0 %d %d\n", fWindow->width(), fWindow->height());
     980  fprintf (fp, "%%%%BoundingBox: 0 0 %d %d\n", aImage.width(), aImage.height());
    980981  fprintf (fp, "%%%%EndComments\n");
    981982  fprintf (fp, "gsave\n");
     
    9991000  fprintf (fp, "   }  def\n");
    10001001  fprintf (fp, "} if\n");
    1001   fprintf (fp, "/picstr %d string def\n", fWindow->width() * aInColor);
    1002   fprintf (fp, "%d %d scale\n", fWindow->width(), fWindow->height());
    1003   fprintf (fp, "%d %d %d\n", fWindow->width(), fWindow->height(), 8);
    1004   fprintf (fp, "[%d 0 0 %d 0 0]\n", fWindow->width(), fWindow->height());
     1002  fprintf (fp, "/picstr %d string def\n", aImage.width() * aInColor);
     1003  fprintf (fp, "%d %d scale\n", aImage.width(), aImage.height());
     1004  fprintf (fp, "%d %d %d\n", aImage.width(), aImage.height(), 8);
     1005  fprintf (fp, "[%d 0 0 %d 0 0]\n", aImage.width(), aImage.height());
    10051006  fprintf (fp, "{currentfile picstr readhexstring pop}\n");
    10061007  fprintf (fp, "false %d\n", aInColor);
     
    10081009  fprintf (fp, "colorimage\n");
    10091010 
    1010   printf("boucle jusque :%d/%d par ligne:%d \n",fWindow->width()*fWindow->height()*aInColor,aImage.numBytes(),aImage.bytesPerLine ());
    1011 
    1012   int pos =0;
    1013   for (int i = 0;i<fWindow->width()*fWindow->height()*aInColor; i++) {
    1014     fprintf (fp, "%02hx ", pixels[i]);
    1015     if (++pos >= aImage.bytesPerLine ()) {
     1011  printf("boucle jusque :%d/%d par ligne:%d \n",aImage.width()*aImage.height()*aInColor,aImage.numBytes(),aImage.bytesPerLine ());
     1012
     1013  QRgb color;
     1014  if (aInColor == 3) {  // for RGB images
     1015    for (int j=aImage.height()-1;j>=0;j--){
     1016      for (int i=0;i<aImage.width();i++){
     1017        color = aImage.pixel (i,j);
     1018        fprintf (fp, " %02hx %02hx %02hx",qBlue(color),qGreen(color),qRed(color));
     1019      }
    10161020      fprintf (fp, "\n");
    1017       pos = 0;
     1021    } 
     1022  } else if (aInColor == 4) {
     1023    // for RGB images
     1024    for (int j=aImage.height()-1;j>=0;j--){
     1025      for (int i=0;i<aImage.width();i++){
     1026        color = aImage.pixel (i,j);
     1027        fprintf (fp, " %02hx %02hx %02hx %02hx",qAlpha(color), qRed(color),qGreen(color),qBlue(color));
     1028      }
     1029      fprintf (fp, "\n");
    10181030    }
    10191031  }
    1020  
    1021   if (pos)
    1022     fprintf (fp, "\n");
     1032  else if (aInColor == 1) { // for grayscale
     1033  }
    10231034 
    10241035  fprintf (fp, "grestore\n");
Note: See TracChangeset for help on using the changeset viewer.