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)