ATLAS Offline Software
|
Visitor to process all volumes under a GeoModel node. More...
#include "GeoPrimitives/GeoPrimitives.h"
#include "GeoModelKernel/GeoNodeAction.h"
#include "GeoModelKernel/GeoDefinitions.h"
#include <vector>
#include <variant>
Go to the source code of this file.
Classes | |
class | IGeoVisitVolumesAction |
Define a simple callback for each volume found. More... | |
class | IGeoVisitVolumesNoXformAction |
Define a simple callback for each volume found, without keeping track of geometrical transforms. More... | |
class | GeoVisitVolumes |
Visitor to process all volumes under a GeoModel node. More... | |
class | GeoVisitVolumesAction< FUNCTION > |
Callback object calling a templated functional. More... | |
class | GeoVisitVolumesNoXformAction< FUNCTION > |
Callback object calling a templated functional. More... | |
Typedefs | |
typedef std::vector< std::pair< const GeoVPhysVol *, GeoTrf::Transform3D > > | GeoVolumeVec_t |
Return the child volumes and associated transforms. More... | |
Functions | |
template<class FUNCTION > | |
void | geoVisitVolumes (FUNCTION f, const GeoGraphNode *node, int depthLimit=1) |
Template helper for running the visitor. More... | |
template<class FUNCTION > | |
void | geoVisitVolumesNoXform (FUNCTION f, const GeoGraphNode *node, int depthLimit=1) |
Template helper for running the visitor. More... | |
GeoVolumeVec_t | geoGetVolumes (const GeoGraphNode *node, int depthLimit=1, int sizeHint=20) |
Return the child volumes and associated transforms. More... | |
std::vector< const GeoVPhysVol * > | geoGetVolumesNoXform (const GeoGraphNode *node, int depthLimit=1, int sizeHint=20) |
Return the child volumes. More... | |
Visitor to process all volumes under a GeoModel node.
Definition in file GeoVisitVolumes.h.
typedef std::vector<std::pair<const GeoVPhysVol*, GeoTrf::Transform3D> > GeoVolumeVec_t |
Return the child volumes and associated transforms.
node | Root of the graph to traverse. |
depthLimit | Depth limit for the traversal. |
sizeHint | Hint about the number of volumes to be returned, to allow avoiding resizes of the output vector. |
Returns a vector of (volume, transform) pairs for volumes in the graph. The same volume may be returned multiple times with different transforms in the case of a GeoSerialTransform.
Definition at line 219 of file GeoVisitVolumes.h.
GeoVolumeVec_t geoGetVolumes | ( | const GeoGraphNode * | node, |
int | depthLimit, | ||
int | sizeHint | ||
) |
Return the child volumes and associated transforms.
node | Root of the graph to traverse. |
depthLimit | Depth limit for the traversal. |
sizeHint | Hint about the number of volumes to be returned, to allow avoiding resizes of the output vector. |
Returns a vector of (volume, transform) pairs for volumes in the graph. The same volume may be returned multiple times with different transforms in the case of a GeoSerialTransform.
Definition at line 211 of file GeoVisitVolumes.cxx.
std::vector<const GeoVPhysVol*> geoGetVolumesNoXform | ( | const GeoGraphNode * | node, |
int | depthLimit, | ||
int | sizeHint | ||
) |
Return the child volumes.
node | Root of the graph to traverse. |
depthLimit | Depth limit for the traversal. |
sizeHint | Hint about the number of volumes to be returned, to allow avoiding resizes of the output vector. |
Returns a vector of volumes in the graph. The same volume may be returned multiple times in the case of a GeoSerialTransform.
Definition at line 240 of file GeoVisitVolumes.cxx.
void geoVisitVolumes | ( | FUNCTION | f, |
const GeoGraphNode * | node, | ||
int | depthLimit = 1 |
||
) |
void geoVisitVolumesNoXform | ( | FUNCTION | f, |
const GeoGraphNode * | node, | ||
int | depthLimit = 1 |
||
) |
Template helper for running the visitor.
This version doesn't supply transformation information.
Definition at line 199 of file GeoVisitVolumes.h.