GeoModel - GeoModelCore
GeoGraphNode.h
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef GEOMODELKERNEL_GEOGRAPHNODE_H
6 #define GEOMODELKERNEL_GEOGRAPHNODE_H
7 
23 #include "GeoModelKernel/RCBase.h"
24 
25 class GeoNodeAction;
26 class GeoVPhysVol;
27 
28 class GeoGraphNode : public RCBase
29 {
30  public:
31  GeoGraphNode ();
32 
33  // Executes a GeoNodeAction.
34  virtual void exec (GeoNodeAction *action) const;
35 
36  // When a node is added to a parent in the graph, the node
37  // is always notified. What happens at that time is up to
38  // the node. Most nodes do not need to do anything.
39  // Some--the alignable transforms in particular--need to
40  // take some actions, such as adding the parent volume to a
41  // list.
42  virtual void dockTo (GeoVPhysVol* );
43 
44  protected:
45  virtual ~GeoGraphNode();
46 
47  private:
48  GeoGraphNode(const GeoGraphNode &right);
49  GeoGraphNode & operator=(const GeoGraphNode &right);
50 };
51 
52 #endif
This is a base class for objects whose memory is managed through reference counting. Reference-counted objects can only be created using operator new, the cannot be created on the stack.
Definition: RCBase.h:24
This type of action sees the geometry graph in full detail, including each transformation and propert...
Definition: GeoNodeAction.h:30
Represents Nodes that can be assembled together to make a graph. Subclasses (for now): ...
Definition: GeoGraphNode.h:28