Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4OpenGLWin32Viewer Class Reference

#include <G4OpenGLWin32Viewer.hh>

Inheritance diagram for G4OpenGLWin32Viewer:

Public Member Functions

 G4OpenGLWin32Viewer (G4OpenGLSceneHandler &scene)
virtual ~G4OpenGLWin32Viewer ()
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
void SetView ()
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
void ShowView ()
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
void SwitchToMasterThread ()
Public Member Functions inherited from G4OpenGLViewer
virtual void ClearView ()
void ClearViewWithoutFlush ()
virtual bool exportImage (std::string name="", int width=-1, int height=-1)
bool setExportImageFormat (std::string format, bool quiet=false)
Public Member Functions inherited from G4VViewer
 G4VViewer (G4VSceneHandler &, G4int id, const G4String &name="")
virtual ~G4VViewer ()
virtual void Initialise ()
virtual void DrawView ()=0
void RefreshView ()
virtual void FinishView ()
virtual G4bool ReadyToDraw ()
std::vector< G4ThreeVectorComputeFlyThrough (G4Vector3D *)
virtual void DoneWithMasterThread ()
virtual void MovingToVisSubThread ()
virtual void SwitchToVisSubThread ()
virtual void DoneWithVisSubThread ()
virtual void MovingToMasterThread ()
void InsertModelInSceneTree (G4VModel *)
const G4SceneTreeItemGetSceneTree ()
G4SceneTreeItemAccessSceneTree ()
void UpdateGUISceneTree ()
void UpdateGUIControlWidgets ()
void UpdateGUIDrawingStyle ()
void UpdateGUIProjectionStyle ()
void UpdateGUITransparencySlider ()
const G4StringGetName () const
const G4StringGetShortName () const
void SetName (const G4String &)
G4int GetViewId () const
G4VSceneHandlerGetSceneHandler () const
const G4ViewParametersGetViewParameters () const
const G4ViewParametersGetDefaultViewParameters () const
G4double GetKernelVisitElapsedTimeSeconds () const
virtual const std::vector< G4ModelingParameters::VisAttributesModifier > * GetPrivateVisAttributesModifiers () const
void SetViewParameters (const G4ViewParameters &vp)
void SetDefaultViewParameters (const G4ViewParameters &vp)
const G4VisAttributesGetApplicableVisAttributes (const G4VisAttributes *) const
void SetNeedKernelVisit (G4bool need)
void NeedKernelVisit ()
void ProcessView ()
void ProcessTransients ()
void ZoomFromMouseWheel (G4double delta, G4bool shift=false, G4double xPos=0, G4double yPos=0)

Protected Member Functions

void GetWin32Connection ()
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
void CreateGLWin32Context ()
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
virtual void CreateMainWindow ()
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
Protected Member Functions inherited from G4OpenGLViewer
 G4OpenGLViewer (G4OpenGLSceneHandler &scene)
virtual ~G4OpenGLViewer ()
virtual void ResetView ()
virtual void DrawText (const G4Text &)
void ChangePointSize (G4double size)
void ChangeLineWidth (G4double width)
void HaloingFirstPass ()
void HaloingSecondPass ()
void HLRFirstPass ()
void HLRSecondPass ()
void HLRThirdPass ()
void InitializeGLView ()
void ResizeGLView ()
void ResizeWindow (unsigned int, unsigned int)
virtual G4String Pick (GLdouble x, GLdouble y)
const std::vector< G4OpenGLViewerPickMap * > & GetPickDetails (GLdouble x, GLdouble y)
virtual void CreateFontLists ()
void rotateScene (G4double dx, G4double dy)
void rotateSceneToggle (G4double dx, G4double dy)
void setExportSize (G4int, G4int)
bool setExportFilename (G4String name, G4bool inc=true)
std::string getRealPrintFilename ()
unsigned int getWinWidth () const
unsigned int getWinHeight () const
G4bool sizeHasChanged ()
G4double GetSceneNearWidth ()
GLdouble getSceneFarWidth ()
GLdouble getSceneDepth ()
void addExportImageFormat (std::string format)
G4bool isGl2psWriting ()
G4bool isFramebufferReady ()
void g4GluPickMatrix (GLdouble x, GLdouble y, GLdouble width, GLdouble height, GLint viewport[4])
void g4GluLookAt (GLdouble eyex, GLdouble eyey, GLdouble eyez, GLdouble centerx, GLdouble centery, GLdouble centerz, GLdouble upx, GLdouble upy, GLdouble upz)
void g4GlOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far)
void g4GlFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far)
bool IsGettingPickInfos () const
Protected Member Functions inherited from G4VViewer
void SetTouchable (const std::vector< G4PhysicalVolumeModel::G4PhysicalVolumeNodeID > &fullPath)
void TouchableSetVisibility (const std::vector< G4PhysicalVolumeModel::G4PhysicalVolumeNodeID > &fullPath, G4bool visibility)
void TouchableSetColour (const std::vector< G4PhysicalVolumeModel::G4PhysicalVolumeNodeID > &fullPath, const G4Colour &)

