GeoModel - GeoModelCore
GeoPVConstLink.h
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef GEOMODELKERNEL_GEOPVCONSTLINK_H
6 #define GEOMODELKERNEL_GEOPVCONSTLINK_H
7 
14 class GeoVPhysVol;
15 
17 {
18  public:
20  GeoPVConstLink(const GeoPVConstLink &right);
21  GeoPVConstLink (const GeoVPhysVol *addr);
22 
23  virtual ~GeoPVConstLink();
24 
25  int operator==(const GeoPVConstLink &right) const;
26  int operator!=(const GeoPVConstLink &right) const;
27 
28  int operator<(const GeoPVConstLink &right) const;
29  int operator>(const GeoPVConstLink &right) const;
30  int operator<=(const GeoPVConstLink &right) const;
31  int operator>=(const GeoPVConstLink &right) const;
32 
33  // Dereference this smart pointer, like a regular pointer.
34  virtual const GeoVPhysVol & operator * () const;
35 
36  // Allow use of smartPointer->operation().....
37  virtual const GeoVPhysVol * operator -> () const;
38 
39  operator bool () const;
40 
41  GeoPVConstLink& operator = (const GeoPVConstLink& right);
42 
43  protected:
44  // A pointer to the underlying volume
45  GeoVPhysVol * m_ptr;
46 
47 };
48 
49 #endif