Import Geant4 9.0.0 source tree
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
$Id: History,v 1.91 2007/01/05 16:53:12 allison Exp $
|
||||
$Id: History,v 1.93 2007/04/03 13:35:48 allison Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -20,6 +20,14 @@ committal in the CVS repository !
|
||||
History file for visualization/OpenInventor
|
||||
-------------------------------------------
|
||||
|
||||
3rd April 2007 John Allison (openinventor-V08-02-02 - needs visman-V08-02-03)
|
||||
- Introduced picking control. Default is "true" for Open Inventor.
|
||||
|
||||
25th March 2007 John Allison (openinventor-V08-02-01)
|
||||
- G4OpenInventorSceneHandler: Introduced AddProperties. Rationalises.
|
||||
- G4OpenInventorViewer.cc: Added scale factor to list of changes
|
||||
requiring kernel visit.
|
||||
|
||||
5th January 2007 John Allison (openinventor-V08-02-00)
|
||||
- Moved LoadAtts to vis management.
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4OpenInventor.hh,v 1.9 2006/06/29 21:20:22 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// Guy Barrand 26 Mar 1998.
|
||||
// OpenInventor graphics system factory.
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4OpenInventorSceneHandler.hh,v 1.32 2007/01/05 16:52:47 allison Exp $
|
||||
// GEANT4 tag $Name: geant4-08-03 $
|
||||
// $Id: G4OpenInventorSceneHandler.hh,v 1.33 2007/03/27 15:24:15 allison Exp $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
//
|
||||
// J Kallenbach 27th Aug 1996
|
||||
@@ -47,6 +47,7 @@
|
||||
class G4OpenInventor;
|
||||
class SoSeparator;
|
||||
class Geant4_SoStyleCache;
|
||||
class G4VisAttributes;
|
||||
|
||||
// Base class for various OpenInventorScene classes.
|
||||
class G4OpenInventorSceneHandler: public G4VSceneHandler {
|
||||
@@ -88,6 +89,7 @@ private:
|
||||
enum G4OIMarker {G4OICircle, G4OISquare};
|
||||
void AddCircleSquare (G4OIMarker markerType, const G4VMarker&);
|
||||
void GeneratePrerequisites();
|
||||
void AddProperties(const G4VisAttributes*);
|
||||
std::map <G4LogicalVolume*, SoSeparator*,
|
||||
std::less <G4LogicalVolume*> > fSeparatorMap;
|
||||
SoSeparator* fRoot;
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4OpenInventorTransform3D.hh,v 1.7 2006/06/29 21:20:26 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
//
|
||||
// jck 17 Dec 1996
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4OpenInventorWin.hh,v 1.3 2006/06/29 21:20:30 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// OpenInventor graphics system factory.
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4OpenInventorWin32.hh,v 1.7 2006/06/29 21:20:32 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// OpenInventor graphics system factory.
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4OpenInventorWinViewer.hh,v 1.9 2006/06/29 21:20:34 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
//
|
||||
// Jeff Kallenbach 01 Aug 1996
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4OpenInventorX.hh,v 1.7 2006/06/29 21:20:36 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
//
|
||||
// Andrew Walkden 27th March 1996
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4OpenInventorXt.hh,v 1.3 2006/06/29 21:20:38 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
//
|
||||
// Andrew Walkden 27th March 1996
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4OpenInventorXtViewer.hh,v 1.14 2006/06/29 21:20:40 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
//
|
||||
// Jeff Kallenbach 01 Aug 1996
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: SbMath.h,v 1.4 2006/06/29 21:20:46 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
#ifndef HEPVis_SbMath_h
|
||||
#define HEPVis_SbMath_h
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: SoDetectorTreeKit.h,v 1.5 2006/06/29 21:21:16 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
/*-----------------------------HEPVis----------------------------------------*/
|
||||
/* */
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: SoBox.h,v 1.3 2006/06/29 21:21:18 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
/*-----------------------------Hepvis----------------------------------------*/
|
||||
/* */
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: SoCons.h,v 1.3 2006/06/29 21:21:20 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
/*-----------------------------Hepvis----------------------------------------*/
|
||||
/* */
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: SoTrap.h,v 1.4 2006/06/29 21:22:06 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
/*-----------------------------Hepvis----------------------------------------*/
|
||||
/* */
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: SoTrd.h,v 1.3 2006/06/29 21:22:08 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
/*-----------------------------Hepvis----------------------------------------*/
|
||||
/* */
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: SoTubs.h,v 1.3 2006/06/29 21:22:10 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
/*-----------------------------Hepvis----------------------------------------*/
|
||||
/* */
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: SoG4LineSet.h,v 1.2 2006/12/13 15:49:51 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// John Allison 26th October 2006
|
||||
// Extended SoLineSet to include G4Atts.
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: SoG4MarkerSet.h,v 1.2 2006/12/13 15:49:53 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// John Allison 26th October 2006
|
||||
// Extended SoMarkerSet to include G4Atts.
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: SoG4Polyhedron.h,v 1.2 2006/12/13 15:49:56 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// John Allison 26th October 2006
|
||||
// Extended Geant4_SoPolyhedron to include G4Atts.
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4OpenInventor.cc,v 1.20 2006/06/29 21:22:12 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
#ifdef G4VIS_BUILD_OI_DRIVER
|
||||
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4OpenInventorSceneHandler.cc,v 1.51 2007/01/05 16:52:47 allison Exp $
|
||||
// GEANT4 tag $Name: geant4-08-03 $
|
||||
// $Id: G4OpenInventorSceneHandler.cc,v 1.53 2007/04/03 13:35:48 allison Exp $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
//
|
||||
// Jeff Kallenbach 01 Aug 1996
|
||||
@@ -185,7 +185,10 @@ void G4OpenInventorSceneHandler::BeginPrimitives
|
||||
//
|
||||
// Method for handling G4Polyline objects (from tracking).
|
||||
//
|
||||
void G4OpenInventorSceneHandler::AddPrimitive (const G4Polyline& line) {
|
||||
void G4OpenInventorSceneHandler::AddPrimitive (const G4Polyline& line)
|
||||
{
|
||||
AddProperties(line.GetVisAttributes()); // Transformation, colour, etc.
|
||||
|
||||
G4int nPoints = line.size();
|
||||
SbVec3f* pCoords = new SbVec3f[nPoints];
|
||||
|
||||
@@ -195,19 +198,6 @@ void G4OpenInventorSceneHandler::AddPrimitive (const G4Polyline& line) {
|
||||
(float)line[iPoint].z());
|
||||
}
|
||||
|
||||
// Don't understand why I have to do this again (done in
|
||||
// GeneratePrerequisites) - JA.
|
||||
//
|
||||
// Color
|
||||
//
|
||||
const G4Colour& c = GetColour(line);
|
||||
SoMaterial* material =
|
||||
fStyleCache->getMaterial((float)c.GetRed(),
|
||||
(float)c.GetGreen(),
|
||||
(float)c.GetBlue(),
|
||||
(float)(1-c.GetAlpha()));
|
||||
fCurrentSeparator->addChild(material);
|
||||
|
||||
//
|
||||
// Point Set
|
||||
//
|
||||
@@ -224,7 +214,7 @@ void G4OpenInventorSceneHandler::AddPrimitive (const G4Polyline& line) {
|
||||
SoG4LineSet *pLine = new SoG4LineSet;
|
||||
|
||||
// Loads G4Atts for picking...
|
||||
LoadAtts(line, pLine);
|
||||
if (fpViewer->GetViewParameters().IsPicking()) LoadAtts(line, pLine);
|
||||
|
||||
#ifdef INVENTOR2_0
|
||||
pLine->numVertices.setValues(0,1,(const long *)&nPoints);
|
||||
@@ -237,7 +227,10 @@ void G4OpenInventorSceneHandler::AddPrimitive (const G4Polyline& line) {
|
||||
delete [] pCoords;
|
||||
}
|
||||
|
||||
void G4OpenInventorSceneHandler::AddPrimitive (const G4Polymarker& polymarker) {
|
||||
void G4OpenInventorSceneHandler::AddPrimitive (const G4Polymarker& polymarker)
|
||||
{
|
||||
AddProperties(polymarker.GetVisAttributes()); // Transformation, colour, etc.
|
||||
|
||||
G4int pointn = polymarker.size();
|
||||
if(pointn<=0) return;
|
||||
|
||||
@@ -248,16 +241,6 @@ void G4OpenInventorSceneHandler::AddPrimitive (const G4Polymarker& polymarker) {
|
||||
(float)polymarker[iPoint].z());
|
||||
}
|
||||
|
||||
// Don't understand why I have to do this again (done in
|
||||
// GeneratePrerequisites) - JA.
|
||||
const G4Colour& c = GetColour(polymarker);
|
||||
SoMaterial* material =
|
||||
fStyleCache->getMaterial((float)c.GetRed(),
|
||||
(float)c.GetGreen(),
|
||||
(float)c.GetBlue(),
|
||||
(float)(1-c.GetAlpha()));
|
||||
fCurrentSeparator->addChild(material);
|
||||
|
||||
SoCoordinate3* coordinate3 = new SoCoordinate3;
|
||||
coordinate3->point.setValues(0,pointn,points);
|
||||
fCurrentSeparator->addChild(coordinate3);
|
||||
@@ -279,7 +262,8 @@ void G4OpenInventorSceneHandler::AddPrimitive (const G4Polymarker& polymarker) {
|
||||
markerSet->numPoints = pointn;
|
||||
|
||||
// Loads G4Atts for picking...
|
||||
LoadAtts(polymarker, markerSet);
|
||||
if (fpViewer->GetViewParameters().IsPicking())
|
||||
LoadAtts(polymarker, markerSet);
|
||||
|
||||
G4VMarker::FillStyle style = polymarker.GetFillStyle();
|
||||
switch (polymarker.GetMarkerType()) {
|
||||
@@ -353,10 +337,13 @@ void G4OpenInventorSceneHandler::AddPrimitive (const G4Polymarker& polymarker) {
|
||||
//
|
||||
// Method for handling G4Text objects
|
||||
//
|
||||
void G4OpenInventorSceneHandler::AddPrimitive (const G4Text& text) {
|
||||
void G4OpenInventorSceneHandler::AddPrimitive (const G4Text& text)
|
||||
{
|
||||
AddProperties(text.GetVisAttributes()); // Transformation, colour, etc.
|
||||
|
||||
//
|
||||
// Color. Note: text colour is worked out differently. This
|
||||
// over-rides the colour added in GeneratePrerequisites...
|
||||
// over-rides the colour added in AddProperties...
|
||||
//
|
||||
const G4Colour& c = GetTextColour (text);
|
||||
SoMaterial* material =
|
||||
@@ -419,20 +406,9 @@ void G4OpenInventorSceneHandler::AddPrimitive (const G4Square& square) {
|
||||
}
|
||||
|
||||
void G4OpenInventorSceneHandler::AddCircleSquare
|
||||
(G4OIMarker markerType, const G4VMarker& marker) {
|
||||
|
||||
// Don't understand why I have to do this again (done in
|
||||
// GeneratePrerequisites) - JA.
|
||||
//
|
||||
// Color
|
||||
//
|
||||
const G4Colour& c = GetColour(marker);
|
||||
SoMaterial* material =
|
||||
fStyleCache->getMaterial((float)c.GetRed(),
|
||||
(float)c.GetGreen(),
|
||||
(float)c.GetBlue(),
|
||||
(float)(1-c.GetAlpha()));
|
||||
fCurrentSeparator->addChild(material);
|
||||
(G4OIMarker markerType, const G4VMarker& marker)
|
||||
{
|
||||
AddProperties(marker.GetVisAttributes()); // Transformation, colour, etc.
|
||||
|
||||
MarkerSizeType sizeType;
|
||||
G4double screenSize = GetMarkerSize (marker, sizeType);
|
||||
@@ -462,7 +438,7 @@ void G4OpenInventorSceneHandler::AddCircleSquare
|
||||
markerSet->numPoints = 1;
|
||||
|
||||
// Loads G4Atts for picking...
|
||||
LoadAtts(marker, markerSet);
|
||||
if (fpViewer->GetViewParameters().IsPicking()) LoadAtts(marker, markerSet);
|
||||
|
||||
G4VMarker::FillStyle style = marker.GetFillStyle();
|
||||
switch (markerType) {
|
||||
@@ -517,13 +493,17 @@ void G4OpenInventorSceneHandler::AddCircleSquare
|
||||
//
|
||||
// Method for handling G4Polyhedron objects for drawing solids.
|
||||
//
|
||||
void G4OpenInventorSceneHandler::AddPrimitive (const G4Polyhedron& polyhedron) {
|
||||
void G4OpenInventorSceneHandler::AddPrimitive (const G4Polyhedron& polyhedron)
|
||||
{
|
||||
if (polyhedron.GetNoFacets() == 0) return;
|
||||
|
||||
AddProperties(polyhedron.GetVisAttributes()); // Transformation, colour, etc.
|
||||
|
||||
SoG4Polyhedron* soPolyhedron = new SoG4Polyhedron(polyhedron);
|
||||
|
||||
// Loads G4Atts for picking...
|
||||
LoadAtts(polyhedron, soPolyhedron);
|
||||
if (fpViewer->GetViewParameters().IsPicking())
|
||||
LoadAtts(polyhedron, soPolyhedron);
|
||||
|
||||
SbString name = "Non-geometry";
|
||||
G4PhysicalVolumeModel* pPVModel =
|
||||
@@ -544,6 +524,8 @@ void G4OpenInventorSceneHandler::AddPrimitive (const G4Polyhedron& polyhedron) {
|
||||
//
|
||||
void G4OpenInventorSceneHandler::AddPrimitive (const G4NURBS& nurb) {
|
||||
|
||||
AddProperties(nurb.GetVisAttributes()); // Transformation, colour, etc.
|
||||
|
||||
G4float *u_knot_array, *u_knot_array_ptr;
|
||||
u_knot_array = u_knot_array_ptr = new G4float [nurb.GetnbrKnots(G4NURBS::U)];
|
||||
G4NURBS::KnotsIterator u_iterator (nurb, G4NURBS::U);
|
||||
@@ -562,17 +544,6 @@ void G4OpenInventorSceneHandler::AddPrimitive (const G4NURBS& nurb) {
|
||||
|
||||
SoSeparator *surfSep = new SoSeparator();
|
||||
|
||||
//
|
||||
// Color
|
||||
//
|
||||
const G4Colour& c = GetColour(nurb);
|
||||
SoMaterial* material =
|
||||
fStyleCache->getMaterial((float)c.GetRed(),
|
||||
(float)c.GetGreen(),
|
||||
(float)c.GetBlue(),
|
||||
(float)(1-c.GetAlpha()));
|
||||
surfSep->addChild(material);
|
||||
|
||||
//
|
||||
// Set up NURBS
|
||||
//
|
||||
@@ -630,35 +601,6 @@ void G4OpenInventorSceneHandler::GeneratePrerequisites()
|
||||
// location on in the scene database so that when the solid is
|
||||
// actually added (in addthis), it is put in the right place.
|
||||
|
||||
// Use the applicable vis attributes...
|
||||
const G4VisAttributes* pApplicableVisAttribs =
|
||||
fpViewer->GetApplicableVisAttributes (fpVisAttribs);
|
||||
|
||||
// First find the color attributes...
|
||||
const G4Colour& g4Col = pApplicableVisAttribs->GetColour ();
|
||||
const double red = g4Col.GetRed ();
|
||||
const double green = g4Col.GetGreen ();
|
||||
const double blue = g4Col.GetBlue ();
|
||||
double transparency = 1 - g4Col.GetAlpha();
|
||||
|
||||
// Drawing style...
|
||||
G4ViewParameters::DrawingStyle drawing_style =
|
||||
GetDrawingStyle(pApplicableVisAttribs);
|
||||
switch (drawing_style) {
|
||||
case (G4ViewParameters::wireframe):
|
||||
fModelingSolid = false;
|
||||
break;
|
||||
case (G4ViewParameters::hlr):
|
||||
case (G4ViewParameters::hsr):
|
||||
case (G4ViewParameters::hlhsr):
|
||||
fModelingSolid = true;
|
||||
break;
|
||||
}
|
||||
|
||||
// Edge visibility...
|
||||
G4bool isAuxEdgeVisible = GetAuxEdgeVisible (pApplicableVisAttribs);
|
||||
fReducedWireFrame = !isAuxEdgeVisible;
|
||||
|
||||
G4PhysicalVolumeModel* pPVModel =
|
||||
dynamic_cast<G4PhysicalVolumeModel*>(fpModel);
|
||||
|
||||
@@ -715,6 +657,33 @@ void G4OpenInventorSceneHandler::GeneratePrerequisites()
|
||||
if(fPreviewAndFull) detectorTreeKit->setPreviewAndFull();
|
||||
else detectorTreeKit->setPreview(TRUE);
|
||||
|
||||
// Colour, etc., for SoDetectorTreeKit. Treated differently to
|
||||
// othere SoNodes(?). Use fpVisAttribs stored away in
|
||||
// PreAddSolid...
|
||||
const G4VisAttributes* pApplicableVisAttribs =
|
||||
fpViewer->GetApplicableVisAttributes (fpVisAttribs);
|
||||
|
||||
// First find the color attributes...
|
||||
const G4Colour& g4Col = pApplicableVisAttribs->GetColour ();
|
||||
const double red = g4Col.GetRed ();
|
||||
const double green = g4Col.GetGreen ();
|
||||
const double blue = g4Col.GetBlue ();
|
||||
double transparency = 1 - g4Col.GetAlpha();
|
||||
|
||||
// Drawing style...
|
||||
G4ViewParameters::DrawingStyle drawing_style =
|
||||
GetDrawingStyle(pApplicableVisAttribs);
|
||||
switch (drawing_style) {
|
||||
case (G4ViewParameters::wireframe):
|
||||
fModelingSolid = false;
|
||||
break;
|
||||
case (G4ViewParameters::hlr):
|
||||
case (G4ViewParameters::hsr):
|
||||
case (G4ViewParameters::hlhsr):
|
||||
fModelingSolid = true;
|
||||
break;
|
||||
}
|
||||
|
||||
SoMaterial* material =
|
||||
fStyleCache->getMaterial((float)red,
|
||||
(float)green,
|
||||
@@ -796,6 +765,38 @@ void G4OpenInventorSceneHandler::GeneratePrerequisites()
|
||||
fCurrentSeparator = fDetectorRoot;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void G4OpenInventorSceneHandler::AddProperties(const G4VisAttributes* visAtts)
|
||||
{
|
||||
// Use the applicable vis attributes...
|
||||
const G4VisAttributes* pApplicableVisAttribs =
|
||||
fpViewer->GetApplicableVisAttributes (visAtts);
|
||||
|
||||
// First find the color attributes...
|
||||
const G4Colour& g4Col = pApplicableVisAttribs->GetColour ();
|
||||
const double red = g4Col.GetRed ();
|
||||
const double green = g4Col.GetGreen ();
|
||||
const double blue = g4Col.GetBlue ();
|
||||
double transparency = 1 - g4Col.GetAlpha();
|
||||
|
||||
// Drawing style...
|
||||
G4ViewParameters::DrawingStyle drawing_style =
|
||||
GetDrawingStyle(pApplicableVisAttribs);
|
||||
switch (drawing_style) {
|
||||
case (G4ViewParameters::wireframe):
|
||||
fModelingSolid = false;
|
||||
break;
|
||||
case (G4ViewParameters::hlr):
|
||||
case (G4ViewParameters::hsr):
|
||||
case (G4ViewParameters::hlhsr):
|
||||
fModelingSolid = true;
|
||||
break;
|
||||
}
|
||||
|
||||
// Edge visibility...
|
||||
G4bool isAuxEdgeVisible = GetAuxEdgeVisible (pApplicableVisAttribs);
|
||||
fReducedWireFrame = !isAuxEdgeVisible;
|
||||
|
||||
SoMaterial* material =
|
||||
fStyleCache->getMaterial((float)red,
|
||||
@@ -826,5 +827,4 @@ void G4OpenInventorSceneHandler::GeneratePrerequisites()
|
||||
delete sbMatrix;
|
||||
fCurrentSeparator->addChild(matrixTransform);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4OpenInventorTransform3D.cc,v 1.8 2006/06/29 21:22:16 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
//
|
||||
// jck 17 Dec 1996
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4OpenInventorViewer.cc,v 1.57 2006/11/01 11:06:07 allison Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// $Id: G4OpenInventorViewer.cc,v 1.59 2007/04/03 13:35:48 allison Exp $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
|
||||
#ifdef G4VIS_BUILD_OI_DRIVER
|
||||
|
||||
@@ -68,8 +68,10 @@ G4OpenInventorViewer::G4OpenInventorViewer(
|
||||
{
|
||||
fNeedKernelVisit = true; //?? Temporary, until KernelVisitDecision fixed.
|
||||
|
||||
fDefaultVP.SetAutoRefresh(true);
|
||||
fVP.SetAutoRefresh(true);
|
||||
fDefaultVP.SetAutoRefresh(true);
|
||||
fVP.SetPicking(true);
|
||||
fDefaultVP.SetPicking(true);
|
||||
|
||||
//FIXME : G.Barrand : not convinced that we have to rm culling.
|
||||
// For viewing of all objects by default :
|
||||
@@ -174,10 +176,15 @@ G4bool G4OpenInventorViewer::CompareForKernelVisit(G4ViewParameters& vp) {
|
||||
(vp.IsExplode () != fVP.IsExplode ()) ||
|
||||
(vp.GetNoOfSides () != fVP.GetNoOfSides ()) ||
|
||||
(vp.IsMarkerNotHidden () != fVP.IsMarkerNotHidden ()) ||
|
||||
(vp.GetBackgroundColour ()!= fVP.GetBackgroundColour ())
|
||||
) {
|
||||
return true;;
|
||||
}
|
||||
(vp.GetBackgroundColour ()!= fVP.GetBackgroundColour ())||
|
||||
(vp.IsPicking () != fVP.IsPicking ()) ||
|
||||
// Scaling for Open Inventor is done by the scene handler so it
|
||||
// needs a kernel visit. (In this respect, it differs from the
|
||||
// OpenGL drivers, where it's done in SetView.)
|
||||
(vp.GetScaleFactor () != fVP.GetScaleFactor ())
|
||||
)
|
||||
return true;
|
||||
|
||||
if (vp.IsDensityCulling () &&
|
||||
(vp.GetVisibleDensity () != fVP.GetVisibleDensity ()))
|
||||
return true;
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4OpenInventorWin.cc,v 1.6 2006/06/29 21:22:20 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// OpenInventor graphics system factory.
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4OpenInventorWinViewer.cc,v 1.25 2006/06/29 21:22:22 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
/*
|
||||
* jck : 05 Feb 1997 : Initial Implementation
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4OpenInventorXt.cc,v 1.4 2006/06/29 21:22:24 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
//
|
||||
// Jeff Kallenbach 01 Aug 1996
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4OpenInventorXtViewer.cc,v 1.24 2006/06/29 21:22:26 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
/*
|
||||
* jck 05 Feb 1997 - Initial Implementation
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: SoBox.cc,v 1.8 2006/06/29 21:22:36 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
/*----------------------------HEPVis----------------------------------------*/
|
||||
/* */
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: SoCons.cc,v 1.8 2006/06/29 21:22:38 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
/*-----------------------------HEPVis---------------------------------------*/
|
||||
/* */
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: SoDetectorTreeKit.cc,v 1.13 2006/06/29 21:22:51 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
/*-----------------------------HEPVis----------------------------------------*/
|
||||
/* */
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: SoTrap.cc,v 1.8 2006/06/29 21:23:03 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
/*-----------------------------HEPVis----------------------------------------*/
|
||||
/* */
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: SoTrd.cc,v 1.8 2006/06/29 21:23:05 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
/*-----------------------------HEPVis---------------------------------------*/
|
||||
/* */
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: SoTubs.cc,v 1.8 2006/06/29 21:23:07 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
/*-----------------------------HEPVis---------------------------------------*/
|
||||
/* */
|
||||
|
||||
Reference in New Issue
Block a user