Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4VModel.hh
Go to the documentation of this file.
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//
27//
28//
29// John Allison 31st December 1997.
30//
31// Class Description:
32//
33// G4VModel is a base class for visualization models. A model is a
34// graphics-system-indepedent description of a Geant4 component.
35// The key fuctionality of a model is to know how to describe itself
36// to a scene handler. A scene is a collection of models.
37// A special case is made for G4PhysicalVolumeModel - a non-null pointer
38// is to be returned by G4PhysicalVolumeModel::GetG4PhysicalVolumeModel().
39
40#ifndef G4VMODEL_HH
41#define G4VMODEL_HH
42
43#include "globals.hh"
44#include "G4VisExtent.hh"
45
48
49class G4PhysicalVolumeModel; // Special case - see above.
50
51class G4VModel {
52
53public: // With description
54
55 friend std::ostream& operator << (std::ostream& os, const G4VModel&);
56
58
59 virtual ~G4VModel ();
60
62 // The main task of a model is to describe itself to the graphics scene.
63
65
66 const G4String& GetType() const;
67 // The sub-class should set its type, which could be the class
68 // name, or, in the case of G4CallBackModel, it could be the type of
69 // object it is coding.
70
71 virtual G4String GetCurrentDescription () const;
72 // A description which depends on the current state of the model.
73
74 virtual G4String GetCurrentTag () const;
75 // A tag which depends on the current state of the model.
76
77 const G4VisExtent& GetExtent () const;
78 // Extent of visible objects in local coordinate system.
79
81 // A description which does not change and lasts the life of the model.
82
83 const G4String& GetGlobalTag () const;
84 // A tag which does not change and lasts the life of the model.
85
86 // Set methods for above...
88 void SetExtent (const G4VisExtent&);
89 void SetType (const G4String&);
91 void SetGlobalTag (const G4String&);
92
93 virtual G4bool Validate (G4bool warn = true);
94 // Validate, but allow internal changes (hence non-const function).
95
96protected:
97
103
104private:
105
106 // Private copy constructor and assigment operator - copying and
107 // assignment not allowed. Keeps CodeWizard happy.
108 G4VModel (const G4VModel&);
109 G4VModel& operator = (const G4VModel&);
110};
111
112#include "G4VModel.icc"
113
114#endif
bool G4bool
Definition: G4Types.hh:86
void SetType(const G4String &)
const G4ModelingParameters * GetModelingParameters() const
void SetGlobalDescription(const G4String &)
G4VisExtent fExtent
Definition: G4VModel.hh:101
void SetModelingParameters(const G4ModelingParameters *)
friend std::ostream & operator<<(std::ostream &os, const G4VModel &)
Definition: G4VModel.cc:60
virtual G4String GetCurrentDescription() const
Definition: G4VModel.cc:51
virtual G4String GetCurrentTag() const
Definition: G4VModel.cc:46
void SetGlobalTag(const G4String &)
G4String fGlobalDescription
Definition: G4VModel.hh:100
void SetExtent(const G4VisExtent &)
const G4String & GetGlobalTag() const
virtual ~G4VModel()
Definition: G4VModel.cc:44
virtual G4bool Validate(G4bool warn=true)
Definition: G4VModel.cc:56
const G4VisExtent & GetExtent() const
const G4String & GetGlobalDescription() const
const G4String & GetType() const
G4String fType
Definition: G4VModel.hh:98
const G4ModelingParameters * fpMP
Definition: G4VModel.hh:102
virtual void DescribeYourselfTo(G4VGraphicsScene &)=0
G4String fGlobalTag
Definition: G4VModel.hh:99