43#include <Inventor/nodes/SoSelection.h> 
   45#include <Inventor/Xt/SoXt.h> 
   48#include <Inventor/Xt/viewers/SoXtFlyViewer.h> 
   50#include <X11/StringDefs.h> 
   56#include <Xm/CascadeB.h> 
   57#include <Xm/RowColumn.h> 
   99    if(sgeometry.empty()) {
 
  100      G4cout << 
"ERROR: Geometry string \"" 
  102             << 
"\" is empty.  Using \"600x600\"." 
  106      sprintf(
s,
"%dx%d",width,height);
 
  115    shellName += 
"_shell"; 
 
  117    XtSetArg(
args[0],XtNgeometry,XtNewString(sgeometry.c_str()));
 
  118    XtSetArg(
args[1],XtNborderWidth,0);
 
  119    XtSetArg(
args[2],XtNtitle,XtNewString(wName.c_str()));
 
  120    fShell = XtAppCreateShell(shellName.c_str(),
"Inventor",
 
  121                   topLevelShellWidgetClass,
 
  155   {Widget menu = 
AddMenu(menuBar,
"Etc",
"Etc");
 
  168   {Widget menu = 
AddMenu(menuBar,
"Help",
"Help");
 
  173    XtSetArg(
args[0],XmNtopAttachment   ,XmATTACH_WIDGET);
 
  174    XtSetArg(
args[1],XmNtopWidget       ,menuBar);
 
  175    XtSetArg(
args[2],XmNleftAttachment  ,XmATTACH_FORM);
 
  176    XtSetArg(
args[3],XmNrightAttachment ,XmATTACH_FORM);
 
  177    XtSetArg(
args[4],XmNbottomAttachment,XmATTACH_FORM);
 
  181    XtSetArg(
args[0],XmNleftAttachment  ,XmATTACH_FORM);
 
  182    XtSetArg(
args[1],XmNrightAttachment ,XmATTACH_FORM);
 
  183    XtSetArg(
args[2],XmNbottomAttachment,XmATTACH_FORM);
 
  184    Widget cancel = XmCreatePushButton(
fHelpForm,(
char*)
"helpCancel",
args,3);
 
  185    XtAddCallback(cancel,XmNactivateCallback,
HelpCancelCbk,(XtPointer)
this);
 
  186    XtManageChild(cancel);
 
  187    XtSetArg(
args[0],XmNtopAttachment   ,XmATTACH_FORM);
 
  188    XtSetArg(
args[1],XmNleftAttachment  ,XmATTACH_FORM);
 
  189    XtSetArg(
args[2],XmNrightAttachment ,XmATTACH_FORM);
 
  190    XtSetArg(
args[3],XmNbottomAttachment,XmATTACH_WIDGET);
 
  191    XtSetArg(
args[4],XmNbottomWidget    ,cancel);
 
  199    if(str!=0) wName = str;
 
  210  fViewer->setSize(SbVec2s(width,height));
 
  213  const SbViewportRegion& vpRegion = 
fViewer->getViewportRegion();
 
  229  fViewer->setTransparencyType(SoGLRenderAction::SORTED_OBJECT_ADD);
 
  276  Widget menu = XmCreatePulldownMenu(aMenuBar,(
char*)aName.c_str(),NULL,0);
 
  280    XmStringLtoRCreate((
char*)aLabel.c_str(),(
char*)XmSTRING_DEFAULT_CHARSET);
 
  281  XtSetArg (
args[0],XmNlabelString,cps);
 
  282  XtSetArg (
args[1],XmNsubMenuId,menu);
 
  283  Widget widget = XmCreateCascadeButton(aMenuBar,(
char*)aName.c_str(),
args,2);
 
  285  XtManageChild(widget);
 
  291,XtCallbackProc aCallback
 
  294  Widget widget = XmCreatePushButton(aMenu,(
char*)aLabel.c_str(),NULL,0);
 
  295  XtManageChild(widget);
 
  296  XtAddCallback(widget,XmNactivateCallback,aCallback,(XtPointer)
this);
 
  300  Widget,XtPointer aData,XtPointer) {
 
  311  Widget,XtPointer aData,XtPointer) {
 
  323  Widget,XtPointer aData,XtPointer) {
 
  326  SbBool superimpState =
 
  336  Widget,XtPointer aData,XtPointer) {
 
  339  SbBool superimpState =
 
  350  Widget,XtPointer aData,XtPointer) {
 
  356  Widget,XtPointer aData,XtPointer) {
 
  362  Widget,XtPointer aData,XtPointer) {
 
  368  Widget,XtPointer aData,XtPointer) {
 
  374  Widget,XtPointer aData,XtPointer) {
 
  380  Widget,XtPointer aData,XtPointer) {
 
  386  Widget,XtPointer aData,XtPointer) {
 
  392  Widget,XtPointer aData,XtPointer) {
 
  398  Widget,XtPointer aData,XtPointer) {
 
  404  Widget,XtPointer aData,XtPointer) {
 
  410  Widget,XtPointer aData,XtPointer) {
 
  416  Widget,XtPointer aData,XtPointer) {
 
  422  Widget,XtPointer aData,XtPointer) {
 
  425  XmTextSetString(This->
fHelpText,(
char*)This->
Help().c_str());
 
static constexpr double s
G4GLOB_DLL std::ostream G4cout
G4double GetGreen() const
G4String Help(const G4String &topic="controls")
void WriteInventor(const G4String &file="g4out.iv")
SoSelection * fSoSelection
void WritePostScript(const G4String &file="g4out.ps")
void Escape()
Menu items callbacks /////////////////////////////////////////////////////.
void SceneGraphStatistics()
G4VInteractorManager * fInteractorManager
void WritePixmapPostScript(const G4String &file="g4out.ps")
static void SelectionCB(void *, SoPath *)
void WritePDF(const G4String &file="g4out.pdf")
void SetReducedWireFrame(bool)
Geant4_SoGL2PSAction * fGL2PSAction
void addEscapeCallback(void(*cb)(void *), void *)
static void SetWireFrameCbk(Widget, XtPointer, XtPointer)
static void EscapeFromKeyboardCbk(void *o)
static void PostScriptCbk(Widget, XtPointer, XtPointer)
virtual void ViewerRender()
static void SetSolidCbk(Widget, XtPointer, XtPointer)
static void PixmapPostScriptCbk(Widget, XtPointer, XtPointer)
virtual SoCamera * GetCamera()
static void EraseEventCbk(Widget, XtPointer, XtPointer)
static void SceneGraphStatisticsCbk(Widget, XtPointer, XtPointer)
static void SetPreviewCbk(Widget, XtPointer, XtPointer)
void AddButton(Widget, const G4String &, XtCallbackProc)
static void SetPreviewAndFullCbk(Widget, XtPointer, XtPointer)
static void PDFCbk(Widget, XtPointer, XtPointer)
Widget AddMenu(Widget, const G4String &, const G4String &)
virtual ~G4OpenInventorXtExtendedViewer()
static void SetReducedWireFrameCbk(Widget, XtPointer, XtPointer)
static void SetFullWireFrameCbk(Widget, XtPointer, XtPointer)
virtual void FinishView()
G4OpenInventorXtExaminerViewer * fViewer
static void WriteInventorCbk(Widget, XtPointer, XtPointer)
static void EraseDetectorCbk(Widget, XtPointer, XtPointer)
static void HelpCbk(Widget, XtPointer, XtPointer)
static void UpdateSceneCbk(Widget, XtPointer, XtPointer)
static void HelpCancelCbk(Widget, XtPointer, XtPointer)
G4OpenInventorXtExtendedViewer(G4OpenInventorSceneHandler &scene, const G4String &name="")
static void EscapeCbk(Widget, XtPointer, XtPointer)
void SetCreatedInteractor(G4Interactor)
virtual void FlushAndWaitExecution()=0
G4Interactor GetParentInteractor()
char * GetCreationString()
void RemoveShell(G4Interactor)
void AddShell(G4Interactor)
const G4String & GetXGeometryString() const
unsigned int GetWindowSizeHintX() const
const G4Colour & GetBackgroundColour() const
static Verbosity GetVerbosity()
const char * name(G4int ptype)