Import Geant4 7.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 11:11:55 +02:00
parent e083ffb441
commit 516dbf1a58
5914 changed files with 202605 additions and 71141 deletions
@@ -22,7 +22,7 @@
//
//
// $Id: G4OpenInventor.hh,v 1.7 2004/04/08 09:39:37 gbarrand Exp $
// GEANT4 tag $Name: geant4-06-02 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Guy Barrand 26 Mar 1998.
// OpenInventor graphics system factory.
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenInventorSceneHandler.hh,v 1.16 2004/04/08 09:39:38 gbarrand Exp $
// GEANT4 tag $Name: geant4-06-02 $
// $Id: G4OpenInventorSceneHandler.hh,v 1.23 2004/11/24 14:59:38 gbarrand Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// J Kallenbach 27th Aug 1996
@@ -34,18 +34,19 @@
#ifdef G4VIS_BUILD_OI_DRIVER
#include <map>
// Inheritance :
#include "G4VSceneHandler.hh"
#include <map>
class G4OpenInventor;
class SoSeparator;
class Geant4_SoStyleCache;
// Base class for various OpenInventorScene classes.
class G4OpenInventorSceneHandler: public G4VSceneHandler {
friend class G4OpenInventorXtViewer;
friend class G4OpenInventorWinViewer;
friend class G4OpenInventorViewer;
public:
@@ -68,22 +69,6 @@ public:
//
// Primitives for use of HEPVis
//
void AddThis (const G4Box & Box);
void AddThis (const G4Tubs & Tubs);
void AddThis (const G4Cons & Cons);
void AddThis (const G4Trd & Trd);
void AddThis (const G4Trap & Trap);
// Base class callbacks defined in G4OpenInventorSceneHandler.icc
void AddThis (const G4Sphere&);
void AddThis (const G4Para&);
void AddThis (const G4Torus&);
void AddThis (const G4Polycone&);
void AddThis (const G4Polyhedra&);
void AddThis (const G4VSolid&);
void AddThis (const G4VTrajectory&);
void AddThis (const G4VHit&);
void BeginPrimitives (const G4Transform3D& objectTransformation);
void EndPrimitives ();
void EndModeling ();
@@ -95,25 +80,25 @@ private:
void ClearStore ();
void ClearTransientStore ();
void RequestPrimitives (const G4VSolid& solid);
static G4int fSceneIdCount; // static counter for OpenInventor scenes.
static G4int fSceneCount; // No. of extanct scene handlers.
G4double GetMarkerSize ( const G4VMarker& mark ) ;
G4ViewParameters fLastVP; // Keeps memory of last view parameters,
// namely the ones which go with the graphical database
// (display lists). A view may interrogate this to decide if
// it needs to visit the kernel, i.e., to remake the
// graphical database.
private:
static G4int fSceneIdCount; // static counter for OpenInventor scenes.
static G4int fSceneCount;
private:
//
// Stop-gap solution of structure re-use.
// A proper implementation would use geometry hierarchy.
//
std::map <const G4LogicalVolume*, SoSeparator*,
std::less <const G4LogicalVolume*> > SeparatorMap;
SoSeparator *root;
SoSeparator *staticRoot;
SoSeparator *transientRoot;
SoSeparator *currentSeparator;
std::less <const G4LogicalVolume*> > fSeparatorMap;
SoSeparator* fRoot;
SoSeparator* fDetectorRoot;
SoSeparator* fTransientRoot;
SoSeparator* fCurrentSeparator;
G4bool fModelingSolid;
G4bool fReducedWireFrame;
Geant4_SoStyleCache* fStyleCache;
bool fPreviewAndFull;
};
#include "G4OpenInventorSceneHandler.icc"
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenInventorSceneHandler.icc,v 1.5 2004/04/08 09:39:38 gbarrand Exp $
// GEANT4 tag $Name: geant4-06-02 $
// $Id: G4OpenInventorSceneHandler.icc,v 1.7 2004/11/17 22:06:22 gbarrand Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// J Kallenbach 27th Aug 1996
@@ -32,31 +32,3 @@
inline G4int G4OpenInventorSceneHandler::GetSceneCount () {
return fSceneCount;
}
inline void G4OpenInventorSceneHandler::AddThis (const G4Sphere& sphere) {
G4VSceneHandler::AddThis (sphere);
}
inline void G4OpenInventorSceneHandler::AddThis (const G4Para& para) {
G4VSceneHandler::AddThis (para);
}
inline void G4OpenInventorSceneHandler::AddThis (const G4Torus& torus) {
G4VSceneHandler::AddThis (torus);
}
inline void G4OpenInventorSceneHandler::AddThis (const G4Polycone& polycone) {
G4VSceneHandler::AddThis (polycone);
}
inline void G4OpenInventorSceneHandler::AddThis (const G4Polyhedra& polyhedra) {
G4VSceneHandler::AddThis (polyhedra);
}
inline void G4OpenInventorSceneHandler::AddThis (const G4VSolid& vsolid) {
G4VSceneHandler::AddThis (vsolid);
}
inline void G4OpenInventorSceneHandler::AddPrimitive (const G4Polymarker& polymarker) {
G4VSceneHandler::AddPrimitive (polymarker);
}
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenInventorTransform3D.hh,v 1.5 2004/04/08 09:39:38 gbarrand Exp $
// GEANT4 tag $Name: geant4-06-02 $
// $Id: G4OpenInventorTransform3D.hh,v 1.6 2004/11/22 14:20:19 gbarrand Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// jck 17 Dec 1996
@@ -36,13 +36,12 @@
#include "G4Transform3D.hh"
class SoSFMatrix;
class SbMatrix;
class G4OpenInventorTransform3D : public G4Transform3D {
public:
G4OpenInventorTransform3D (const G4Transform3D &t);
SoSFMatrix* GetOIMatrix () const;
SbMatrix* GetSbMatrix () const;
private:
G4float m[16];
};
@@ -0,0 +1,101 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
#ifndef G4OPENINVENTORVIEWER_HH
#define G4OPENINVENTORVIEWER_HH
#ifdef G4VIS_BUILD_OI_DRIVER
// Inheritance :
#include "G4VViewer.hh"
class SoSelection;
class SoPath;
class SoCamera;
class SoSensor;
class SoNodeSensor;
class Geant4_SoImageWriter;
class Geant4_SoGL2PSAction;
class G4OpenInventorSceneHandler;
class G4VInteractorManager;
class SbVec3f;
//
// Base class for various OpenInventorView classes.
//
class G4OpenInventorViewer: public G4VViewer {
public: //G4VViewer
virtual void DrawView();
virtual void ShowView();
virtual void ClearView();
virtual void SetView();
virtual void KernelVisitDecision();
public:
G4OpenInventorViewer(G4OpenInventorSceneHandler& scene,
const G4String& name = "");
virtual ~G4OpenInventorViewer();
protected:
virtual void ViewerRender() = 0;
virtual SoCamera* GetCamera() = 0;
void Escape();
void WritePostScript(const G4String& file = "g4out.ps");
void WritePixmapPostScript(const G4String& file = "g4out.ps");
void WriteInventor(const G4String& file = "g4out.iv");
void SceneGraphStatistics();
void EraseDetector();
void EraseEvent();
void SetPreviewAndFull();
void SetPreview();
void SetSolid();
void SetWireFrame();
void SetReducedWireFrame(bool);
void UpdateScene();
G4String Help(const G4String& topic = "controls");
private:
static void SelectionCB(void*,SoPath*);
//static void DeselectionCB(void*,SoPath*);
static void GroupCameraSensorCB(void*,SoSensor*);
static void CameraSensorCB(void*,SoSensor*);
static void pointAt(SoCamera*,const SbVec3f & targetpoint, const SbVec3f & upvector);
static void lookAt(SoCamera*,const SbVec3f & dir, const SbVec3f & up);
static void lookedAt(SoCamera*,SbVec3f & dir, SbVec3f & up);
private:
G4bool CompareForKernelVisit(G4ViewParameters&);
void DrawDetector();
private:
G4ViewParameters fLastVP; // Memory for making kernel visit decisions.
protected:
G4OpenInventorSceneHandler& fG4OpenInventorSceneHandler;
G4VInteractorManager* fInteractorManager;
SoSelection* fSoSelection;
Geant4_SoImageWriter* fSoImageWriter;
Geant4_SoGL2PSAction* fGL2PSAction;
SoNodeSensor* fGroupCameraSensor;
SoNodeSensor* fCameraSensor;
};
#endif
#endif
@@ -22,7 +22,7 @@
//
//
// $Id: G4OpenInventorWin.hh,v 1.1 2004/04/08 09:37:30 gbarrand Exp $
// GEANT4 tag $Name: geant4-06-02 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// OpenInventor graphics system factory.
@@ -22,7 +22,7 @@
//
//
// $Id: G4OpenInventorWin32.hh,v 1.6 2004/04/08 09:39:38 gbarrand Exp $
// GEANT4 tag $Name: geant4-06-02 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// OpenInventor graphics system factory.
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenInventorWinViewer.hh,v 1.2 2004/04/08 10:49:10 gbarrand Exp $
// GEANT4 tag $Name: geant4-06-02 $
// $Id: G4OpenInventorWinViewer.hh,v 1.7 2004/11/25 13:39:54 gbarrand Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// Jeff Kallenbach 01 Aug 1996
@@ -33,35 +33,28 @@
#ifdef G4VIS_BUILD_OI_DRIVER
#include "G4VViewer.hh"
// Inheritance :
#include "G4OpenInventorViewer.hh"
#include <windows.h>
class SoWinExaminerViewer;
class SoSelection;
class G4OpenInventorSceneHandler;
class G4VInteractorManager;
class G4OpenInventorWinViewer: public G4VViewer {
class Geant4_SoWinExaminerViewer;
class G4OpenInventorWinViewer: public G4OpenInventorViewer {
public: //G4VViewer
virtual void FinishView();
protected:
virtual void ViewerRender();
virtual SoCamera* GetCamera();
public:
G4OpenInventorWinViewer(G4OpenInventorSceneHandler& scene,
const G4String& name = "");
virtual ~G4OpenInventorWinViewer();
void DrawView();
void ShowView();
private:
void ClearView();
void FinishView();
void SetView();
void KernelVisitDecision();
G4bool CompareForKernelVisit(G4ViewParameters&);
G4OpenInventorSceneHandler& fG4OpenInventorSceneHandler;
G4ViewParameters fLastVP; // Memory for making kernel visit decisions.
static LRESULT CALLBACK WindowProc(HWND,UINT,WPARAM,LPARAM);
private:
HWND fShell;
SoWinExaminerViewer* fViewer;
SoSelection* fSelection;
G4VInteractorManager* fInteractorManager;
Geant4_SoWinExaminerViewer* fViewer;
};
#endif
@@ -22,7 +22,7 @@
//
//
// $Id: G4OpenInventorX.hh,v 1.6 2004/04/08 09:39:38 gbarrand Exp $
// GEANT4 tag $Name: geant4-06-02 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// Andrew Walkden 27th March 1996
@@ -22,7 +22,7 @@
//
//
// $Id: G4OpenInventorXt.hh,v 1.1 2004/04/08 09:37:30 gbarrand Exp $
// GEANT4 tag $Name: geant4-06-02 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// Andrew Walkden 27th March 1996
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenInventorXtViewer.hh,v 1.1 2004/04/08 09:37:30 gbarrand Exp $
// GEANT4 tag $Name: geant4-06-02 $
// $Id: G4OpenInventorXtViewer.hh,v 1.12 2004/11/25 13:39:54 gbarrand Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// Jeff Kallenbach 01 Aug 1996
@@ -33,38 +33,47 @@
#ifdef G4VIS_BUILD_OI_DRIVER
#include "G4VViewer.hh"
// Inheritance :
#include "G4OpenInventorViewer.hh"
#include <X11/Intrinsic.h>
class SoXtExaminerViewer;
class SoSelection;
class G4OpenInventorSceneHandler;
class G4VInteractorManager;
//
// Base class for various OpenInventorView classes.
//
class G4OpenInventorXtViewer: public G4VViewer {
class G4OpenInventorXtViewer: public G4OpenInventorViewer {
public: //G4VViewer
virtual void FinishView();
protected:
virtual void ViewerRender();
virtual SoCamera* GetCamera();
public:
G4OpenInventorXtViewer(G4OpenInventorSceneHandler& scene,
const G4String& name = "");
const G4String& name = "");
virtual ~G4OpenInventorXtViewer();
void DrawView();
void ShowView();
private:
void ClearView();
void FinishView();
void SetView();
void KernelVisitDecision();
G4bool CompareForKernelVisit(G4ViewParameters&);
G4OpenInventorSceneHandler& fG4OpenInventorSceneHandler;
G4ViewParameters fLastVP; // Memory for making kernel visit decisions.
Widget AddMenu(Widget,const G4String&,const G4String&);
void AddButton(Widget,const G4String&,XtCallbackProc);
private:
static void PostScriptCbk(Widget,XtPointer,XtPointer);
static void PixmapPostScriptCbk(Widget,XtPointer,XtPointer);
static void WriteInventorCbk(Widget,XtPointer,XtPointer);
static void EscapeCbk(Widget,XtPointer,XtPointer);
static void SceneGraphStatisticsCbk(Widget,XtPointer,XtPointer);
static void EraseDetectorCbk(Widget,XtPointer,XtPointer);
static void EraseEventCbk(Widget,XtPointer,XtPointer);
static void SetSolidCbk(Widget,XtPointer,XtPointer);
static void SetWireFrameCbk(Widget,XtPointer,XtPointer);
static void SetReducedWireFrameCbk(Widget,XtPointer,XtPointer);
static void SetFullWireFrameCbk(Widget,XtPointer,XtPointer);
static void UpdateSceneCbk(Widget,XtPointer,XtPointer);
static void HelpCbk(Widget,XtPointer,XtPointer);
static void HelpCancelCbk(Widget,XtPointer,XtPointer);
static void SetPreviewCbk(Widget,XtPointer,XtPointer);
static void SetPreviewAndFullCbk(Widget,XtPointer,XtPointer);
private:
Widget fShell;
SoXtExaminerViewer* fViewer;
SoSelection* fSelection;
G4VInteractorManager* fInteractorManager;
Widget fHelpForm;
Widget fHelpText;
};
#endif
@@ -0,0 +1,66 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
#ifndef Geant4_SoPolyhedron_h
#define Geant4_SoPolyhedron_h
// Inheritance :
#include <Inventor/nodes/SoShape.h>
#include <Inventor/fields/SoSFBool.h>
class HepPolyhedron;
/**
* Geant4_SoPolyhedron is an Inventor encapsulation of the HepPolyedron
* class written by E.Chernyaev. In particular Geant4_SoPolyhedron permits
* to represent boolean operations over solids.
* The solids are modeled with HepPolyedron objects. The HepPolyhedron
* permits to produce a new HepPolyhedron according to the boolean
* operation done on them. The resulting HepPolyhedron is then given
* to an Geant4_SoPolyhedron for rendering.
* Note that a boolean operation could be rendered in wire frame
* by drawing the contour of the resulting solid (not by drawing
* the wire frame of a triangulation).
*/
class Geant4_SoPolyhedron : public SoShape {
SO_NODE_HEADER(Geant4_SoPolyhedron);
public:
SoSFBool solid;
SoSFBool reducedWireFrame;
public:
Geant4_SoPolyhedron();
Geant4_SoPolyhedron(const HepPolyhedron&);
Geant4_SoPolyhedron(HepPolyhedron*);
public:
static void initClass();
protected:
virtual void computeBBox(SoAction*,SbBox3f&,SbVec3f&);
virtual void generatePrimitives(SoAction*);
protected:
virtual ~Geant4_SoPolyhedron();
private:
HepPolyhedron* fPolyhedron;
};
#endif
@@ -0,0 +1,38 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
#ifndef HEPVis_SbGL_h
#define HEPVis_SbGL_h
#ifdef WIN32
#include <windows.h>
#endif
#ifdef APPLE_GL
#include <gl.h>
#include <glu.h>
#else
#include <GL/gl.h>
#include <GL/glu.h>
#endif
#endif
@@ -21,13 +21,13 @@
// ********************************************************************
//
//
// $Id: SbMath.h,v 1.2 2004/06/14 09:27:34 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-02 $
// $Id: SbMath.h,v 1.3 2004/12/07 23:40:59 perl Exp $
// GEANT4 tag $Name: geant4-07-00-cand-03 $
//
#ifndef HEPVis_SbMath_h
#define HEPVis_SbMath_h
#include <math.h>
#include <cmath>
#ifndef M_PI
#define M_PI 3.1415926535897931160E0
#define M_PI_2 1.5707963267948965580E0
@@ -0,0 +1,74 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
// History :
// - 09/12/98, G.Barrand : creation.
#ifndef HEPVis_SbPainter_h
#define HEPVis_SbPainter_h
#include <Inventor/SbBasic.h>
/*
#include <HEPVis/SbStyle.h>
typedef enum {
SbPrimitivePoints,
SbPrimitiveLineStrip,
SbPrimitiveLineLoop,
SbPrimitiveLines,
SbPrimitivePolygon
} SbPrimitiveType;
class SbPainterContext {
public:
float fRed,fGreen,fBlue;
int fLineWidth;
SbLineStyle fLineStyle;
int fMarkerSize;
SbMarkerStyle fMarkerStyle;
SbAreaStyle fAreaStyle;
int fPolygonMode;
};
*/
#define SbPainter Geant4_SbPainter
class SbPainter {
public:
SbPainter();
virtual ~SbPainter();
void setWindowSize(int,int);
void enableEdges(SbBool);
virtual void beginTraversal() = 0;
virtual void clearColorBuffer(float,float,float) = 0;
//virtual void drawPrimitive(SbPrimitiveType,
// int,float*,float*,float*,
// const SbPainterContext&) = 0;
virtual void endTraversal() = 0;
protected:
int fWindowWidth,fWindowHeight;
float fRed,fGreen,fBlue;
SbBool fEdges;
};
#endif
@@ -0,0 +1,127 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
// History :
// - 25/09/98, G.Barrand : creation.
#ifndef HEPVis_SbPainterPS_h
#define HEPVis_SbPainterPS_h
// Inheritance :
#include <HEPVis/SbPainter.h>
#include <stdarg.h>
#include <Inventor/SbViewportRegion.h>
#define SbPainterPS Geant4_SbPainterPS
class SbPainterPS : public SbPainter {
public:
SbPainterPS();
~SbPainterPS();
void beginTraversal();
void clearColorBuffer(float,float,float);
//void drawPrimitive(SbPrimitiveType,
// int,float*,float*,float*,
// const SbPainterContext&);
void endTraversal();
public:
void setColorScheme(int);
void setOrientation(int);
void setBackgroundDrawn(int);
void setBitsPerPixel(int);
void setLineWidth(int);
void* getStream();
void setFileName(const char*);
const char* getFileName() const;
void openFileForWriting(const char*);
void closeStream();
void putPageScaleInStream(float,float);
void putSaveStateInStream();
void putRestoreStateInStream();
void putTranslationInStream(float,float);
void putScaleInStream(float,float);
void putBeginPageInStream();
void putEndPageInStream();
void putRGB_InStream(float,float,float);
void putMarkerSizeInStream(float);
//void putMarkerStyleInStream(SbMarkerStyle);
void putBackgroundInStream(float,float,float,float,float);
void putFrameInStream(float,float,float,float,float);
void putRotateInStream(float);
void putNewPathInStream();
void putStrokeInStream();
void putFillInStream();
void putClosePathInStream();
void putCapInStream(int);
void putLineToInStream(float,float);
void putMoveInStream(float,float);
void putCircleInStream(float,float,float);
void putLineWidthInStream(int);
//void putLineStyleInStream(SbLineStyle);
typedef int(*GetRGB_Function)(unsigned int,unsigned int,
double&,double&,double&);
void putImageInStream(unsigned int,unsigned int,GetRGB_Function);
private:
//void drawPolygon(int,float*,float*,float,float,float,const SbAreaStyle&);
//void drawLines(int,float*,float*,float,float,float,const SbLineStyle&,int);
//void drawMarkers(int,float*,float*,
// float,float,float,const SbMarkerStyle&,int);
enum ColorScheme {
Color = 0,
Grey = 1,
BlackWhite = 2
};
struct {
int shade;
int portrait;
int nbit;
int doBack;
float lineWidth;
} fParams;
float fDeviceWidth;
float fDeviceHeight;
int fPageNumber;
long fPagePos;
float fMarkerSize;
FILE* fFile;
char* fFileName;
int fGSave;
int fBufferCount;
char* fBufferString;
#define METAFILE_RECORD_LENGTH 80
unsigned char fBufferPointer[METAFILE_RECORD_LENGTH+1];
private:
void putInStreamF(const char*,...);
void printFLN(const char*,...);
void printV(const char*,va_list);
float convertRGB_ToGrey(float,float,float);
void writeByte(unsigned char);
};
#endif
@@ -0,0 +1,57 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
#ifndef HEPVis_SoCounterAction_h
#define HEPVis_SoCounterAction_h
// Inheritance :
#include <Inventor/actions/SoAction.h>
#include <Inventor/actions/SoSubAction.h>
#define SoCounterAction Geant4_SoCounterAction
class SoCounterAction : public SoAction {
SO_ACTION_HEADER(SoCounterAction);
public:
SoCounterAction();
virtual ~SoCounterAction();
static void initClass(void);
enum LookFor { NODE = 1,TYPE = 2, NAME = 3 };
void setLookFor(LookFor);
void setType(const SoType,SbBool = TRUE);
void setName(const SbName);
public:
int getCount() const;
protected:
virtual void beginTraversal(SoNode*);
private:
static void actionMethod(SoAction*,SoNode*);
private:
int fCount;
int fLookFor;
SbName fName;
SoType fType;
SbBool fCheckDerived;
};
#endif
@@ -0,0 +1,59 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
#ifndef HEPVis_SoGL2PSAction_h
#define HEPVis_SoGL2PSAction_h
#include <Inventor/actions/SoGLRenderAction.h>
/**
* SoGL2PSAction inherits Inventor/SoGLRenderAction.
* It uses the gl2ps software to produce vector PostScript of a scene graph.
* See applications/DetectorTreeKit, Polyhedron for examples.
*/
#define SoGL2PSAction Geant4_SoGL2PSAction
class SoGL2PSAction : public SoGLRenderAction {
SO_ACTION_HEADER(SoGL2PSAction);
public:
SoGL2PSAction(const SbViewportRegion&);
void setFileName(const char*);
void enableFileWriting();
void disableFileWriting();
SbBool fileWritingEnabled() const;
SbBool addBitmap(int,int,float=0,float=0,float=0,float=0);
void beginViewport();
void endViewport();
public: /*SoINTERNAL*/
static void initClass();
protected:
virtual void beginTraversal(SoNode*);
private:
void gl2psBegin();
private:
SbString fFileName;
FILE* fFile;
};
#endif
@@ -0,0 +1,60 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
// 27/03/2004 : G.Barrand : creation.
#ifndef HEPVis_SoStyleCache_h
#define HEPVis_SoStyleCache_h
#include <Inventor/nodes/SoGroup.h>
//#include <HEPVis/SbStyle.h>
class SoMaterial;
class SoDrawStyle;
class SoLightModel;
class SoResetTransform;
class SbColor;
#define SoStyleCache Geant4_SoStyleCache
class SoStyleCache : public SoGroup {
public:
SoStyleCache();
protected:
~SoStyleCache();
public:
SoMaterial* getMaterial(const SbColor&,float = 0);
SoMaterial* getMaterial(float,float,float,float = 0);
//SoDrawStyle* getLineStyle(SbLineStyle,float = 0);
SoDrawStyle* getLineStyle(unsigned short = 0xFFFF,float = 0);
SoLightModel* getLightModelPhong();
SoLightModel* getLightModelBaseColor();
SoResetTransform* getResetTransform();
private:
SoGroup* fMaterials;
SoGroup* fLineStyles;
SoGroup* fLightModels;
SoResetTransform* fResetTransform;
};
#endif
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: SoDetectorTreeKit.h,v 1.2 2004/06/14 09:27:35 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-02 $
// $Id: SoDetectorTreeKit.h,v 1.3 2004/11/22 22:57:01 gbarrand Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
/*-----------------------------Hepvis----------------------------------------*/
/* */
@@ -80,6 +80,9 @@ public:
// Return the preview state
virtual SbBool getPreview() const;
// The SoSwitch::whichChild = SO_SWITCH_ALL
void setPreviewAndFull();
// Return the preview Separator
virtual SoSeparator *getPreviewSeparator() const;
@@ -22,7 +22,7 @@
//
//
// $Id: SoBox.h,v 1.2 2004/06/14 09:27:36 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-02 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
/*-----------------------------Hepvis----------------------------------------*/
/* */
@@ -22,7 +22,7 @@
//
//
// $Id: SoCons.h,v 1.2 2004/06/14 09:27:36 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-02 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
/*-----------------------------Hepvis----------------------------------------*/
/* */
@@ -0,0 +1,64 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
////////////////////////////////////////////////////////////
//
// This node is able to produce PostScript, GIF files.
//
////////////////////////////////////////////////////////////
#ifndef HEPVis_SoImageWriter_h
#define HEPVis_SoImageWriter_h
#include <Inventor/nodes/SoSubNode.h>
#include <Inventor/fields/SoSFEnum.h>
#include <Inventor/fields/SoSFString.h>
#define SoImageWriter Geant4_SoImageWriter
class SoImageWriter : public SoNode {
SO_NODE_HEADER(SoImageWriter);
public:
/* enum Format {
POST_SCRIPT,
GIF
};
SoSFEnum format;*/
SoSFString fileName;
SoImageWriter();
void enable();
void disable();
SbBool getStatus() const;
protected:
virtual ~SoImageWriter();
public: /*SoEXTENDER*/
virtual void GLRender(SoGLRenderAction*);
public: /*SoINTERNAL*/
static void initClass();
private:
SbBool fEnabled;
SbBool fStatus;
};
#endif
@@ -0,0 +1,108 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
#ifndef HEPVis_SoMarkerSet_h
#define HEPVis_SoMarkerSet_h
#include <Inventor/nodes/SoPointSet.h>
#include <Inventor/fields/SoMFInt32.h>
#define HEPVis_SoMarkerSet Geant4_HEPVis_SoMarkerSet
class HEPVis_SoMarkerSet : public SoPointSet {
SO_NODE_HEADER(HEPVis_SoMarkerSet);
public:
SoMFInt32 markerIndex ;
HEPVis_SoMarkerSet();
enum MarkerType {
//************ 5x5 markers
PLUS_5_5 = 0,
ASTERISK_5_5,
CROSS_5_5,
STAR_5_5,
CIRCLE_LINE_5_5,
CIRCLE_FILLED_5_5,
TRIANGLE_UP_LINE_5_5,
TRIANGLE_UP_FILLED_5_5,
TRIANGLE_DOWN_LINE_5_5,
TRIANGLE_DOWN_FILLED_5_5,
DAVID_STAR_LINE_5_5 = 10,
DAVID_STAR_FILLED_5_5,
SWISS_CROSS_LINE_5_5,
SWISS_CROSS_FILLED_5_5,
DIAMOND_LINE_5_5,
DIAMOND_FILLED_5_5,
SQUARE_LINE_5_5,
SQUARE_FILLED_5_5 = 17,
//************ 7x7 markers
PLUS_7_7 = 18,
ASTERISK_7_7,
CROSS_7_7,
STAR_7_7,
CIRCLE_LINE_7_7,
CIRCLE_FILLED_7_7,
TRIANGLE_UP_LINE_7_7,
TRIANGLE_UP_FILLED_7_7,
TRIANGLE_DOWN_LINE_7_7,
TRIANGLE_DOWN_FILLED_7_7,
DAVID_STAR_LINE_7_7,
DAVID_STAR_FILLED_7_7,
SWISS_CROSS_LINE_7_7 = 30,
SWISS_CROSS_FILLED_7_7,
DIAMOND_LINE_7_7,
DIAMOND_FILLED_7_7,
SQUARE_LINE_7_7,
SQUARE_FILLED_7_7 = 35,
//************ 9x9 markers
PLUS_9_9 = 36,
ASTERISK_9_9,
CROSS_9_9,
STAR_9_9,
CIRCLE_LINE_9_9,
CIRCLE_FILLED_9_9,
TRIANGLE_UP_LINE_9_9,
TRIANGLE_UP_FILLED_9_9,
TRIANGLE_DOWN_LINE_9_9,
TRIANGLE_DOWN_FILLED_9_9,
DAVID_STAR_LINE_9_9,
DAVID_STAR_FILLED_9_9,
SWISS_CROSS_LINE_9_9 = 30,
SWISS_CROSS_FILLED_9_9,
DIAMOND_LINE_9_9,
DIAMOND_FILLED_9_9,
SQUARE_LINE_9_9,
SQUARE_FILLED_9_9 = 53
} ;
public: /*SoEXTENDER*/
virtual void GLRender(SoGLRenderAction*);
public: /*SoINTERNAL*/
static void initClass();
protected:
virtual ~HEPVis_SoMarkerSet();
};
#endif
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: SoTrap.h,v 1.2 2004/06/14 09:27:37 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-02 $
// $Id: SoTrap.h,v 1.3 2004/11/23 21:51:05 gbarrand Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
/*-----------------------------Hepvis----------------------------------------*/
/* */
@@ -33,9 +33,13 @@
/*---------------------------------------------------------------------------*/
#ifndef HEPVis_SoTrap_h
#define HEPVis_SoTrap_h
// Inheritance :
#include <Inventor/nodes/SoShape.h>
#include <Inventor/fields/SoSFNode.h>
#include <Inventor/fields/SoSFBool.h>
#include <Inventor/nodes/SoShape.h>
#include <Inventor/fields/SoSFFloat.h>
//adding fields
#ifdef WIN32
@@ -22,7 +22,7 @@
//
//
// $Id: SoTrd.h,v 1.2 2004/06/14 09:27:37 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-02 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
/*-----------------------------Hepvis----------------------------------------*/
/* */
@@ -22,7 +22,7 @@
//
//
// $Id: SoTubs.h,v 1.2 2004/06/14 09:27:38 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-02 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
/*-----------------------------Hepvis----------------------------------------*/
/* */