Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions
G4AxesModel Class Reference

#include <G4AxesModel.hh>

Inheritance diagram for G4AxesModel:
G4VModel

Public Member Functions

 G4AxesModel (G4double x0, G4double y0, G4double z0, G4double length, G4double arrowWidth=1., const G4String &colourString="auto", const G4String &description="", G4bool withAnnotation=true)
 
virtual ~G4AxesModel ()
 
virtual void DescribeYourselfTo (G4VGraphicsScene &)
 
- Public Member Functions inherited from G4VModel
 G4VModel (const G4Transform3D &modelTransformation=G4Transform3D(), const G4ModelingParameters *=0)
 
virtual ~G4VModel ()
 
const G4ModelingParameters * GetModelingParameters () const
 
const G4String & GetType () const
 
virtual G4String GetCurrentDescription () const
 
virtual G4String GetCurrentTag () const
 
const G4VisExtent & GetExtent () const
 
const G4String & GetGlobalDescription () const
 
const G4String & GetGlobalTag () const
 
const G4Transform3D & GetTransformation () const
 
void SetModelingParameters (const G4ModelingParameters *)
 
void SetExtent (const G4VisExtent &)
 
void SetType (const G4String &)
 
void SetGlobalDescription (const G4String &)
 
void SetGlobalTag (const G4String &)
 
void SetTransformation (const G4Transform3D &)
 
virtual G4bool Validate (G4bool warn=true)
 

Additional Inherited Members

- Protected Attributes inherited from G4VModel
G4String fType
 
G4String fGlobalTag
 
G4String fGlobalDescription
 
G4VisExtent fExtent
 
G4Transform3D fTransform
 
const G4ModelingParameters * fpMP
 

Detailed Description

Definition at line 45 of file G4AxesModel.hh.

Constructor & Destructor Documentation

G4AxesModel::G4AxesModel ( G4double  x0,
G4double  y0,
G4double  z0,
G4double  length,
G4double  arrowWidth = 1.,
const G4String &  colourString = "auto",
const G4String &  description = "",
G4bool  withAnnotation = true 
)

Definition at line 58 of file G4AxesModel.cc.

References G4Colour::Blue(), G4Text::centre, G4BestUnit, G4Exception(), G4Colour::GetColour(), G4Colour::Green(), JustWarning, G4Colour::Red(), G4Text::SetLayout(), G4Text::SetOffset(), G4VMarker::SetScreenSize(), and G4Visible::SetVisAttributes().

