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 27 // The data class which defined the configuration parameters for plotting 28 // which can be modified via UI commands. 29 // 30 // Author: Ivana Hrivnacova, 21/10/2015 (ivana@ipno.in2p3.fr) 31 32 #ifndef G4PlotParameters_h 33 #define G4PlotParameters_h 1 34 35 #include "globals.hh" 36 #include "G4PlotMessenger.hh" 37 38 #include <memory> 39 #include <string_view> 40 41 class G4PlotParameters 42 { 43 public: 44 G4PlotParameters(); 45 46 // setters 47 void SetLayout(G4int columns, G4int rows); 48 void SetDimensions(G4int width, G4int height); 49 void SetStyle(const G4String& style); 50 51 // getters 52 // limits 53 G4int GetMaxColumns(); 54 G4int GetMaxRows(); 55 G4String GetAvailableStyles(); 56 // data 57 G4int GetColumns() const; 58 G4int GetRows() const; 59 G4int GetWidth() const; 60 G4int GetHeight() const; 61 G4float GetScale() const; 62 G4String GetStyle() const; 63 64 private: 65 // Static data members 66 static constexpr std::string_view fkClass { "G4PlotParameters" }; 67 static constexpr G4int fkHRDefaultWidth { 2000 }; 68 static constexpr G4int fkLRDefaultWidth { 700 }; 69 static constexpr G4int fkDefaultColumns { 1 }; 70 static constexpr G4int fkDefaultRows { 2 }; 71 static constexpr G4float fkDefaultScale { 0.9f }; 72 #if defined(TOOLS_USE_FREETYPE) 73 //Have vertical A4 : 74 static constexpr G4int fkDefaultWidth { fkHRDefaultWidth }; 75 static constexpr G4int fkDefaultHeight { static_cast<G4int>(29.7f/21.0f*fkHRDefaultWidth) }; 76 // limits 77 static constexpr G4int fkMaxColumns { 3 }; 78 static constexpr G4int fkMaxRows { 5 }; 79 #else 80 //Have vertical A4 : 81 static constexpr G4int fkDefaultWidth { fkLRDefaultWidth }; 82 static constexpr G4int fkDefaultHeight { static_cast<G4int>(29.7f/21.0f*fkLRDefaultWidth) }; 83 // limits 84 static constexpr G4int fkMaxColumns { 2 }; 85 static constexpr G4int fkMaxRows { 3 }; 86 #endif 87 88 // Data members 89 std::unique_ptr<G4PlotMessenger> fMessenger; 90 // defaults 91 G4String fDefaultStyle; 92 G4String fAvailableStyles; 93 // data 94 G4int fColumns { fkDefaultColumns }; 95 G4int fRows { fkDefaultRows }; 96 G4int fWidth { fkDefaultWidth }; 97 G4int fHeight { fkDefaultHeight }; 98 G4float fScale { fkDefaultScale }; 99 G4String fStyle; 100 }; 101 102 // inline functions 103 104 inline G4int G4PlotParameters::GetMaxColumns() 105 { return fkMaxColumns; } 106 107 inline G4int G4PlotParameters::GetMaxRows() 108 { return fkMaxRows; } 109 110 inline G4String G4PlotParameters::GetAvailableStyles() 111 { return fAvailableStyles; } 112 113 inline G4int G4PlotParameters::GetColumns() const 114 { return fColumns; } 115 116 inline G4int G4PlotParameters::GetRows() const 117 { return fRows; } 118 119 inline G4int G4PlotParameters::GetWidth() const 120 { return fWidth; } 121 122 inline G4int G4PlotParameters::GetHeight() const 123 { return fHeight; } 124 125 inline G4float G4PlotParameters::GetScale() const 126 { return fScale; } 127 128 inline G4String G4PlotParameters::GetStyle() const 129 { return fStyle; } 130 131 #endif 132