372 const G4ThreeVector& translation = pVPV -> GetTranslation ();
389 G4bool visAttsCreated =
false;
392 visAttsCreated =
true;
397 G4bool thisToBeDrawn =
true;
402 (G4PhysicalVolumeNodeID
406 G4bool copyForVAM =
false;
411 const std::vector<G4ModelingParameters::VisAttributesModifier>& vams =
413 std::vector<G4ModelingParameters::VisAttributesModifier>::const_iterator
415 for (iModifier = vams.begin();
416 iModifier != vams.end();
419 iModifier->GetPVNameCopyNoPath();
424 std::vector<G4PhysicalVolumeNodeID>::const_iterator iPVNodeId;
425 for (iVAMNameCopyNo = vamPath.begin(), iPVNodeId =
fFullPVPath.begin();
426 iVAMNameCopyNo != vamPath.end();
427 ++iVAMNameCopyNo, ++iPVNodeId) {
435 iVAMNameCopyNo->GetName() ==
436 iPVNodeId->GetPhysicalVolume()->GetName() &&
437 iVAMNameCopyNo->GetCopyNo() ==
438 iPVNodeId->GetPhysicalVolume()->GetCopyNo()
443 if (iVAMNameCopyNo == vamPath.end()) {
447 pVisAttribs = pModifiedVisAtts;
451 switch (iModifier->GetVisAttributesSignifier()) {
507 if (cullingInvisible) {
509 if (!markedVisible) thisToBeDrawn =
false;
512 if (cullingLowDensity) {
514 if (density < densityCut) thisToBeDrawn =
false;
518 if (
fAbort) thisToBeDrawn =
false;
527 (G4PhysicalVolumeNodeID
541 explodeFactor * oldTranslation.
dy(),
542 explodeFactor * oldTranslation.
dz());
543 theNewAT = centering * newTranslation * oldRotation * oldScale;
555 G4bool daughtersToBeDrawn =
true;
557 if (!nDaughters) daughtersToBeDrawn =
false;
559 else if (requestedDepth == 0) daughtersToBeDrawn =
false;
561 else if (
fAbort) daughtersToBeDrawn =
false;
586 if (cullingInvisible) {
588 if (daughtersInvisible) daughtersToBeDrawn =
false;
591 if (cullingCovered) {
593 if (surfaceDrawing) {
597 if (opaque) daughtersToBeDrawn =
false;
606 delete pModifiedVisAtts;
607 pVisAttribs = pUnmodifiedVisAtts;
612 if (visAttsCreated)
delete pVisAttribs;
614 if (daughtersToBeDrawn) {
615 for (
G4int iDaughter = 0; iDaughter < nDaughters; iDaughter++) {
621 (pDaughterVPV, requestedDepth - 1, theNewAT, sceneHandler);
ForcedDrawingStyle GetForcedDrawingStyle() const
void SetColour(const G4Colour &)
G4bool IsForceAuxEdgeVisible() const
void SetForceWireframe(G4bool)
G4bool IsDensityCulling() const
G4int GetNoDaughters() const
G4bool IsForceDrawingStyle() const
void SetLineStyle(LineStyle)
void SetLineWidth(G4double)
void SetVisibility(G4bool)
G4double GetAlpha() const
G4double GetDensity() const
DrawingStyle GetDrawingStyle() const
G4Transform3D * fpCurrentTransform
void SetForceSolid(G4bool)
G4VPhysicalVolume * fpCurrentPV
const G4VisAttributes * GetDefaultVisAttributes() const
std::vector< G4PhysicalVolumeNodeID > fFullPVPath
G4bool IsDaughtersInvisible() const
G4bool IsCullingInvisible() const
const G4VisAttributes * GetVisAttributes() const
G4Material * fpCurrentMaterial
G4LogicalVolume * fpCurrentLV
const G4ModelingParameters * fpMP
G4double GetExplodeFactor() const
virtual void DescribeSolid(const G4Transform3D &theAT, G4VSolid *pSol, const G4VisAttributes *pVisAttribs, G4VGraphicsScene &sceneHandler)
void SetForceAuxEdgeVisible(G4bool)
const std::vector< VisAttributesModifier > & GetVisAttributesModifiers() const
std::vector< PVNameCopyNo > PVNameCopyNoPath
G4bool IsCullingCovered() const
virtual G4int GetCopyNo() const =0
const G4Point3D & GetExplodeCentre() const
std::vector< G4PhysicalVolumeNodeID > fDrawnPVPath
void VisitGeometryAndGetVisReps(G4VPhysicalVolume *, G4int requestedDepth, const G4Transform3D &, G4VGraphicsScene &)
G4double GetLineWidth() const
LineStyle GetLineStyle() const
void SetDaughtersInvisible(G4bool)
PVNameCopyNoPath::const_iterator PVNameCopyNoPathConstIterator
G4int GetForcedLineSegmentsPerCircle() const
void SetForceLineSegmentsPerCircle(G4int nSegments)
const G4Colour & GetColour() const