Geant4  10.03.p02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4AxesModel Class Reference

#include <G4AxesModel.hh>

Inheritance diagram for G4AxesModel:
Collaboration diagram for G4AxesModel:

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, G4double textSize=10.)
 
virtual ~G4AxesModel ()
 
virtual void DescribeYourselfTo (G4VGraphicsScene &)
 
- Public Member Functions inherited from G4VModel
 G4VModel (const G4Transform3D &modelTransformation=G4Transform3D(), const G4ModelingParameters *=0)
 
virtual ~G4VModel ()
 
const G4ModelingParametersGetModelingParameters () const
 
const G4StringGetType () const
 
virtual G4String GetCurrentDescription () const
 
virtual G4String GetCurrentTag () const
 
const G4VisExtentGetExtent () const
 
const G4StringGetGlobalDescription () const
 
const G4StringGetGlobalTag () const
 
const G4Transform3DGetTransformation () 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 G4ModelingParametersfpMP
 

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,
G4double  textSize = 10. 
)

Definition at line 58 of file G4AxesModel.cc.

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(textSize);
106  text->SetOffset(0.5*textSize,0.5*textSize);
107  text->SetLayout(G4Text::centre);
108  va = new G4VisAttributes(xColour);
109  text->SetVisAttributes(va);
110  fXLabelModel = new G4TextModel(*text);
111  delete text;
112  text = new G4Text(annotation,G4Point3D(x0+0.8*length, y0, z0));
113  text->SetScreenSize(textSize);
114  text->SetOffset(-1.5*textSize,-1.5*textSize);
115  text->SetLayout(G4Text::centre);
116  va = new G4VisAttributes(xColour);
117  text->SetVisAttributes(va);
118  fXAnnotationModel = new G4TextModel(*text);
119  delete text;
120  }
121 
122  G4Colour yColour(colour);
123  if (autoColour) yColour = G4Colour::Green();
124  fYAxisModel = new G4ArrowModel
125  (x0, y0, z0, x0, y0+length, z0, arrowWidth,
126  yColour, "y-axis: " + description);
127  if (withAnnotation) {
128  text = new G4Text("y",G4Point3D(x0, y0+1.05*length, z0));
129  text->SetScreenSize(textSize);
130  text->SetOffset(0.5*textSize,0.5*textSize);
131  text->SetLayout(G4Text::centre);
132  va = new G4VisAttributes(yColour);
133  text->SetVisAttributes(va);
134  fYLabelModel = new G4TextModel(*text);
135  delete text;
136  text = new G4Text(annotation,G4Point3D(x0, y0+0.8*length, z0));
137  text->SetScreenSize(textSize);
138  text->SetOffset(-1.5*textSize,-1.5*textSize);
139  text->SetLayout(G4Text::centre);
140  va = new G4VisAttributes(yColour);
141  text->SetVisAttributes(va);
142  fYAnnotationModel = new G4TextModel(*text);
143  delete text;
144  }
145 
146  G4Colour zColour(colour);
147  if (autoColour) zColour = G4Colour::Blue();
148  fZAxisModel = new G4ArrowModel
149  (x0, y0, z0, x0, y0, z0+length, arrowWidth,
150  zColour, "z-axis: " + description);
151  if (withAnnotation) {
152  text = new G4Text("z",G4Point3D(x0, y0, z0+1.05*length));
153  text->SetScreenSize(textSize);
154  text->SetOffset(0.5*textSize,0.5*textSize);
155  text->SetLayout(G4Text::centre);
156  va = new G4VisAttributes(zColour);
157  text->SetVisAttributes(va);
158  fZLabelModel = new G4TextModel(*text);
159  delete text;
160  text = new G4Text(annotation,G4Point3D(x0, y0, z0+0.8*length));
161  text->SetScreenSize(textSize);
162  text->SetOffset(-1.5*textSize,-1.5*textSize);
163  text->SetLayout(G4Text::centre);
164  va = new G4VisAttributes(zColour);
165  text->SetVisAttributes(va);
166  fZAnnotationModel = new G4TextModel(*text);
167  delete text;
168  }
169 }
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)

Here is the call graph for this function:

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 171 of file G4AxesModel.cc.

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

Here is the call graph for this function:


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