CMS 3D CMS Logo

DDCompactViewImpl.h
Go to the documentation of this file.
1 #ifndef DDCompactViewImpl_h
2 # define DDCompactViewImpl_h
3 
10 
11 class DDDivision;
12 class DDPartSelector;
13 struct DDPosData;
14 
16 {
17 public:
18 
19  typedef ::graph<DDLogicalPart, DDPosData* > GraphNav;
21 
22  explicit DDCompactViewImpl();
23  DDCompactViewImpl(const DDLogicalPart & rootnodedata);
25 
26  //reassigns root with no check!!!
27  void setRoot(const DDLogicalPart & root) { root_=root; }
28 
29  const DDLogicalPart & root() const { return root_; }
30 
31  DDLogicalPart & current() const;
32 
33  const GraphNav & graph() const { return graph_; }
34 
36 
37  double weight(const DDLogicalPart &) const;
38 
39  void position (const DDLogicalPart & self,
40  const DDLogicalPart & parent,
41  int copyno,
42  const DDTranslation & trans,
43  const DDRotation & rot,
44  const DDDivision * div);
45 
46  void swap( DDCompactViewImpl& );
47 
48 protected:
49  // internal use ! (see comments in DDCompactView(bool)!)
51  GraphNav graph_;
52 };
53 
54 #endif
void position(const DDLogicalPart &self, const DDLogicalPart &parent, int copyno, const DDTranslation &trans, const DDRotation &rot, const DDDivision *div)
graphwalker< DDLogicalPart, DDPosData * > WalkerType
Relative position of a child-volume inside a parent-volume.
Definition: DDPosData.h:13
DDLogicalPart & current() const
graphwalker< DDLogicalPart, DDPosData * > walker() const
void setRoot(const DDLogicalPart &root)
DDLogicalPart root_
::graph< DDLogicalPart, DDPosData * > GraphNav
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Definition: DDTranslation.h:7
Represents a uniquely identifyable rotation matrix.
Definition: DDTransform.h:64
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
Definition: DDLogicalPart.h:92
void swap(DDCompactViewImpl &)
const DDLogicalPart & root() const
double weight(const DDLogicalPart &) const
const GraphNav & graph() const