62  :
63  fXAxisModel(0),
64  fXLabelModel(0),
65  fXAnnotationModel(0),
66  fYAxisModel(0),
67  fYLabelModel(0),
68  fYAnnotationModel(0),
69  fZAxisModel(0),
70  fZLabelModel(0),
71  fZAnnotationModel(0)
72 {
73  fType = "G4AxesModel";
74  fGlobalTag = fType;
75  fGlobalDescription = fType + ": " + description;
77  (x0, x0+length, y0, y0+length, z0, z0+length);
78 
79  G4Colour colour(1,1,1,1); // Default white and opaque (unless "auto").
80  G4bool autoColour = false;
81  if (colourString == "auto") autoColour = true;
82  else {
83  if (!G4Colour::GetColour(colourString, colour)) {
85  ed << "Colour \"" << colourString
86  << "\" not found. Defaulting to white and opaque.";
88  ("G4AxesModel::G4AxesModel",
89  "modeling0012", JustWarning, ed);
90  }
91  }
92 
93  G4String annotation = G4BestUnit(length,"Length");
94 
95  G4Text* text = 0;
96  G4VisAttributes* va = 0;
97 
98  G4Colour xColour(colour);
99  if (autoColour) xColour = G4Colour::Red();
100  fXAxisModel = new G4ArrowModel
101  (x0, y0, z0, x0+length, y0, z0, arrowWidth,
102  xColour, "x-axis: " + description);
103  if (withAnnotation) {
104  text = new G4Text("x",G4Point3D(x0+1.05*length, y0, z0));
105  text->SetScreenSize(10.);
106  text->SetLayout(G4Text::centre);
107  va = new G4VisAttributes(xColour);
108  text->SetVisAttributes(va);
109  fXLabelModel = new G4TextModel(*text);
110  delete text;
111  text = new G4Text(annotation,G4Point3D(x0+0.8*length, y0, z0));
112  text->SetScreenSize(10.);
113  text->SetOffset(5.,5.);
114  text->SetLayout(G4Text::centre);
115  va = new G4VisAttributes(xColour);
116  text->SetVisAttributes(va);
117  fXAnnotationModel = new G4TextModel(*text);
118  delete text;
119  }
120 
121  G4Colour yColour(colour);
122  if (autoColour) yColour = G4Colour::Green();
123  fYAxisModel = new G4ArrowModel
124  (x0, y0, z0, x0, y0+length, z0, arrowWidth,
125  yColour, "y-axis: " + description);
126  if (withAnnotation) {
127  text = new G4Text("y",G4Point3D(x0, y0+1.05*length, z0));
128  text->SetScreenSize(10.);
129  text->SetLayout(G4Text::centre);
130  va = new G4VisAttributes(yColour);
131  text->SetVisAttributes(va);
132  fYLabelModel = new G4TextModel(*text);
133  delete text;
134  text = new G4Text(annotation,G4Point3D(x0, y0+0.8*length, z0));
135  text->SetScreenSize(10.);
136  text->SetOffset(5.,5.);
137  text->SetLayout(G4Text::centre);
138  va = new G4VisAttributes(yColour);
139  text->SetVisAttributes(va);
140  fYAnnotationModel = new G4TextModel(*text);
141  delete text;
142  }
143 
144  G4Colour zColour(colour);
145  if (autoColour) zColour = G4Colour::Blue();
146  fZAxisModel = new G4ArrowModel
147  (x0, y0, z0, x0, y0, z0+length, arrowWidth,
148  zColour, "z-axis: " + description);
149  if (withAnnotation) {
150  text = new G4Text("z",G4Point3D(x0, y0, z0+1.05*length));
151  text->SetScreenSize(10.);
152  text->SetLayout(G4Text::centre);
153  va = new G4VisAttributes(zColour);
154  text->SetVisAttributes(va);
155  fZLabelModel = new G4TextModel(*text);
156  delete text;
157  text = new G4Text(annotation,G4Point3D(x0, y0, z0+0.8*length));
158  text->SetScreenSize(10.);
159  text->SetOffset(5.,5.);
160  text->SetLayout(G4Text::centre);
161  va = new G4VisAttributes(zColour);
162  text->SetVisAttributes(va);
163  fZAnnotationModel = new G4TextModel(*text);
164  delete text;
165  }
166 }
Definition: G4Text.hh:73
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
G4String fType
Definition: G4VModel.hh:108
static G4Colour Green()
Definition: G4Colour.hh:149
void SetLayout(Layout)
static G4bool GetColour(const G4String &key, G4Colour &result)
Definition: G4Colour.cc:126
HepGeom::Point3D< G4double > G4Point3D
Definition: G4Point3D.hh:35
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
G4String fGlobalTag
Definition: G4VModel.hh:109
bool G4bool
Definition: G4Types.hh:79
static G4Colour Blue()
Definition: G4Colour.hh:150
G4String fGlobalDescription
Definition: G4VModel.hh:110
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
void SetVisAttributes(const G4VisAttributes *)
Definition: G4Visible.cc:80
void SetOffset(double dx, double dy)
static G4Colour Red()
Definition: G4Colour.hh:148
G4VisExtent fExtent
Definition: G4VModel.hh:111
void SetScreenSize(G4double)
G4AxesModel::~G4AxesModel ( )
virtual

Definition at line 44 of file G4AxesModel.cc.

45 {
46  delete fZAnnotationModel;
47  delete fZLabelModel;
48  delete fZAxisModel;
49  delete fYAnnotationModel;
50  delete fYLabelModel;
51  delete fYAxisModel;
52  delete fXAnnotationModel;
53  delete fXLabelModel;
54  delete fXAxisModel;
55 }

Member Function Documentation

void G4AxesModel::DescribeYourselfTo ( G4VGraphicsScene &  sceneHandler)
virtual

Implements G4VModel.

Definition at line 168 of file G4AxesModel.cc.

References G4VModel::DescribeYourselfTo().

169 {
170  if (fXAxisModel) fXAxisModel->DescribeYourselfTo(sceneHandler);
171  if (fXLabelModel) fXLabelModel->DescribeYourselfTo(sceneHandler);
172  if (fXAnnotationModel) fXAnnotationModel->DescribeYourselfTo(sceneHandler);
173  if (fYAxisModel) fYAxisModel->DescribeYourselfTo(sceneHandler);
174  if (fYLabelModel) fYLabelModel->DescribeYourselfTo(sceneHandler);
175  if (fYAnnotationModel) fYAnnotationModel->DescribeYourselfTo(sceneHandler);
176  if (fZAxisModel) fZAxisModel->DescribeYourselfTo(sceneHandler);
177  if (fZLabelModel) fZLabelModel->DescribeYourselfTo(sceneHandler);
178  if (fZAnnotationModel) fZAnnotationModel->DescribeYourselfTo(sceneHandler);
179 }
virtual void DescribeYourselfTo(G4VGraphicsScene &)=0

The documentation for this class was generated from the following files: