Geant4 Cross Reference |
1 // 2 // ******************************************************************** 3 // * License and Disclaimer * 4 // * * 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. * 10 // * * 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitation of liability. * 17 // * * 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************************************** 25 // 26 // History : 27 // - 25/09/98, G.Barrand : creation. 28 29 #ifndef HEPVis_SbPainterPS_h 30 #define HEPVis_SbPainterPS_h 31 32 // Inheritance : 33 #include <HEPVis/SbPainter.h> 34 35 #include <stdarg.h> 36 37 #include <Inventor/SbViewportRegion.h> 38 39 #define SbPainterPS Geant4_SbPainterPS 40 41 class SbPainterPS : public SbPainter { 42 public: 43 SbPainterPS(); 44 ~SbPainterPS(); 45 void beginTraversal(); 46 void clearColorBuffer(float,float,float); 47 //void drawPrimitive(SbPrimitiveType, 48 // int,float*,float*,float*, 49 // const SbPainterContext&); 50 void endTraversal(); 51 public: 52 void setColorScheme(int); 53 void setOrientation(int); 54 void setBackgroundDrawn(int); 55 void setBitsPerPixel(int); 56 void setLineWidth(int); 57 void* getStream(); 58 void setFileName(const char*); 59 const char* getFileName() const; 60 void openFileForWriting(const char*); 61 void closeStream(); 62 void putPageScaleInStream(float,float); 63 void putSaveStateInStream(); 64 void putRestoreStateInStream(); 65 void putTranslationInStream(float,float); 66 void putScaleInStream(float,float); 67 void putBeginPageInStream(); 68 void putEndPageInStream(); 69 void putRGB_InStream(float,float,float); 70 void putMarkerSizeInStream(float); 71 //void putMarkerStyleInStream(SbMarkerStyle); 72 void putBackgroundInStream(float,float,float,float,float); 73 void putFrameInStream(float,float,float,float,float); 74 void putRotateInStream(float); 75 void putNewPathInStream(); 76 void putStrokeInStream(); 77 void putFillInStream(); 78 void putClosePathInStream(); 79 void putCapInStream(int); 80 void putLineToInStream(float,float); 81 void putMoveInStream(float,float); 82 void putCircleInStream(float,float,float); 83 void putLineWidthInStream(int); 84 //void putLineStyleInStream(SbLineStyle); 85 typedef int(*GetRGB_Function)(unsigned int,unsigned int, 86 double&,double&,double&); 87 void putImageInStream(unsigned int,unsigned int,GetRGB_Function); 88 private: 89 //void drawPolygon(int,float*,float*,float,float,float,const SbAreaStyle&); 90 //void drawLines(int,float*,float*,float,float,float,const SbLineStyle&,int); 91 //void drawMarkers(int,float*,float*, 92 // float,float,float,const SbMarkerStyle&,int); 93 enum ColorScheme { 94 Color = 0, 95 Grey = 1, 96 BlackWhite = 2 97 }; 98 struct { 99 int shade; 100 int portrait; 101 int nbit; 102 int doBack; 103 float lineWidth; 104 } fParams; 105 float fDeviceWidth; 106 float fDeviceHeight; 107 int fPageNumber; 108 float fMarkerSize; 109 FILE* fFile; 110 char* fFileName; 111 int fGSave; 112 int fBufferCount; 113 char* fBufferString; 114 #define METAFILE_RECORD_LENGTH 80 115 unsigned char fBufferPointer[METAFILE_RECORD_LENGTH+1]; 116 private: 117 void putInStreamF(const char*,...); 118 void printFLN(const char*,...); 119 void printV(const char*,va_list); 120 float convertRGB_ToGrey(float,float,float); 121 void writeByte(unsigned char); 122 }; 123 124 #endif 125 126 127 128 129 130