ATLAS Offline Software
Loading...
Searching...
No Matches
HitsSoNodeManager.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef HITSSONODEMANAGER_H
6#define HITSSONODEMANAGER_H
7
8//This class should as far as possible be used to create all shape
9//nodes for hits. This allows for shared instancing and optimal memory
10//and rendering performance.
11//
12//Author: Thomas Kittelmann.
14class SoNode;
15class SoTransform;
16
18public:
19
20 HitsSoNodeManager( IVP1System * sys = 0 );//sys for messages
22
23 SoNode* getShapeNode_Point();
24 SoNode* getShapeNode_Cross( double extent );
25 // SoNode* getShapeNode_Cross( double extent, double x, double y, double z );
26 SoNode* getShapeNode_DriftDisc( double radius );//Af flat drift tube. Returns point if radius is 0
27 SoNode* getShapeNode_DriftTube( double halfLength, double radius );//Will return an SoCylinder unless radius is 0 - in that case returns a line.
28 SoNode* getShapeNode_ProjectedDriftTube( double halfLength, double radius, bool inner, bool outer );//Will return SoCylinder(s) unless radius is 0 - in that case returns point(s).
29 SoNode* getShapeNode_Strip( double length, double width = 0, double depth=0 );//if width & depth are 0, will return a line. If all are 0, will return a point.
30 SoNode* getShapeNode_Wire( double length, double minWidth = 0, double maxWidth=0, double depth=0 );
31 SoNode* getShapeNode_Pad( double length, double minWidth = 0, double maxWidth=0, double depth=0 );
32
33 SoTransform * getUnitTransform();
34
35private:
36
39
40 class Imp;
42
43};
44
45#endif
double length(const pvec &v)
const double width
HitsSoNodeManager(IVP1System *sys=0)
SoNode * getShapeNode_Wire(double length, double minWidth=0, double maxWidth=0, double depth=0)
SoNode * getShapeNode_DriftDisc(double radius)
SoNode * getShapeNode_Cross(double extent)
SoNode * getShapeNode_Strip(double length, double width=0, double depth=0)
HitsSoNodeManager(const HitsSoNodeManager &)
SoTransform * getUnitTransform()
SoNode * getShapeNode_Pad(double length, double minWidth=0, double maxWidth=0, double depth=0)
HitsSoNodeManager & operator=(const HitsSoNodeManager &)
SoNode * getShapeNode_ProjectedDriftTube(double halfLength, double radius, bool inner, bool outer)
SoNode * getShapeNode_DriftTube(double halfLength, double radius)
VP1HelperClassBase(IVP1System *sys=0, QString helpername="")
std::string depth
tag string for intendation
Definition fastadd.cxx:46