Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 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 73 void putFrameInStream(float,float,float,floa 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,u 86 double&,double 87 void putImageInStream(unsigned int,unsigned 88 private: 89 //void drawPolygon(int,float*,float*,float,f 90 //void drawLines(int,float*,float*,float,flo 91 //void drawMarkers(int,float*,float*, 92 // float,float,float,const S 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 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