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 #ifndef DicomBeamControlPoint__HH 27 #define DicomBeamControlPoint__HH 28 29 #include "dcmtk/dcmrt/seq/drtcps.h" // for ControlPointSequence 30 31 #include <iostream> 32 #include <vector> 33 class DicomBeamDevicePos; 34 35 #include "G4ThreeVector.hh" 36 37 class DicomBeamControlPoint 38 { 39 public: 40 DicomBeamControlPoint(DRTControlPointSequence::Item cpItem, DicomBeamControlPoint* point0); 41 ~DicomBeamControlPoint() {}; 42 43 public: 44 void SetIndex(Sint32 dat) { theIndex = dat; } 45 Sint32 GetIndex() const { return theIndex; } 46 void SetNominalBeamEnergy(Float64 dat) { theNominalBeamEnergy = dat; } 47 Float64 GetNominalBeamEnergy() const { return theNominalBeamEnergy; } 48 void SetGantryAngle(Float64 dat) { theGantryAngle = dat; } 49 void SetGantryRotationDirection(OFString dat) { theGantryRotationDirection = dat; } 50 void SetBeamLimitingDeviceAngle(Float64 dat) { theBeamLimitingDeviceAngle = dat; } 51 void SetBeamLimitingDeviceRotationDirection(OFString dat) 52 { 53 theBeamLimitingDeviceRotationDirection = dat; 54 } 55 void SetPatientSupportAngle(Float64 dat) { thePatientSupportAngle = dat; } 56 void SetPatientSupportRotationDirection(OFString dat) 57 { 58 thePatientSupportRotationDirection = dat; 59 } 60 void SetTableTopEccentricAngle(Float64 dat) { theTableTopEccentricAngle = dat; } 61 void SetTableTopEccentricRotationDirection(OFString dat) 62 { 63 theTableTopEccentricRotationDirection = dat; 64 } 65 void SetIsocenterPosition(G4ThreeVector dat) { theIsocenterPosition = dat; } 66 void SetSourceToSurfaceDistance(Float64 dat) { theSourceToSurfaceDistance = dat; } 67 void SetCumulativeMetersetWeight(Float64 dat) { theCumulativeMetersetWeight = dat; } 68 void SetMetersetWeight(Float64 dat) { theMetersetWeight = dat; } 69 void SetGantryPitchAngle(Float32 dat) { theGantryPitchAngle = dat; } 70 void SetSurfaceEntryPoint(Float64 dat) { theSurfaceEntryPoint = dat; } 71 void SetTableTopEccentricAxisDistance(Float64 dat) { theTableTopEccentricAxisDistance = dat; } 72 void SetTableTopLateralPosition(Float64 dat) { theTableTopLateralPosition = dat; } 73 void SetTableTopLongitudinalPosition(Float64 dat) { theTableTopLongitudinalPosition = dat; } 74 void SetTableTopPitchAngle(Float32 dat) { theTableTopPitchAngle = dat; } 75 void SetTableTopPitchRotationDirection(OFString dat) 76 { 77 theTableTopPitchRotationDirection = dat; 78 } 79 void SetTableTopRollAngle(Float32 dat) { theTableTopRollAngle = dat; } 80 void SetTableTopRollRotationDirection(OFString dat) { theTableTopRollRotationDirection = dat; } 81 void SetTableTopVerticalPosition(Float64 dat) { theTableTopVerticalPosition = dat; } 82 OFString GetGantryRotationDirection() const { return theGantryRotationDirection; } 83 Float64 GetBeamLimitingDeviceAngle() const { return theBeamLimitingDeviceAngle; } 84 OFString GetBeamLimitingDeviceRotationDirection() const 85 { 86 return theBeamLimitingDeviceRotationDirection; 87 } 88 Float64 GetPatientSupportAngle() const { return thePatientSupportAngle; } 89 OFString GetPatientSupportRotationDirection() const 90 { 91 return thePatientSupportRotationDirection; 92 } 93 Float64 GetTableTopEccentricAngle() const { return theTableTopEccentricAngle; } 94 OFString GetTableTopEccentricRotationDirection() const 95 { 96 return theTableTopEccentricRotationDirection; 97 } 98 G4ThreeVector GetIsocenterPosition() const { return theIsocenterPosition; } 99 Float64 GetSourceToSurfaceDistance() const { return theSourceToSurfaceDistance; } 100 Float64 GetCumulativeMetersetWeight() const { return theCumulativeMetersetWeight; } 101 Float64 GetMetersetWeight() const { return theMetersetWeight; } 102 Float32 GetGantryPitchAngle() const { return theGantryPitchAngle; } 103 Float64 GetSurfaceEntryPoint() const { return theSurfaceEntryPoint; } 104 Float64 GetTableTopEccentricAxisDistance() const { return theTableTopEccentricAxisDistance; } 105 Float64 GetTableTopLateralPosition() const { return theTableTopLateralPosition; } 106 Float64 GetTableTopLongitudinalPosition() const { return theTableTopLongitudinalPosition; } 107 Float32 GetTableTopPitchAngle() const { return theTableTopPitchAngle; } 108 OFString GetTableTopPitchRotationDirection() const { return theTableTopPitchRotationDirection; } 109 Float32 GetTableTopRollAngle() const { return theTableTopRollAngle; } 110 OFString GetTableTopRollRotationDirection() const { return theTableTopRollRotationDirection; } 111 Float64 GetTableTopVerticalPosition() const { return theTableTopVerticalPosition; } 112 113 void AddDevice(DicomBeamDevicePos* dbd) { theDevices.push_back(dbd); } 114 115 void DumpToFile(std::ofstream& out); 116 117 void Print(std::ostream& out); 118 119 private: 120 Sint32 theIndex; 121 Float64 theNominalBeamEnergy; 122 Float64 theGantryAngle; 123 OFString theGantryRotationDirection; 124 Float64 theBeamLimitingDeviceAngle; 125 OFString theBeamLimitingDeviceRotationDirection; 126 Float64 thePatientSupportAngle; 127 OFString thePatientSupportRotationDirection; 128 Float64 theTableTopEccentricAngle; 129 OFString theTableTopEccentricRotationDirection; 130 G4ThreeVector theIsocenterPosition; 131 Float64 theSourceToSurfaceDistance; 132 Float64 theCumulativeMetersetWeight; 133 Float64 theMetersetWeight; 134 Float32 theGantryPitchAngle; 135 Float64 theSurfaceEntryPoint; 136 Float64 theTableTopEccentricAxisDistance; 137 Float64 theTableTopLateralPosition; 138 Float64 theTableTopLongitudinalPosition; 139 Float32 theTableTopPitchAngle; 140 OFString theTableTopPitchRotationDirection; 141 Float32 theTableTopRollAngle; 142 OFString theTableTopRollRotationDirection; 143 Float64 theTableTopVerticalPosition; 144 145 std::vector<DicomBeamDevicePos*> theDevices; 146 }; 147 148 #endif 149