|
ATLAS Offline Software
|
Go to the documentation of this file.
10 #include "GeoModelKernel/GeoVPhysVol.h"
11 #include "GeoModelKernel/GeoShapeShift.h"
18 #include <Inventor/nodes/SoCylinder.h>
19 #include <Inventor/nodes/SoRotationXYZ.h>
20 #include <Inventor/nodes/SoSeparator.h>
45 const GeoPVConstLink& motherpV,
PhiSectorManager*psm, SoMaterial * topMaterial,
48 : m_d(
new Imp), m_volumebrowser(volbrowser), m_textSep(textSep)
139 for (
int i = 0;
i<nodegroup->getNumChildren();++
i) {
140 SoNode *
n = nodegroup->getChild(
i);
141 if (
n->getTypeId().isDerivedFrom(SoGenericBox::getClassTypeId())) {
142 if (
static_cast<SoGenericBox*
>(
n)->drawEdgeLines.getValue()!=showvol)
143 static_cast<SoGenericBox*
>(
n)->drawEdgeLines.setValue(showvol);
144 }
else if (
n->getTypeId().isDerivedFrom(SoTubs::getClassTypeId())) {
146 static_cast<SoTubs*
>(
n)->drawEdgeLines.setValue(showvol);
148 }
else if (
n->getTypeId().isDerivedFrom(SoPcons::getClassTypeId())) {
150 static_cast<SoPcons*
>(
n)->drawEdgeLines.setValue(showvol);
152 }
else if (
n->getTypeId().isDerivedFrom(SoTessellated::getClassTypeId())) {
156 }
else if (
n->getTypeId().isDerivedFrom(SoGroup::getClassTypeId())) {
165 const GeoLogVol * logVolume = pV->getLogVol();
171 return itShape->second;
174 const GeoShape * geoshape = logVolume->getShape();
177 if (geoshape->typeID()==GeoShapeShift::getClassTypeID()) {
178 dynamic_cast<const GeoShapeShift*
>(geoshape)->getOp()->exec(&(
m_d->
visaction));
193 double id =
radius - 9999.0*halfLength;
198 SoGroup *
group =
new SoGroup;
199 SoRotationXYZ * rot =
new SoRotationXYZ;
201 rot->angle.setValue(
M_PI*0.5
f);
202 group->addChild(rot);
203 SoCylinder * cyl =
new SoCylinder;
204 cyl->radius.setValue(
radius);
205 cyl->height.setValue(2.0*halfLength);
206 group->addChild(cyl);
JetConstituentVector::iterator iterator
SoMaterial * fallBackTopLevelMaterial() const
void removeFromZappedVolumes(VolumeHandle *)
SoVisualizeAction visaction
SoPcons - Inventor version of the G4Cons Geant Geometry entity.
SoTubs - Inventor version of the G4Tubs Geant Geometry entity.
MatVisAttributes * matVisAttributes
VolVisAttributes * volVisAttributes() const
PhiSectorManager * phisectormanager
GeoSysController * controller
VP1GeoFlags::SubSystemFlag subsysflag
PhiSectorManager * phiSectorManager() const
std::map< double, SoNode * > id2shape
bool showVolumeOutLines() const
~VolumeHandleSharedData()
void registerNodeSepForVolumeHandle(SoSeparator *, VolumeHandle *)
std::map< const GeoLogVol *, SoShape * > logvol2shape
GeoPVConstLink geoPVConstLinkOfTreeTopsMother() const
ZappedVolumeListModel * zappedvolumelistmodel
VP1GeoFlags::SubSystemFlag subSystemFlag() const
VolVisAttributes * volVisAttributes
void removeZappedVolumesFromGui(VolumeHandle *)
static void setShowVolumeOutlines(SoGroup *nodesep, bool showvol)
void addToZappedVolumes(VolumeHandle *)
void addZappedVolumeToGui(VolumeHandle *)
VolumeHandleSharedData(GeoSysController *controller, VP1GeoFlags::SubSystemFlag, std::map< SoSeparator *, VolumeHandle * > *sonodesep2volhandle, const GeoPVConstLink &motherpV, PhiSectorManager *, SoMaterial *topMaterial, MatVisAttributes *, VolVisAttributes *, ZappedVolumeListModel *, VP1GeoTreeView *, SoSeparator *)
GeoSysController * controller() const
SoNode * toShapeNode(const GeoPVConstLink &pV)
SoNode * getSoCylinderOrientedLikeGeoTube(const double &radius, const double &halfLength)
MatVisAttributes * matVisAttributes() const
std::map< SoSeparator *, VolumeHandle * > * sonodesep2volhandle