Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-13 09:11:02

0001 //
0002 // ********************************************************************
0003 // * License and Disclaimer                                           *
0004 // *                                                                  *
0005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
0006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
0007 // * conditions of the Geant4 Software License,  included in the file *
0008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
0009 // * include a list of copyright holders.                             *
0010 // *                                                                  *
0011 // * Neither the authors of this software system, nor their employing *
0012 // * institutes,nor the agencies providing financial support for this *
0013 // * work  make  any representation or  warranty, express or implied, *
0014 // * regarding  this  software system or assume any liability for its *
0015 // * use.  Please see the license in the file  LICENSE  and URL above *
0016 // * for the full disclaimer and the limitation of liability.         *
0017 // *                                                                  *
0018 // * This  code  implementation is the result of  the  scientific and *
0019 // * technical work of the GEANT4 collaboration.                      *
0020 // * By using,  copying,  modifying or  distributing the software (or *
0021 // * any work based  on the software)  you  agree  to acknowledge its *
0022 // * use  in  resulting  scientific  publications,  and indicate your *
0023 // * acceptance of all terms of the Geant4 Software license.          *
0024 // ********************************************************************
0025 //
0026 //
0027 
0028 // /vis/scene commands - John Allison  9th August 1998
0029 // Michael Kelsey  31 Jan 2019 -- Add new command for electric field
0030 
0031 #ifndef G4VISCOMMANDSSCENEADD_HH
0032 #define G4VISCOMMANDSSCENEADD_HH
0033 
0034 #include "G4VisCommandsScene.hh"
0035 
0036 class G4UIcmdWithoutParameter;
0037 class G4UIcmdWithAString;
0038 class G4UIcmdWithAnInteger;
0039 
0040 #include "G4Transform3D.hh"
0041 #include "G4VisAttributes.hh"
0042 #include "G4Polyline.hh"
0043 #include "G4Text.hh"
0044 #include "G4Timer.hh"
0045 
0046 class G4VisCommandSceneAddArrow: public G4VVisCommandScene {
0047 public:
0048   G4VisCommandSceneAddArrow ();
0049   virtual ~G4VisCommandSceneAddArrow ();
0050   G4String GetCurrentValue (G4UIcommand* command);
0051   void SetNewValue (G4UIcommand* command, G4String newValue);
0052 private:
0053   G4VisCommandSceneAddArrow (const G4VisCommandSceneAddArrow&);
0054   G4VisCommandSceneAddArrow& operator = (const G4VisCommandSceneAddArrow&);
0055   G4UIcommand* fpCommand;
0056 };
0057 
0058 class G4VisCommandSceneAddArrow2D: public G4VVisCommandScene {
0059 public:
0060   G4VisCommandSceneAddArrow2D ();
0061   virtual ~G4VisCommandSceneAddArrow2D ();
0062   G4String GetCurrentValue (G4UIcommand* command);
0063   void SetNewValue (G4UIcommand* command, G4String newValue);
0064 private:
0065   G4VisCommandSceneAddArrow2D (const G4VisCommandSceneAddArrow2D&);
0066   G4VisCommandSceneAddArrow2D& operator = (const G4VisCommandSceneAddArrow2D&);
0067   struct Arrow2D {
0068     Arrow2D(G4double x1, G4double y1,
0069         G4double x2, G4double y2,
0070         G4double width, const G4Colour& colour);
0071     void operator()(G4VGraphicsScene&, const G4ModelingParameters* fpMp);
0072     G4Polyline fShaftPolyline;
0073     G4Polyline fHeadPolyline;
0074     G4double fWidth;
0075     G4Colour fColour;
0076   };
0077   G4UIcommand* fpCommand;
0078 };
0079 
0080 class G4VisCommandSceneAddAxes: public G4VVisCommandScene {
0081 public:
0082   G4VisCommandSceneAddAxes ();
0083   virtual ~G4VisCommandSceneAddAxes ();
0084   G4String GetCurrentValue (G4UIcommand* command);
0085   void SetNewValue (G4UIcommand* command, G4String newValue);
0086 private:
0087   G4VisCommandSceneAddAxes (const G4VisCommandSceneAddAxes&);
0088   G4VisCommandSceneAddAxes& operator = (const G4VisCommandSceneAddAxes&);
0089   G4UIcommand* fpCommand;
0090 };
0091 
0092 class G4VisCommandSceneAddDate: public G4VVisCommandScene {
0093 public:
0094   G4VisCommandSceneAddDate ();
0095   virtual ~G4VisCommandSceneAddDate ();
0096   G4String GetCurrentValue (G4UIcommand* command);
0097   void SetNewValue (G4UIcommand* command, G4String newValue);
0098 private:
0099   G4VisCommandSceneAddDate (const G4VisCommandSceneAddDate&);
0100   G4VisCommandSceneAddDate& operator = (const G4VisCommandSceneAddDate&);
0101   struct Date {
0102     Date
0103     (G4VisManager* vm, G4int size,
0104      G4double x, G4double y, G4Text::Layout layout,
0105      const G4String& date):
0106       fpVisManager(vm), fSize(size),
0107       fX(x), fY(y), fLayout(layout), fDate(date) {}
0108     void operator()(G4VGraphicsScene&, const G4ModelingParameters*);
0109     G4VisManager* fpVisManager;
0110     G4Timer fTimer;
0111     G4int fSize;
0112     G4double fX, fY;
0113     G4Text::Layout fLayout;
0114     G4String fDate;
0115   };
0116   G4UIcommand* fpCommand;
0117 };
0118 
0119 class G4VisCommandSceneAddDigis: public G4VVisCommandScene {
0120 public:
0121   G4VisCommandSceneAddDigis ();
0122   virtual ~G4VisCommandSceneAddDigis ();
0123   G4String GetCurrentValue (G4UIcommand* command);
0124   void SetNewValue (G4UIcommand* command, G4String newValue);
0125 private:
0126   G4VisCommandSceneAddDigis (const G4VisCommandSceneAddDigis&);
0127   G4VisCommandSceneAddDigis& operator = (const G4VisCommandSceneAddDigis&);
0128   G4UIcmdWithoutParameter* fpCommand;
0129 };
0130 
0131 class G4VisCommandSceneAddEndOfRunMacro: public G4VVisCommandScene {
0132 public:
0133   G4VisCommandSceneAddEndOfRunMacro ();
0134   virtual ~G4VisCommandSceneAddEndOfRunMacro ();
0135   G4String GetCurrentValue (G4UIcommand* command);
0136   void SetNewValue (G4UIcommand* command, G4String newValue);
0137 private:
0138   G4VisCommandSceneAddEndOfRunMacro (const G4VisCommandSceneAddEndOfRunMacro&);
0139   G4VisCommandSceneAddEndOfRunMacro& operator = (const G4VisCommandSceneAddEndOfRunMacro&);
0140   struct EndOfRunMacro {
0141     EndOfRunMacro(const G4String& macro): fMacro(macro){};
0142     void operator()(G4VGraphicsScene&, const G4ModelingParameters*);
0143     G4String fMacro;
0144   };
0145   G4UIcmdWithAString* fpCommand;
0146 };
0147 
0148 class G4VisCommandSceneAddEventID: public G4VVisCommandScene {
0149 public:
0150   G4VisCommandSceneAddEventID ();
0151   virtual ~G4VisCommandSceneAddEventID ();
0152   G4String GetCurrentValue (G4UIcommand* command);
0153   void SetNewValue (G4UIcommand* command, G4String newValue);
0154 private:
0155   G4VisCommandSceneAddEventID (const G4VisCommandSceneAddEventID&);
0156   G4VisCommandSceneAddEventID& operator = (const G4VisCommandSceneAddEventID&);
0157   enum ForWhat {forEndOfEvent, forEndOfRun};
0158   struct EventID {
0159     EventID(ForWhat w, G4VisManager* vm, G4int size,
0160             G4double x, G4double y, G4Text::Layout layout):
0161     fForWhat(w), fpVisManager(vm), fSize(size),
0162     fX(x), fY(y), fLayout(layout) {}
0163     void operator()(G4VGraphicsScene&, const G4ModelingParameters*);
0164     ForWhat fForWhat;
0165     G4VisManager* fpVisManager;
0166     G4int fSize;
0167     G4double fX, fY;
0168     G4Text::Layout fLayout;
0169   };
0170   G4UIcommand* fpCommand;
0171 };
0172 
0173 class G4VisCommandSceneAddExtent: public G4VVisCommandScene {
0174 public:
0175   G4VisCommandSceneAddExtent ();
0176   virtual ~G4VisCommandSceneAddExtent ();
0177   G4String GetCurrentValue (G4UIcommand* command);
0178   void SetNewValue (G4UIcommand* command, G4String newValue);
0179 private:
0180   G4VisCommandSceneAddExtent (const G4VisCommandSceneAddExtent&);
0181   G4VisCommandSceneAddExtent& operator = (const G4VisCommandSceneAddExtent&);
0182   struct Extent {
0183     Extent(G4double xmin, G4double xmax,
0184            G4double ymin, G4double ymax,
0185            G4double zmin, G4double zmax);
0186     void operator()(G4VGraphicsScene&, const G4ModelingParameters*);
0187     G4VisExtent fExtent;
0188   };
0189   G4UIcommand* fpCommand;
0190 };
0191 
0192 class G4VisCommandSceneAddElectricField: public G4VVisCommandScene {
0193 public:
0194   G4VisCommandSceneAddElectricField ();
0195   virtual ~G4VisCommandSceneAddElectricField ();
0196   G4String GetCurrentValue (G4UIcommand* command);
0197   void SetNewValue (G4UIcommand* command, G4String newValue);
0198 private:
0199   G4VisCommandSceneAddElectricField (const G4VisCommandSceneAddElectricField&);
0200   G4VisCommandSceneAddElectricField& operator = (const G4VisCommandSceneAddElectricField&);
0201   G4UIcommand* fpCommand;
0202 };
0203 
0204 class G4VisCommandSceneAddFrame: public G4VVisCommandScene {
0205 public:
0206   G4VisCommandSceneAddFrame ();
0207   virtual ~G4VisCommandSceneAddFrame ();
0208   G4String GetCurrentValue (G4UIcommand* command);
0209   void SetNewValue (G4UIcommand* command, G4String newValue);
0210 private:
0211   G4VisCommandSceneAddFrame (const G4VisCommandSceneAddFrame&);
0212   G4VisCommandSceneAddFrame& operator = (const G4VisCommandSceneAddFrame&);
0213   struct Frame {
0214     Frame(G4double size, G4double width, const G4Colour& colour):
0215       fSize(size), fWidth(width), fColour(colour) {}
0216     void operator()(G4VGraphicsScene&, const G4ModelingParameters*);
0217     G4double fSize;
0218     G4double fWidth;
0219     G4Colour fColour;
0220   };
0221   G4UIcommand* fpCommand;
0222 };
0223 
0224 class G4VisCommandSceneAddGPS: public G4VVisCommandScene {
0225 public:
0226   G4VisCommandSceneAddGPS ();
0227   virtual ~G4VisCommandSceneAddGPS ();
0228   G4String GetCurrentValue (G4UIcommand* command);
0229   void SetNewValue (G4UIcommand* command, G4String newValue);
0230 private:
0231   G4VisCommandSceneAddGPS (const G4VisCommandSceneAddGPS&);
0232   G4VisCommandSceneAddGPS& operator = (const G4VisCommandSceneAddGPS&);
0233   G4UIcommand* fpCommand;
0234 };
0235 
0236 class G4VisCommandSceneAddGhosts: public G4VVisCommandScene {
0237 public:
0238   G4VisCommandSceneAddGhosts ();
0239   virtual ~G4VisCommandSceneAddGhosts ();
0240   G4String GetCurrentValue (G4UIcommand* command);
0241   void SetNewValue (G4UIcommand* command, G4String newValue);
0242 private:
0243   G4VisCommandSceneAddGhosts (const G4VisCommandSceneAddGhosts&);
0244   G4VisCommandSceneAddGhosts& operator =
0245   (const G4VisCommandSceneAddGhosts&);
0246   G4UIcmdWithAString* fpCommand;
0247 };
0248 
0249 class G4VisCommandSceneAddHits: public G4VVisCommandScene {
0250 public:
0251   G4VisCommandSceneAddHits ();
0252   virtual ~G4VisCommandSceneAddHits ();
0253   G4String GetCurrentValue (G4UIcommand* command);
0254   void SetNewValue (G4UIcommand* command, G4String newValue);
0255 private:
0256   G4VisCommandSceneAddHits (const G4VisCommandSceneAddHits&);
0257   G4VisCommandSceneAddHits& operator = (const G4VisCommandSceneAddHits&);
0258   G4UIcmdWithoutParameter* fpCommand;
0259 };
0260 
0261 class G4VisCommandSceneAddLine: public G4VVisCommandScene {
0262 public:
0263   G4VisCommandSceneAddLine ();
0264   virtual ~G4VisCommandSceneAddLine ();
0265   G4String GetCurrentValue (G4UIcommand* command);
0266   void SetNewValue (G4UIcommand* command, G4String newValue);
0267 private:
0268   G4VisCommandSceneAddLine (const G4VisCommandSceneAddLine&);
0269   G4VisCommandSceneAddLine& operator = (const G4VisCommandSceneAddLine&);
0270   struct Line {
0271     Line(G4double x1, G4double y1, G4double z1,
0272      G4double x2, G4double y2, G4double z2,
0273      G4double width, const G4Colour& colour);
0274     void operator()(G4VGraphicsScene&, const G4ModelingParameters*);
0275     G4Polyline fPolyline;
0276     G4double fWidth;
0277     G4Colour fColour;
0278   };
0279   G4UIcommand* fpCommand;
0280 };
0281 
0282 class G4VisCommandSceneAddLine2D: public G4VVisCommandScene {
0283 public:
0284   G4VisCommandSceneAddLine2D ();
0285   virtual ~G4VisCommandSceneAddLine2D ();
0286   G4String GetCurrentValue (G4UIcommand* command);
0287   void SetNewValue (G4UIcommand* command, G4String newValue);
0288 private:
0289   G4VisCommandSceneAddLine2D (const G4VisCommandSceneAddLine2D&);
0290   G4VisCommandSceneAddLine2D& operator = (const G4VisCommandSceneAddLine2D&);
0291   struct Line2D {
0292     Line2D(G4double x1, G4double y1,
0293      G4double x2, G4double y2,
0294      G4double width, const G4Colour& colour);
0295     void operator()(G4VGraphicsScene&, const G4ModelingParameters*);
0296     G4Polyline fPolyline;
0297     G4double fWidth;
0298     G4Colour fColour;
0299   };
0300   G4UIcommand* fpCommand;
0301 };
0302 
0303 class G4VisCommandSceneAddLocalAxes: public G4VVisCommandScene {
0304 public:
0305   G4VisCommandSceneAddLocalAxes ();
0306   virtual ~G4VisCommandSceneAddLocalAxes ();
0307   G4String GetCurrentValue (G4UIcommand* command);
0308   void SetNewValue (G4UIcommand* command, G4String newValue);
0309 private:
0310   G4VisCommandSceneAddLocalAxes (const G4VisCommandSceneAddLocalAxes&);
0311   G4VisCommandSceneAddLocalAxes& operator = (const G4VisCommandSceneAddLocalAxes&);
0312   G4UIcommand* fpCommand;
0313 };
0314 
0315 class G4VisCommandSceneAddLogicalVolume: public G4VVisCommandScene {
0316 public:
0317   G4VisCommandSceneAddLogicalVolume ();
0318   virtual ~G4VisCommandSceneAddLogicalVolume ();
0319   G4String GetCurrentValue (G4UIcommand* command);
0320   void SetNewValue (G4UIcommand* command, G4String newValue);
0321 private:
0322   G4VisCommandSceneAddLogicalVolume (const G4VisCommandSceneAddLogicalVolume&);
0323   G4VisCommandSceneAddLogicalVolume& operator =
0324   (const G4VisCommandSceneAddLogicalVolume&);
0325   G4UIcommand* fpCommand;
0326 };
0327 
0328 class G4VisCommandSceneAddLogo: public G4VVisCommandScene {
0329 public:
0330   G4VisCommandSceneAddLogo ();
0331   virtual ~G4VisCommandSceneAddLogo ();
0332   G4String GetCurrentValue (G4UIcommand* command);
0333   void SetNewValue (G4UIcommand* command, G4String newValue);
0334 private:
0335   G4VisCommandSceneAddLogo (const G4VisCommandSceneAddLogo&);
0336   G4VisCommandSceneAddLogo& operator = (const G4VisCommandSceneAddLogo&);
0337   // Direction of outward-facing normal to front face of logo.
0338   enum Direction {X, minusX, Y, minusY, Z, minusZ};
0339   struct G4Logo {
0340     G4Logo(G4double height, const G4VisAttributes&, const G4Transform3D&);
0341     ~G4Logo();
0342     void operator()(G4VGraphicsScene&, const G4ModelingParameters*);
0343   private:
0344     G4Polyhedron *fpG, *fp4;
0345   };
0346   G4UIcommand* fpCommand;
0347 };
0348 
0349 class G4VisCommandSceneAddLogo2D: public G4VVisCommandScene {
0350 public:
0351   G4VisCommandSceneAddLogo2D ();
0352   virtual ~G4VisCommandSceneAddLogo2D ();
0353   G4String GetCurrentValue (G4UIcommand* command);
0354   void SetNewValue (G4UIcommand* command, G4String newValue);
0355 private:
0356   G4VisCommandSceneAddLogo2D (const G4VisCommandSceneAddLogo2D&);
0357   G4VisCommandSceneAddLogo2D& operator = (const G4VisCommandSceneAddLogo2D&);
0358   struct Logo2D {
0359     Logo2D
0360     (G4VisManager* vm, G4int size,
0361      G4double x, G4double y, G4Text::Layout layout):
0362       fpVisManager(vm), fSize(size),
0363       fX(x), fY(y), fLayout(layout) {}
0364     void operator()(G4VGraphicsScene&, const G4ModelingParameters*);
0365     G4VisManager* fpVisManager;
0366     G4int fSize;
0367     G4double fX, fY;
0368     G4Text::Layout fLayout;
0369   };
0370   G4UIcommand* fpCommand;
0371 };
0372 
0373 class G4VisCommandSceneAddMagneticField: public G4VVisCommandScene {
0374 public:
0375   G4VisCommandSceneAddMagneticField ();
0376   virtual ~G4VisCommandSceneAddMagneticField ();
0377   G4String GetCurrentValue (G4UIcommand* command);
0378   void SetNewValue (G4UIcommand* command, G4String newValue);
0379 private:
0380   G4VisCommandSceneAddMagneticField (const G4VisCommandSceneAddMagneticField&);
0381   G4VisCommandSceneAddMagneticField& operator = (const G4VisCommandSceneAddMagneticField&);
0382   G4UIcommand* fpCommand;
0383 };
0384 
0385 class G4VisCommandSceneAddPSHits: public G4VVisCommandScene {
0386 public:
0387   G4VisCommandSceneAddPSHits ();
0388   virtual ~G4VisCommandSceneAddPSHits ();
0389   G4String GetCurrentValue (G4UIcommand* command);
0390   void SetNewValue (G4UIcommand* command, G4String newValue);
0391 private:
0392   G4VisCommandSceneAddPSHits (const G4VisCommandSceneAddPSHits&);
0393   G4VisCommandSceneAddPSHits& operator = (const G4VisCommandSceneAddPSHits&);
0394   G4UIcmdWithAString* fpCommand;
0395 };
0396 
0397 class G4VisCommandSceneAddScale: public G4VVisCommandScene {
0398 public:
0399   G4VisCommandSceneAddScale ();
0400   virtual ~G4VisCommandSceneAddScale ();
0401   G4String GetCurrentValue (G4UIcommand* command);
0402   void SetNewValue (G4UIcommand* command, G4String newValue);
0403 private:
0404   G4VisCommandSceneAddScale (const G4VisCommandSceneAddScale&);
0405   G4VisCommandSceneAddScale& operator = (const G4VisCommandSceneAddScale&);
0406   struct Scale {
0407     enum Direction {x, y, z};
0408     Scale (const G4VisAttributes& visAttribs,
0409        G4double length, const G4Transform3D&,
0410        const G4String& annotation, G4double annotationSize,
0411        const G4Colour& annotationColour
0412        );
0413     // This creates a representation of annotated line in the specified
0414     // direction with tick marks at the end.  If autoPlacing is true it
0415     // is required to be centred at the front, right, bottom corner of
0416     // the world space, comfortably outside the existing bounding
0417     // box/sphere so that existing objects do not obscure it.  Otherwise
0418     // it is required to be drawn with mid-point at (xmid, ymid, zmid).
0419     // Annotation size is size of text labels in pixels.
0420     //
0421     // The auto placing algorithm might be:
0422     //   x = xmin + (1 + comfort) * (xmax - xmin)
0423     //   y = ymin - comfort * (ymax - ymin)
0424     //   z = zmin + (1 + comfort) * (zmax - zmin)
0425     //   if direction == x then (x - length,y,z) to (x,y,z)
0426     //   if direction == y then (x,y,z) to (x,y + length,z)
0427     //   if direction == z then (x,y,z - length) to (x,y,z)
0428     ~Scale();
0429     void operator()(G4VGraphicsScene&,const G4ModelingParameters*);
0430   private:
0431     G4VisAttributes fVisAtts;
0432     G4Polyline fScaleLine, fTick11, fTick12, fTick21, fTick22;
0433     G4Text fText;
0434   };
0435   G4UIcommand* fpCommand;
0436 };
0437 
0438 class G4VisCommandSceneAddText: public G4VVisCommandScene {
0439 public:
0440   G4VisCommandSceneAddText ();
0441   virtual ~G4VisCommandSceneAddText ();
0442   G4String GetCurrentValue (G4UIcommand* command);
0443   void SetNewValue (G4UIcommand* command, G4String newValue);
0444 private:
0445   G4VisCommandSceneAddText (const G4VisCommandSceneAddText&);
0446   G4VisCommandSceneAddText& operator = (const G4VisCommandSceneAddText&);
0447   G4UIcommand* fpCommand;
0448 };
0449 
0450 class G4VisCommandSceneAddText2D: public G4VVisCommandScene {
0451 public:
0452   G4VisCommandSceneAddText2D ();
0453   virtual ~G4VisCommandSceneAddText2D ();
0454   G4String GetCurrentValue (G4UIcommand* command);
0455   void SetNewValue (G4UIcommand* command, G4String newValue);
0456 private:
0457   G4VisCommandSceneAddText2D (const G4VisCommandSceneAddText2D&);
0458   G4VisCommandSceneAddText2D& operator = (const G4VisCommandSceneAddText2D&);
0459   struct G4Text2D {
0460     G4Text2D(const G4Text&);
0461     void operator()(G4VGraphicsScene&, const G4ModelingParameters*);
0462   private:
0463     G4Text fText;
0464   };
0465   G4UIcommand* fpCommand;
0466 };
0467 
0468 class G4VisCommandSceneAddTrajectories: public G4VVisCommandScene {
0469 public:
0470   G4VisCommandSceneAddTrajectories ();
0471   virtual ~G4VisCommandSceneAddTrajectories ();
0472   G4String GetCurrentValue (G4UIcommand* command);
0473   void SetNewValue (G4UIcommand* command, G4String newValue);
0474 private:
0475   G4VisCommandSceneAddTrajectories (const G4VisCommandSceneAddTrajectories&);
0476   G4VisCommandSceneAddTrajectories& operator =
0477   (const G4VisCommandSceneAddTrajectories&);
0478   G4UIcmdWithAString* fpCommand;
0479 };
0480 
0481 class G4VisCommandSceneAddUserAction: public G4VVisCommandScene {
0482 public:
0483   G4VisCommandSceneAddUserAction ();
0484   virtual ~G4VisCommandSceneAddUserAction ();
0485   G4String GetCurrentValue (G4UIcommand* command);
0486   void SetNewValue (G4UIcommand* command, G4String newValue);
0487 private:
0488   G4VisCommandSceneAddUserAction (const G4VisCommandSceneAddUserAction&);
0489   G4VisCommandSceneAddUserAction& operator = (const G4VisCommandSceneAddUserAction&);
0490   enum ActionType {runDuration, endOfEvent, endOfRun};
0491   void AddVisAction(const G4String& name,G4VUserVisAction*,
0492             G4Scene*,ActionType,G4VisManager::Verbosity);
0493   G4UIcmdWithAString* fpCommand;
0494 };
0495 
0496 class G4VisCommandSceneAddVolume: public G4VVisCommandScene {
0497 public:
0498   G4VisCommandSceneAddVolume ();
0499   virtual ~G4VisCommandSceneAddVolume ();
0500   G4String GetCurrentValue (G4UIcommand* command);
0501   void SetNewValue (G4UIcommand* command, G4String newValue);
0502 private:
0503   G4VisCommandSceneAddVolume (const G4VisCommandSceneAddVolume&);
0504   G4VisCommandSceneAddVolume& operator = (const G4VisCommandSceneAddVolume&);
0505   G4UIcommand* fpCommand;
0506 };
0507 
0508 class G4VisCommandSceneAddPlotter: public G4VVisCommandScene {
0509 public:
0510   G4VisCommandSceneAddPlotter ();
0511   virtual ~G4VisCommandSceneAddPlotter ();
0512   G4String GetCurrentValue (G4UIcommand* command);
0513   void SetNewValue (G4UIcommand* command, G4String newValue);
0514 private:
0515   G4VisCommandSceneAddPlotter (const G4VisCommandSceneAddPlotter&);
0516   G4VisCommandSceneAddPlotter& operator = (const G4VisCommandSceneAddPlotter&);
0517   G4UIcommand* fpCommand;
0518 };
0519 
0520 #endif