Protected Attributes

HDC fHDC
G4bool fMouseHovered
G4bool fMousePressed
G4int fMousePressedX
G4int fMousePressedY
Protected Attributes inherited from G4OpenGLViewer
G4bool fPrintColour
G4bool fVectoredPs
G4OpenGLSceneHandlerfOpenGLSceneHandler
G4Colour background
G4bool transparency_enabled
G4bool antialiasing_enabled
G4bool haloing_enabled
G4gl2psfGL2PSAction
G4double fRot_sens
G4double fPan_sens
unsigned int fWinSize_x
unsigned int fWinSize_y
std::vector< std::string > fExportImageFormatVector
std::string fDefaultExportImageFormat
std::string fExportImageFormat
int fExportFilenameIndex
G4int fPrintSizeX
G4int fPrintSizeY
Protected Attributes inherited from G4VViewer
G4VSceneHandlerfSceneHandler
G4int fViewId
G4String fName
G4String fShortName
G4ViewParameters fVP
G4ViewParameters fDefaultVP
G4double fKernelVisitElapsedTimeSeconds = 999.
G4SceneTreeItem fSceneTree
G4bool fNeedKernelVisit
G4bool fTransientsNeedRedrawing

Additional Inherited Members

Public Attributes inherited from G4VViewer
const G4int fMaxAllTouchables = 10000
G4bool fCurtailDescent = false

Detailed Description

Definition at line 41 of file G4OpenGLWin32Viewer.hh.

Constructor & Destructor Documentation

◆ G4OpenGLWin32Viewer()

G4OpenGLWin32Viewer::G4OpenGLWin32Viewer ( G4OpenGLSceneHandler & scene)

Definition at line 170 of file G4OpenGLWin32Viewer.cc.

173:G4VViewer (scene, -1)
174,G4OpenGLViewer (scene)
175,fMouseHovered(false)
176,fMousePressed(false)
179,fHDC(0)
180,fWindow(0)
181,fHGLRC(0)
182,fInCreateWindow(false)
183//////////////////////////////////////////////////////////////////////////////
184//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
185{
186}
G4OpenGLViewer(G4OpenGLSceneHandler &scene)
G4VViewer(G4VSceneHandler &, G4int id, const G4String &name="")
Definition G4VViewer.cc:49

Referenced by G4OpenGLImmediateWin32Viewer::G4OpenGLImmediateWin32Viewer(), and G4OpenGLStoredWin32Viewer::G4OpenGLStoredWin32Viewer().

◆ ~G4OpenGLWin32Viewer()

G4OpenGLWin32Viewer::~G4OpenGLWin32Viewer ( )
virtual

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//

Definition at line 189 of file G4OpenGLWin32Viewer.cc.

193{
194 // This is the end (Jim Morisson).
195 if (fViewId >= 0) {
196 if(wglGetCurrentContext()!=NULL) wglMakeCurrent(NULL,NULL);
197 if(fHGLRC) {
198 wglDeleteContext(fHGLRC);
199 fHGLRC = NULL;
200 }
201
202 if(fWindow) {
203 ::SetWindowLongPtr(fWindow,GWLP_USERDATA,LONG(NULL));
204 if(fHDC) ::ReleaseDC(fWindow,fHDC);
205 ::DestroyWindow(fWindow);
206 }
207 }
208}
G4int fViewId
Definition G4VViewer.hh:269

Member Function Documentation

◆ CreateGLWin32Context()

void G4OpenGLWin32Viewer::CreateGLWin32Context ( )
protected

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//

Definition at line 92 of file G4OpenGLWin32Viewer.cc.

96{
97}

Referenced by G4OpenGLImmediateWin32Viewer::Initialise(), and G4OpenGLStoredWin32Viewer::Initialise().

◆ CreateMainWindow()

void G4OpenGLWin32Viewer::CreateMainWindow ( )
protectedvirtual

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//

Definition at line 100 of file G4OpenGLWin32Viewer.cc.

