File indexing completed on 2026-09-13 09:11:02
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
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
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
0414
0415
0416
0417
0418
0419
0420
0421
0422
0423
0424
0425
0426
0427
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