104{
105 if(fWindow) return; //Done.
106
107 // Bill Gates stuff...
108 static const char className[] = "G4OpenGLWin32";
109 static G4bool done = false;
110 if(done==false) {
111 WNDCLASS wc;
112 wc.style = CS_HREDRAW | CS_VREDRAW;
113 wc.lpfnWndProc = (WNDPROC)WindowProc;
114 wc.cbClsExtra = 0;
115 wc.cbWndExtra = 0;
116 wc.hInstance = ::GetModuleHandle(NULL);
117 wc.hIcon = LoadIcon (NULL, IDI_APPLICATION);
118 wc.hCursor = LoadCursor(NULL,IDC_CROSS);
119 wc.hbrBackground = NULL;
120 wc.lpszMenuName = (PTSTR)className;
121 wc.lpszClassName = (PTSTR)className;
122 ::RegisterClass(&wc);
123 done = true;
124 }
125
126 ResizeWindow(fVP.GetWindowSizeHintX(),fVP.GetWindowSizeHintY());
127
128 G4int x_res=GetSystemMetrics(SM_CXSCREEN);
129 G4int y_res=GetSystemMetrics(SM_CYSCREEN);
130
131 //FIXME : NOT tested !
132 fWindow = ::CreateWindowEx(0, (PTSTR)className, (PTSTR)fName.c_str(),
133 WS_OVERLAPPEDWINDOW,
134 //WS_CHILD | WS_VISIBLE,
135 // 0,0,
136 fVP.GetWindowAbsoluteLocationHintX(x_res),
137 fVP.GetWindowAbsoluteLocationHintY(y_res),
139 NULL, NULL,
140 ::GetModuleHandle(NULL),
141 NULL);
142 if(!fWindow) return;
143
144 ::SetWindowLongPtr(fWindow,GWLP_USERDATA,LONG_PTR(this));
145
146 // initialize OpenGL rendering :
147 fHDC = ::GetDC(fWindow);
148 if( fHDC && (SetWindowPixelFormat(fHDC)==TRUE) ) {
149 fHGLRC = ::wglCreateContext(fHDC);
150 }
151
152 if(fHDC && fHGLRC) {
153 ::wglMakeCurrent(fHDC,fHGLRC);
154 }
155
156 //G.Barrand : avoid to indirectly pass in
157 // WindowProc/[WM_SIZE,WM_PAINT]/This->DrawView()
158 // from this method. Else we have crash.
159 fInCreateWindow = true;
160
161 ::SetForegroundWindow(fWindow);
162 ::ShowWindow(fWindow,SW_SHOWDEFAULT);
163 ::UpdateWindow(fWindow);
164 ::DrawMenuBar(fWindow);
165
166 fInCreateWindow = false;
167}
bool G4bool
Definition G4Types.hh:86
int G4int
Definition G4Types.hh:85
unsigned int getWinHeight() const
void ResizeWindow(unsigned int, unsigned int)
unsigned int getWinWidth() const
G4String fName
Definition G4VViewer.hh:270
G4ViewParameters fVP
Definition G4VViewer.hh:272
#define TRUE
Definition globals.hh:41

Referenced by G4OpenGLImmediateWin32Viewer::Initialise(), and G4OpenGLStoredWin32Viewer::Initialise().

◆ GetWin32Connection()

void G4OpenGLWin32Viewer::GetWin32Connection ( )
protected

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//

Definition at line 84 of file G4OpenGLWin32Viewer.cc.

88{
89}

◆ SetView()

void G4OpenGLWin32Viewer::SetView ( )
virtual

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//

Reimplemented from G4OpenGLViewer.

Definition at line 47 of file G4OpenGLWin32Viewer.cc.

51{
52 if(!fHDC) return;
53 if(!fHGLRC) return;
54 ::wglMakeCurrent(fHDC,fHGLRC);
56}
virtual void SetView()

◆ ShowView()

void G4OpenGLWin32Viewer::ShowView ( void )
virtual

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//

Reimplemented from G4VViewer.

Definition at line 59 of file G4OpenGLWin32Viewer.cc.

63{
64 if(!fHDC) return;
65 glFlush ();
66 // Empty the Windows message queue :
67 MSG event;
68 while ( ::PeekMessage(&event, NULL, 0, 0, PM_REMOVE) ) {
69 ::TranslateMessage(&event);
70 ::DispatchMessage (&event);
71 }
72}

◆ SwitchToMasterThread()

void G4OpenGLWin32Viewer::SwitchToMasterThread ( )
virtual

Reimplemented from G4VViewer.

Definition at line 74 of file G4OpenGLWin32Viewer.cc.

75{
77 if (fSceneHandler.GetScene() && fSceneHandler.GetScene()->GetEndOfEventModelList().size()) {
78 fNeedKernelVisit = true;
79 }
80 }
81}
G4bool fNeedKernelVisit
Definition G4VViewer.hh:280
G4VSceneHandler & fSceneHandler
Definition G4VViewer.hh:268
G4bool IsMultithreadedApplication()

Member Data Documentation

◆ fHDC

◆ fMouseHovered

G4bool G4OpenGLWin32Viewer::fMouseHovered
protected

Definition at line 56 of file G4OpenGLWin32Viewer.hh.

Referenced by G4OpenGLWin32Viewer().

◆ fMousePressed

G4bool G4OpenGLWin32Viewer::fMousePressed
protected

Definition at line 57 of file G4OpenGLWin32Viewer.hh.

Referenced by G4OpenGLWin32Viewer().

◆ fMousePressedX

G4int G4OpenGLWin32Viewer::fMousePressedX
protected

Definition at line 58 of file G4OpenGLWin32Viewer.hh.

Referenced by G4OpenGLWin32Viewer().

◆ fMousePressedY

G4int G4OpenGLWin32Viewer::fMousePressedY
protected

Definition at line 58 of file G4OpenGLWin32Viewer.hh.

Referenced by G4OpenGLWin32Viewer().


The documentation for this class was generated from the following files: