Geant4-11
Public Member Functions | Protected Member Functions | Protected Attributes
G4Qt3DViewer Class Reference

#include <G4Qt3DViewer.hh>

Inheritance diagram for G4Qt3DViewer:
G4VViewer

Public Member Functions

void ClearView ()
 
std::vector< G4ThreeVectorComputeFlyThrough (G4Vector3D *)
 
void DrawView ()
 
void FinishView ()
 
 G4Qt3DViewer (G4Qt3DSceneHandler &, const G4String &name)
 
const G4VisAttributesGetApplicableVisAttributes (const G4VisAttributes *) const
 
const G4ViewParametersGetDefaultViewParameters () const
 
const G4StringGetName () const
 
virtual const std::vector< G4ModelingParameters::VisAttributesModifier > * GetPrivateVisAttributesModifiers () const
 
G4VSceneHandlerGetSceneHandler () const
 
const G4StringGetShortName () const
 
G4int GetViewId () const
 
const G4ViewParametersGetViewParameters () const
 
void Initialise ()
 
void MovingToMasterThread ()
 
void MovingToVisSubThread ()
 
void NeedKernelVisit ()
 
void ProcessView ()
 
void RefreshView ()
 
virtual void ResetView ()
 
void SetDefaultViewParameters (const G4ViewParameters &vp)
 
void SetName (const G4String &)
 
void SetNeedKernelVisit (G4bool need)
 
void SetView ()
 
void SetViewParameters (const G4ViewParameters &vp)
 
void ShowView ()
 
void SwitchToMasterThread ()
 
void SwitchToVisSubThread ()
 
virtual ~G4Qt3DViewer ()
 

Protected Member Functions

G4bool CompareForKernelVisit (G4ViewParameters &)
 
void KernelVisitDecision ()
 
void keyPressEvent (QKeyEvent *)
 
void keyReleaseEvent (QKeyEvent *)
 
void mouseDoubleClickEvent (QMouseEvent *)
 
void mouseMoveEvent (QMouseEvent *)
 
void mousePressEvent (QMouseEvent *)
 
void mouseReleaseEvent (QMouseEvent *)
 
void SetTouchable (const std::vector< G4PhysicalVolumeModel::G4PhysicalVolumeNodeID > &fullPath)
 
void TouchableSetColour (const std::vector< G4PhysicalVolumeModel::G4PhysicalVolumeNodeID > &fullPath, const G4Colour &)
 
void TouchableSetVisibility (const std::vector< G4PhysicalVolumeModel::G4PhysicalVolumeNodeID > &fullPath, G4bool visibility)
 
void wheelEvent (QWheelEvent *)
 

Protected Attributes

G4ViewParameters fDefaultVP
 
int fKey
 
G4bool fKeyPressed
 
G4ViewParameters fLastVP
 
G4bool fMousePressed
 
G4double fMousePressedX
 
G4double fMousePressedY
 
G4String fName
 
G4bool fNeedKernelVisit
 
G4Qt3DSceneHandlerfQt3DSceneHandler
 
G4VSceneHandlerfSceneHandler
 
G4String fShortName
 
QWidget * fUIWidget
 
G4int fViewId
 
G4ViewParameters fVP
 

Detailed Description

Definition at line 37 of file G4Qt3DViewer.hh.

Constructor & Destructor Documentation

◆ G4Qt3DViewer()

G4Qt3DViewer::G4Qt3DViewer ( G4Qt3DSceneHandler sceneHandler,
const G4String name 
)

Definition at line 38 of file G4Qt3DViewer.cc.

40: G4VViewer(sceneHandler, sceneHandler.IncrementViewCount(), name)
41, fQt3DSceneHandler(sceneHandler)
42, fKeyPressed(false)
43, fMousePressed(false)
46{}
G4Qt3DSceneHandler & fQt3DSceneHandler
Definition: G4Qt3DViewer.hh:69
G4double fMousePressedY
Definition: G4Qt3DViewer.hh:76
G4bool fMousePressed
Definition: G4Qt3DViewer.hh:75
G4double fMousePressedX
Definition: G4Qt3DViewer.hh:76
G4bool fKeyPressed
Definition: G4Qt3DViewer.hh:73
G4int IncrementViewCount()
G4VViewer(G4VSceneHandler &, G4int id, const G4String &name="")
Definition: G4VViewer.cc:46
const char * name(G4int ptype)

◆ ~G4Qt3DViewer()

G4Qt3DViewer::~G4Qt3DViewer ( )
virtual

Definition at line 72 of file G4Qt3DViewer.cc.

73{}

Member Function Documentation

◆ ClearView()

void G4Qt3DViewer::ClearView ( void  )
virtual

Implements G4VViewer.

Definition at line 126 of file G4Qt3DViewer.cc.

127{}

◆ CompareForKernelVisit()

G4bool G4Qt3DViewer::CompareForKernelVisit ( G4ViewParameters lastVP)
protected

Definition at line 240 of file G4Qt3DViewer.cc.

241{
242 // Typical comparison. Taken from OpenGL.
243 if (
244 (lastVP.GetDrawingStyle () != fVP.GetDrawingStyle ()) ||
246 (lastVP.IsAuxEdgeVisible () != fVP.IsAuxEdgeVisible ()) ||
247 (lastVP.IsCulling () != fVP.IsCulling ()) ||
248 (lastVP.IsCullingInvisible () != fVP.IsCullingInvisible ()) ||
249 (lastVP.IsDensityCulling () != fVP.IsDensityCulling ()) ||
250 (lastVP.IsCullingCovered () != fVP.IsCullingCovered ()) ||
251 (lastVP.GetCBDAlgorithmNumber() !=
253 (lastVP.IsSection () != fVP.IsSection ()) ||
254 (lastVP.IsCutaway () != fVP.IsCutaway ()) ||
255 (lastVP.IsExplode () != fVP.IsExplode ()) ||
256 (lastVP.GetNoOfSides () != fVP.GetNoOfSides ()) ||
259 (lastVP.IsMarkerNotHidden () != fVP.IsMarkerNotHidden ()) ||
260 (lastVP.GetDefaultVisAttributes()->GetColour() !=
265 (lastVP.IsPicking () != fVP.IsPicking ()) ||
266 (lastVP.GetVisAttributesModifiers() !=
268 (lastVP.IsSpecialMeshRendering() !=
270 ) {
271 return true;
272 }
273
274 if (lastVP.IsDensityCulling () &&
275 (lastVP.GetVisibleDensity () != fVP.GetVisibleDensity ()))
276 return true;
277
278 if (lastVP.GetCBDAlgorithmNumber() > 0) {
279 if (lastVP.GetCBDParameters().size() != fVP.GetCBDParameters().size()) return true;
280 else if (lastVP.GetCBDParameters() != fVP.GetCBDParameters()) return true;
281 }
282
283 if (lastVP.IsExplode () &&
284 (lastVP.GetExplodeFactor () != fVP.GetExplodeFactor ()))
285 return true;
286
287 if (lastVP.IsSpecialMeshRendering() &&
289 return true;
290
291 return false;
292}
G4ViewParameters fVP
Definition: G4VViewer.hh:219
const std::vector< G4ModelingParameters::VisAttributesModifier > & GetVisAttributesModifiers() const
G4int GetNoOfSides() const
G4bool IsSpecialMeshRendering() const
G4double GetExplodeFactor() const
G4int GetNumberOfCloudPoints() const
G4bool IsMarkerNotHidden() const
G4double GetGlobalLineWidthScale() const
G4bool IsCutaway() const
const G4Colour & GetBackgroundColour() const
G4bool IsSection() const
G4bool IsPicking() const
G4bool IsCulling() const
const G4VisAttributes * GetDefaultTextVisAttributes() const
G4bool IsExplode() const
const std::vector< G4double > & GetCBDParameters() const
G4int GetCBDAlgorithmNumber() const
const std::vector< G4ModelingParameters::PVNameCopyNo > & GetSpecialMeshVolumes() const
G4double GetGlobalMarkerScale() const
G4bool IsCullingInvisible() const
const G4VisAttributes * GetDefaultVisAttributes() const
G4bool IsDensityCulling() const
G4double GetVisibleDensity() const
G4bool IsCullingCovered() const
DrawingStyle GetDrawingStyle() const
G4bool IsAuxEdgeVisible() const
const G4Colour & GetColour() const

References G4VViewer::fVP, G4ViewParameters::GetBackgroundColour(), G4ViewParameters::GetCBDAlgorithmNumber(), G4ViewParameters::GetCBDParameters(), G4VisAttributes::GetColour(), G4ViewParameters::GetDefaultTextVisAttributes(), G4ViewParameters::GetDefaultVisAttributes(), G4ViewParameters::GetDrawingStyle(), G4ViewParameters::GetExplodeFactor(), G4ViewParameters::GetGlobalLineWidthScale(), G4ViewParameters::GetGlobalMarkerScale(), G4ViewParameters::GetNoOfSides(), G4ViewParameters::GetNumberOfCloudPoints(), G4ViewParameters::GetSpecialMeshVolumes(), G4ViewParameters::GetVisAttributesModifiers(), G4ViewParameters::GetVisibleDensity(), G4ViewParameters::IsAuxEdgeVisible(), G4ViewParameters::IsCulling(), G4ViewParameters::IsCullingCovered(), G4ViewParameters::IsCullingInvisible(), G4ViewParameters::IsCutaway(), G4ViewParameters::IsDensityCulling(), G4ViewParameters::IsExplode(), G4ViewParameters::IsMarkerNotHidden(), G4ViewParameters::IsPicking(), G4ViewParameters::IsSection(), and G4ViewParameters::IsSpecialMeshRendering().

Referenced by KernelVisitDecision().

◆ ComputeFlyThrough()

std::vector< G4ThreeVector > G4VViewer::ComputeFlyThrough ( G4Vector3D )
inherited

Definition at line 215 of file G4VViewer.cc.

216{
217 enum CurveType {
218 Bezier,
219 G4SplineTest};
220
221 // Choose a curve type (for testing)
222// int myCurveType = Bezier;
223
224 // number if step points
225 int stepPoints = 500;
226
227
228 G4Spline spline;
229
230
231 // At the moment we don't use the aVect parameters, but build it here :
232 // Good step points for exampleB5
233 spline.AddSplinePoint(G4Vector3D(0,1000,-14000));
234 spline.AddSplinePoint(G4Vector3D(0,1000,0));
235 spline.AddSplinePoint(G4Vector3D(-4000,1000,4000));
236
237
238 std::vector <G4ThreeVector> viewVect;
239
240// if(myCurveType == Bezier) {
241
242
243 // Draw the spline
244
245 for (int i = 0; i < stepPoints; i++) {
246 float t = (float)i / (float)stepPoints;
247 G4Vector3D cameraPosition = spline.GetInterpolatedSplinePoint(t);
248 // G4Vector3D targetPoint = spline.GetInterpolatedSplinePoint(t);
249
250 // viewParam->SetViewAndLights(G4ThreeVector (cameraPosition.x(), cameraPosition.y(), cameraPosition.z()));
251 // viewParam->SetCurrentTargetPoint(targetPoint);
252 G4cout << "FLY CR("<< i << "):" << cameraPosition << G4endl;
253 viewVect.push_back(G4ThreeVector (cameraPosition.x(), cameraPosition.y(), cameraPosition.z()));
254 }
255
256// } else if (myCurveType == G4SplineTest) {
257 /*
258 This method is a inspire from a Bezier curve. The problem of the Bezier curve is that the path does not go straight between two waypoints.
259 This method add "stay straight" parameter which could be between 0 and 1 where the pass will follow exactly the line between the waypoints
260 Ex : stay straight = 50%
261 m1 = 3*(P1+P0)/2
262
263 Ex : stay straight = 0%
264 m1 = (P1+P0)/2
265
266 P1
267 / \
268 / \
269 a--x--b
270 / ° ° \
271 / ° ° \
272 m1 m2
273 / \
274 / \
275 / \
276 / \
277 P0 P2
278
279 */
280// G4Vector3D a;
281// G4Vector3D b;
282// G4Vector3D m1;
283// G4Vector3D m2;
284// G4Vector3D P0;
285// G4Vector3D P1;
286// G4Vector3D P2;
287// G4double stayStraight = 0;
288// G4double bezierSpeed = 0.4; // Spend 40% time in bezier curve (time between m1-m2 is 40% of time between P0-P1)
289//
290// G4Vector3D firstPoint;
291// G4Vector3D lastPoint;
292//
293// float nbBezierSteps = (stepPoints * bezierSpeed*(1-stayStraight)) * (2./spline.GetNumPoints());
294// float nbFirstSteps = ((stepPoints/2-nbBezierSteps/2) /(1+stayStraight)) * (2./spline.GetNumPoints());
295//
296// // First points
297// firstPoint = spline.GetPoint(0);
298// lastPoint = (firstPoint + spline.GetPoint(1))/2;
299//
300// for( float j=0; j<1; j+= 1/nbFirstSteps) {
301// G4ThreeVector pt = firstPoint + (lastPoint - firstPoint) * j;
302// viewVect.push_back(pt);
303// G4cout << "FLY Bezier A1("<< viewVect.size()<< "):" << pt << G4endl;
304// }
305//
306// for (int i = 0; i < spline.GetNumPoints()-2; i++) {
307// P0 = spline.GetPoint(i);
308// P1 = spline.GetPoint(i+1);
309// P2 = spline.GetPoint(i+2);
310//
311// m1 = P1 - (P1-P0)*(1-stayStraight)/2;
312// m2 = P1 + (P2-P1)*(1-stayStraight)/2;
313//
314// // We have to get straight path from (middile of P0-P1) to (middile of P0-P1 + (dist P0-P1) * stayStraight/2)
315// if (stayStraight >0) {
316//
317// firstPoint = (P0 + P1)/2;
318// lastPoint = (P0 + P1)/2 + (P1-P0)*stayStraight/2;
319//
320// for( float j=0; j<1; j+= 1/(nbFirstSteps*stayStraight)) {
321// G4ThreeVector pt = firstPoint + (lastPoint - firstPoint)* j;
322// viewVect.push_back(pt);
323// G4cout << "FLY Bezier A2("<< viewVect.size()<< "):" << pt << G4endl;
324// }
325// }
326// // Compute Bezier curve
327// for( float delta = 0 ; delta < 1 ; delta += 1/nbBezierSteps)
328// {
329// // The Green Line
330// a = m1 + ( (P1 - m1) * delta );
331// b = P1 + ( (m2 - P1) * delta );
332//
333// // Final point
334// G4ThreeVector pt = a + ((b-a) * delta );
335// viewVect.push_back(pt);
336// G4cout << "FLY Bezier("<< viewVect.size()<< "):" << pt << G4endl;
337// }
338//
339// // We have to get straight path
340// if (stayStraight >0) {
341// firstPoint = (P1 + P2)/2 - (P2-P1)*stayStraight/2;
342// lastPoint = (P1 + P2)/2;
343//
344// for( float j=0; j<1; j+= 1/(nbFirstSteps*stayStraight)) {
345// G4ThreeVector pt = firstPoint + (lastPoint - firstPoint)* j;
346// viewVect.push_back(pt);
347// G4cout << "FLY Bezier B1("<< viewVect.size()<< "):" << pt << G4endl;
348// }
349// }
350// }
351//
352// // last points
353// firstPoint = spline.GetPoint(spline.GetNumPoints()-2);
354// lastPoint = spline.GetPoint(spline.GetNumPoints()-1);
355// for( float j=1; j>0; j-= 1/nbFirstSteps) {
356// G4ThreeVector pt = lastPoint - ((lastPoint-firstPoint)*((1-stayStraight)/2) * j );
357// viewVect.push_back(pt);
358// G4cout << "FLY Bezier B2("<< viewVect.size()<< "):" << pt << G4endl;
359// }
360// }
361 return viewVect;
362}
HepGeom::Vector3D< G4double > G4Vector3D
Definition: G4Vector3D.hh:34
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout

References G4VViewer::G4Spline::AddSplinePoint(), G4cout, G4endl, G4VViewer::G4Spline::GetInterpolatedSplinePoint(), HepGeom::BasicVector3D< T >::x(), HepGeom::BasicVector3D< T >::y(), and HepGeom::BasicVector3D< T >::z().

◆ DrawView()

void G4Qt3DViewer::DrawView ( )
virtual

Implements G4VViewer.

Definition at line 129 of file G4Qt3DViewer.cc.

130{
131 // First, a view should decide when to re-visit the G4 kernel.
132 // Sometimes it might not be necessary, e.g., if the scene is stored
133 // in a graphical database (e.g., OpenGL's display lists) and only
134 // the viewing angle has changed. But graphics systems without a
135 // graphical database will always need to visit the G4 kernel.
136
137 // The fNeedKernelVisit flag might have been set by the user in
138 // /vis/viewer/rebuild, but if not, make decision and set flag only
139 // if necessary...
141 G4bool kernelVisitWasNeeded = fNeedKernelVisit; // Keep (ProcessView resets).
142 fLastVP = fVP;
143
144 ProcessView (); // Clears store and processes scene only if necessary.
145
146 if (kernelVisitWasNeeded) {
147 // We might need to do something if the kernel was visited.
148 } else {
149 }
150
151 // ...before finally...
152 FinishView (); // Flush streams and/or swap buffers.
153}
bool G4bool
Definition: G4Types.hh:86
void KernelVisitDecision()
void FinishView()
G4ViewParameters fLastVP
Definition: G4Qt3DViewer.hh:68
G4bool fNeedKernelVisit
Definition: G4VViewer.hh:224
void ProcessView()
Definition: G4VViewer.cc:105

References FinishView(), fLastVP, G4VViewer::fNeedKernelVisit, G4VViewer::fVP, KernelVisitDecision(), and G4VViewer::ProcessView().

Referenced by mouseMoveEvent(), and wheelEvent().

◆ FinishView()

void G4Qt3DViewer::FinishView ( void  )
virtual

Reimplemented from G4VViewer.

Definition at line 165 of file G4Qt3DViewer.cc.

166{
168 show();
169 }
170}
G4bool IsMasterThread()
Definition: G4Threading.cc:124

References G4Threading::IsMasterThread().

Referenced by DrawView().

◆ GetApplicableVisAttributes()

const G4VisAttributes * G4VViewer::GetApplicableVisAttributes ( const G4VisAttributes ) const
inherited

◆ GetDefaultViewParameters()

const G4ViewParameters & G4VViewer::GetDefaultViewParameters ( ) const
inherited

◆ GetName()

const G4String & G4VViewer::GetName ( ) const
inherited

◆ GetPrivateVisAttributesModifiers()

virtual const std::vector< G4ModelingParameters::VisAttributesModifier > * G4VViewer::GetPrivateVisAttributesModifiers ( ) const
virtualinherited

◆ GetSceneHandler()

G4VSceneHandler * G4VViewer::GetSceneHandler ( ) const
inherited

◆ GetShortName()

const G4String & G4VViewer::GetShortName ( ) const
inherited

◆ GetViewId()

G4int G4VViewer::GetViewId ( ) const
inherited

◆ GetViewParameters()

const G4ViewParameters & G4VViewer::GetViewParameters ( ) const
inherited

Referenced by G4OpenGLXmViewer::actions_callback(), G4OpenInventorSceneHandler::AddCircleSquare(), G4Qt3DSceneHandler::AddPrimitive(), G4ToolsSGSceneHandler::AddPrimitive(), G4OpenInventorSceneHandler::AddPrimitive(), G4OpenGLSceneHandler::AddPrimitive(), G4OpenGLImmediateSceneHandler::AddPrimitivePreambleInternal(), G4OpenGLStoredSceneHandler::AddPrimitivePreambleInternal(), G4OpenInventorSceneHandler::AddTransform(), G4OpenGLXmViewer::background_color_callback(), G4OpenGLImmediateQtViewer::ComputeView(), G4OpenGLStoredQtViewer::ComputeView(), G4VSceneHandler::CreateSectionSolid(), G4VisManager::CreateViewer(), G4OpenGLImmediateWin32Viewer::DrawView(), G4OpenGLImmediateXmViewer::DrawView(), G4OpenGLImmediateXViewer::DrawView(), G4OpenGLStoredWin32Viewer::DrawView(), G4OpenGLStoredXmViewer::DrawView(), G4OpenGLStoredXViewer::DrawView(), G4OpenGLStoredSceneHandler::EndModeling(), G4VisManager::EndOfRun(), G4VSceneHandler::GetAuxEdgeVisible(), G4VSceneHandler::GetColour(), G4VSceneHandler::GetDrawingStyle(), G4VSceneHandler::GetNoOfSides(), G4VSceneHandler::GetNumberOfCloudPoints(), G4VSceneHandler::GetTextColour(), G4VVisCommand::RefreshIfRequired(), G4VSceneHandler::RequestPrimitives(), G4VisCommandDrawView::SetNewValue(), G4VisCommandDrawLogicalVolume::SetNewValue(), G4VisCommandGeometrySetDaughtersInvisible::SetNewValue(), G4VisCommandGeometrySetVisibility::SetNewValue(), G4VisCommandSceneNotifyHandlers::SetNewValue(), G4VisCommandSceneAddLogo::SetNewValue(), G4VisCommandSceneAddScale::SetNewValue(), G4VisCommandSceneHandlerCreate::SetNewValue(), G4VisCommandsTouchable::SetNewValue(), G4VisCommandsTouchableSet::SetNewValue(), G4VisCommandViewerAddCutawayPlane::SetNewValue(), G4VisCommandViewerCentreOn::SetNewValue(), G4VisCommandViewerChangeCutawayPlane::SetNewValue(), G4VisCommandViewerClearCutawayPlanes::SetNewValue(), G4VisCommandViewerClearVisAttributesModifiers::SetNewValue(), G4VisCommandViewerClone::SetNewValue(), G4VisCommandViewerColourByDensity::SetNewValue(), G4VisCommandViewerCopyViewFrom::SetNewValue(), G4VisCommandViewerCreate::SetNewValue(), G4VisCommandViewerDolly::SetNewValue(), G4VisCommandViewerInterpolate::SetNewValue(), G4VisCommandViewerPan::SetNewValue(), G4VisCommandViewerSave::SetNewValue(), G4VisCommandViewerScale::SetNewValue(), G4VisCommandViewerZoom::SetNewValue(), G4VisCommandsViewerSet::SetNewValue(), G4VisCommandGeometrySetVisibility::SetNewValueOnLV(), G4OpenInventorViewer::SetReducedWireFrame(), G4OpenInventorViewer::SetSolid(), and G4OpenInventorViewer::SetWireFrame().

◆ Initialise()

void G4Qt3DViewer::Initialise ( )
virtual

Reimplemented from G4VViewer.

Definition at line 48 of file G4Qt3DViewer.cc.

49{
50 setObjectName(fName.c_str());
51
52 fVP.SetAutoRefresh(true);
54
55 auto UI = G4UImanager::GetUIpointer();
56 auto uiQt = dynamic_cast<G4UIQt*>(UI->GetG4UIWindow());
57 if (!uiQt) {
58 fViewId = -1; // This flags an error.
59 G4cerr << "G4Qt3DViewer::G4Qt3DViewer requires G4UIQt"
60 << G4endl;
61 return;
62 }
63 fUIWidget = QWidget::createWindowContainer(this);
64 fUIWidget->setMinimumSize(QSize(200, 100));
65 fUIWidget->setMaximumSize(screen()->size());
66// fUIWidget->setFocusPolicy(Qt::NoFocus); //??
67 uiQt->AddTabWidget(fUIWidget,QString(fName));
68
69 setRootEntity(fQt3DSceneHandler.fpQt3DScene);
70}
G4GLOB_DLL std::ostream G4cerr
Qt3DCore::QEntity * fpQt3DScene
QWidget * fUIWidget
Definition: G4Qt3DViewer.hh:71
static G4UImanager * GetUIpointer()
Definition: G4UImanager.cc:77
G4String fName
Definition: G4VViewer.hh:217
G4ViewParameters fDefaultVP
Definition: G4VViewer.hh:220
G4int fViewId
Definition: G4VViewer.hh:216
void SetAutoRefresh(G4bool)

References G4VViewer::fDefaultVP, G4VViewer::fName, G4Qt3DSceneHandler::fpQt3DScene, fQt3DSceneHandler, fUIWidget, G4VViewer::fViewId, G4VViewer::fVP, G4cerr, G4endl, G4UImanager::GetUIpointer(), and G4ViewParameters::SetAutoRefresh().

◆ KernelVisitDecision()

void G4Qt3DViewer::KernelVisitDecision ( )
protected

Definition at line 230 of file G4Qt3DViewer.cc.

230 {
231
232 // If there's a significant difference with the last view parameters
233 // of either the scene handler or this viewer, trigger a rebuild.
234
236 NeedKernelVisit (); // Sets fNeedKernelVisit.
237 }
238}
G4bool CompareForKernelVisit(G4ViewParameters &)
void NeedKernelVisit()
Definition: G4VViewer.cc:78

References CompareForKernelVisit(), fLastVP, and G4VViewer::NeedKernelVisit().

Referenced by DrawView().

◆ keyPressEvent()

void G4Qt3DViewer::keyPressEvent ( QKeyEvent *  ev)
protected

Definition at line 294 of file G4Qt3DViewer.cc.

295{
296 fKeyPressed = true;
297 fKey = ev->key();
298}

References fKey, and fKeyPressed.

◆ keyReleaseEvent()

void G4Qt3DViewer::keyReleaseEvent ( QKeyEvent *  )
protected

Definition at line 300 of file G4Qt3DViewer.cc.

301{
302 fKeyPressed = false;
303}

References fKeyPressed.

◆ mouseDoubleClickEvent()

void G4Qt3DViewer::mouseDoubleClickEvent ( QMouseEvent *  )
protected

Definition at line 305 of file G4Qt3DViewer.cc.

305{}

◆ mouseMoveEvent()

void G4Qt3DViewer::mouseMoveEvent ( QMouseEvent *  ev)
protected

Definition at line 307 of file G4Qt3DViewer.cc.

308{
309 // I think we only want these if a mouse button is pressed.
310 // But they come even when not pressed (on my MacBook Pro trackpad).
311 // Documentation says:
312 /* Mouse move events will occur only when a mouse button is pressed down,
313 unless mouse tracking has been enabled with QWidget::setMouseTracking().*/
314 // But this is a window not a widget.
315 // As a workaround we maintain a flag changed by mousePress/ReleaseEvent.
316
317 G4double x = ev->x();
318 G4double y = ev->y();
321 fMousePressedX = x;
322 fMousePressedY = y;
323
324 if (fMousePressed) {
325
326 if (fKeyPressed && fKey == Qt::Key_Shift) { // Translation (pan)
327
329 const G4double scale = 300; // Roughly pixels per window, empirically chosen
330 const G4double dxScene = dx*sceneRadius/scale;
331 const G4double dyScene = dy*sceneRadius/scale;
332 fVP.IncrementPan(-dxScene,dyScene);
333
334 } else { // Rotation
335
336 // Simple ad-hoc algorithms
338 const G4Vector3D& y_prime = x_prime.cross(fVP.GetViewpointDirection());
339 const G4double scale = 200; // Roughly pixels per window, empirically chosen
340 G4Vector3D newViewpointDirection = fVP.GetViewpointDirection();
341 newViewpointDirection += dx*x_prime/scale;
342 newViewpointDirection += dy*y_prime/scale;
343 fVP.SetViewpointDirection(newViewpointDirection.unit());
344
346 G4Vector3D newUpVector = fVP.GetUpVector();
347 newUpVector += dx*x_prime/scale;
348 newUpVector += dy*y_prime/scale;
349 fVP.SetUpVector(newUpVector.unit());
350 }
351 }
352 }
353
354 SetView();
355 DrawView();
356}
double G4double
Definition: G4Types.hh:83
void SetView()
Definition: G4Qt3DViewer.cc:75
const G4VisExtent & GetExtent() const
void SetViewpointDirection(const G4Vector3D &viewpointDirection)
const G4Vector3D & GetViewpointDirection() const
void IncrementPan(G4double right, G4double up)
const G4Vector3D & GetUpVector() const
void SetUpVector(const G4Vector3D &upVector)
RotationStyle GetRotationStyle() const
G4double GetExtentRadius() const
Definition: G4VisExtent.cc:75
BasicVector3D< T > cross(const BasicVector3D< T > &v) const
BasicVector3D< T > unit() const

References HepGeom::BasicVector3D< T >::cross(), DrawView(), fKey, fKeyPressed, fMousePressed, fMousePressedX, fMousePressedY, G4VSceneHandler::fpScene, fQt3DSceneHandler, G4ViewParameters::freeRotation, G4VViewer::fVP, G4Scene::GetExtent(), G4VisExtent::GetExtentRadius(), G4ViewParameters::GetRotationStyle(), G4ViewParameters::GetUpVector(), G4ViewParameters::GetViewpointDirection(), G4ViewParameters::IncrementPan(), G4ViewParameters::SetUpVector(), SetView(), G4ViewParameters::SetViewpointDirection(), and HepGeom::BasicVector3D< T >::unit().

◆ mousePressEvent()

void G4Qt3DViewer::mousePressEvent ( QMouseEvent *  ev)
protected

Definition at line 358 of file G4Qt3DViewer.cc.

359{
360 fMousePressed = true;
361 fMousePressedX = ev->x();
362 fMousePressedY = ev->y();
363}

References fMousePressed, fMousePressedX, and fMousePressedY.

◆ mouseReleaseEvent()

void G4Qt3DViewer::mouseReleaseEvent ( QMouseEvent *  )
protected

Definition at line 365 of file G4Qt3DViewer.cc.

366{
367 fMousePressed = false;
368}

References fMousePressed.

◆ MovingToMasterThread()

void G4Qt3DViewer::MovingToMasterThread ( )

Definition at line 207 of file G4Qt3DViewer.cc.

208{
209#ifdef G4QT3DDEBUG
210 G4cout << "G4Qt3DViewer::MovingToMasterThread" << G4endl;
211#endif
212 // On vis sub-thread just before exit
213 // Move relevant stuff to master QThread.
214 auto p1 = fQt3DSceneHandler.fpQt3DScene->parent();
215 auto p2 = p1->parent();
216 p2->moveToThread(masterQThread);
217 // Zero - will be different next run
218 visSubThreadQThread = nullptr;
219}

References G4Qt3DSceneHandler::fpQt3DScene, fQt3DSceneHandler, G4cout, G4endl, anonymous_namespace{G4Qt3DViewer.cc}::masterQThread, and anonymous_namespace{G4Qt3DViewer.cc}::visSubThreadQThread.

◆ MovingToVisSubThread()

void G4Qt3DViewer::MovingToVisSubThread ( )

Definition at line 179 of file G4Qt3DViewer.cc.

180{
181#ifdef G4QT3DDEBUG
182 G4cout << "G4Qt3DViewer::MovingToVisSubThread" << G4endl;
183#endif
184 // Still on master thread but vis thread has been launched
185 // Make note of master QThread
186 masterQThread = QThread::currentThread();
187 // Wait until SwitchToVisSubThread has found vis sub-thread QThread
188 std::this_thread::sleep_for(std::chrono::milliseconds(100));
189 // Move relevant stuff to vis sub-thread QThread
190 auto p1 = fQt3DSceneHandler.fpQt3DScene->parent();
191 auto p2 = p1->parent();
192 p2->moveToThread(visSubThreadQThread);
193}

References G4Qt3DSceneHandler::fpQt3DScene, fQt3DSceneHandler, G4cout, G4endl, anonymous_namespace{G4Qt3DViewer.cc}::masterQThread, and anonymous_namespace{G4Qt3DViewer.cc}::visSubThreadQThread.

◆ NeedKernelVisit()

void G4VViewer::NeedKernelVisit ( )
inherited

Definition at line 78 of file G4VViewer.cc.

78 {
79
80 fNeedKernelVisit = true;
81
82 // At one time I thought we'd better notify all viewers. But I guess
83 // each viewer can take care of itself, so the following code is
84 // redundant (but keep it commented out for now). (John Allison)
85 // Notify all viewers that a kernel visit is required.
86 // const G4ViewerList& viewerList = fSceneHandler.GetViewerList ();
87 // G4ViewerListConstIterator i;
88 // for (i = viewerList.begin(); i != viewerList.end(); i++) {
89 // (*i) -> SetNeedKernelVisit ();
90 // }
91 // ??...but, there's a problem in OpenGL Stored which seems to
92 // require *all* viewers to revisit the kernel, so...
93 // const G4ViewerList& viewerList = fSceneHandler.GetViewerList ();
94 // G4ViewerListConstIterator i;
95 // for (i = viewerList.begin(); i != viewerList.end(); i++) {
96 // (*i) -> SetNeedKernelVisit (true);
97 // }
98 // Feb 2005 - commented out. Let's fix OpenGL if necessary.
99}

References G4VViewer::fNeedKernelVisit.

Referenced by G4OpenGLImmediateQtViewer::ComputeView(), G4DAWNFILEViewer::DrawView(), G4GMocrenFileViewer::DrawView(), G4HepRepFileViewer::DrawView(), G4OpenGLImmediateWin32Viewer::DrawView(), G4OpenGLImmediateXmViewer::DrawView(), G4OpenGLImmediateXViewer::DrawView(), G4VTreeViewer::DrawView(), G4VRML2FileViewer::DrawView(), G4VtkViewer::DrawView(), G4VisManager::GeometryHasChanged(), G4OpenGLStoredViewer::KernelVisitDecision(), G4OpenInventorViewer::KernelVisitDecision(), KernelVisitDecision(), G4ToolsSGViewer< SG_SESSION, SG_VIEWER >::KernelVisitDecision(), G4VisManager::NotifyHandlers(), G4OpenGLImmediateViewer::ProcessView(), G4VisCommandViewerRebuild::SetNewValue(), G4OpenInventorViewer::SetPreview(), G4OpenInventorViewer::SetPreviewAndFull(), G4OpenInventorViewer::SetReducedWireFrame(), and G4OpenInventorViewer::UpdateScene().

◆ ProcessView()

void G4VViewer::ProcessView ( )
inherited

Definition at line 105 of file G4VViewer.cc.

106{
107 // If the scene has changed, or if the concrete viewer has decided
108 // that it necessary to visit the kernel, perhaps because the view
109 // parameters have changed significantly (this should be done in the
110 // concrete viewer's DrawView)...
111 if (fNeedKernelVisit) {
112 // Reset flag. This must be done before ProcessScene to prevent
113 // recursive calls when recomputing transients...
114 fNeedKernelVisit = false;
117 }
118}
virtual void ProcessScene()
virtual void ClearStore()
G4VSceneHandler & fSceneHandler
Definition: G4VViewer.hh:215

References G4VSceneHandler::ClearStore(), G4VViewer::fNeedKernelVisit, G4VViewer::fSceneHandler, and G4VSceneHandler::ProcessScene().

Referenced by G4OpenGLStoredQtViewer::ComputeView(), G4DAWNFILEViewer::DrawView(), G4GMocrenFileViewer::DrawView(), G4HepRepFileViewer::DrawView(), G4OpenGLStoredWin32Viewer::DrawView(), G4OpenGLStoredXmViewer::DrawView(), G4OpenGLStoredXViewer::DrawView(), G4OpenInventorViewer::DrawView(), DrawView(), G4RayTracerViewer::DrawView(), G4ToolsSGViewer< SG_SESSION, SG_VIEWER >::DrawView(), G4VTreeViewer::DrawView(), G4VRML2FileViewer::DrawView(), G4VtkViewer::DrawView(), and G4OpenGLImmediateViewer::ProcessView().

◆ RefreshView()

void G4VViewer::RefreshView ( )
inherited

◆ ResetView()

virtual void G4VViewer::ResetView ( )
virtualinherited

◆ SetDefaultViewParameters()

void G4VViewer::SetDefaultViewParameters ( const G4ViewParameters vp)
inherited

◆ SetName()

void G4VViewer::SetName ( const G4String name)
inherited

Definition at line 72 of file G4VViewer.cc.

72 {
73 fName = name;
74 fShortName = fName.substr(0, fName.find (' '));
76}
G4String fShortName
Definition: G4VViewer.hh:218
void strip(G4String &str, char c=' ')
Remove leading and trailing characters from string.

References G4VViewer::fName, G4VViewer::fShortName, G4InuclParticleNames::name(), and G4StrUtil::strip().

◆ SetNeedKernelVisit()

void G4VViewer::SetNeedKernelVisit ( G4bool  need)
inherited

◆ SetTouchable()

void G4VViewer::SetTouchable ( const std::vector< G4PhysicalVolumeModel::G4PhysicalVolumeNodeID > &  fullPath)
protectedinherited

Definition at line 124 of file G4VViewer.cc.

126{
127 // Set the touchable for /vis/touchable/set/... commands.
128 std::ostringstream oss;
129 const auto& pvStore = G4PhysicalVolumeStore::GetInstance();
130 for (const auto& pvNodeId: fullPath) {
131 const auto& pv = pvNodeId.GetPhysicalVolume();
132 auto iterator = find(pvStore->begin(),pvStore->end(),pv);
133 if (iterator == pvStore->end()) {
135 ed << "Volume no longer in physical volume store.";
136 G4Exception("G4VViewer::SetTouchable", "visman0501", JustWarning, ed);
137 } else {
138 oss
139 << ' ' << pvNodeId.GetPhysicalVolume()->GetName()
140 << ' ' << pvNodeId.GetCopyNo();
141 }
142 }
143 G4UImanager::GetUIpointer()->ApplyCommand("/vis/set/touchable" + oss.str());
144}
@ JustWarning
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
std::ostringstream G4ExceptionDescription
Definition: G4Exception.hh:40
static G4PhysicalVolumeStore * GetInstance()
G4int ApplyCommand(const char *aCommand)
Definition: G4UImanager.cc:485

References G4UImanager::ApplyCommand(), G4Exception(), G4PhysicalVolumeStore::GetInstance(), G4UImanager::GetUIpointer(), and JustWarning.

Referenced by G4OpenGLQtViewer::changeColorAndTransparency(), and G4OpenGLQtViewer::setCheckComponent().

◆ SetView()

void G4Qt3DViewer::SetView ( )
virtual

Implements G4VViewer.

Definition at line 75 of file G4Qt3DViewer.cc.

76{
77 // Background colour
78 defaultFrameGraph()->setClearColor(G4Qt3DUtils::ConvertToQColor(fVP.GetBackgroundColour()));
79
80 // Get radius of scene, etc.
81 // Note that this procedure properly takes into account zoom, dolly and pan.
82 const G4Point3D targetPoint
86 if(radius<=0.) radius = 1.;
87 const G4double cameraDistance = fVP.GetCameraDistance (radius);
88 const G4Point3D cameraPosition =
89 targetPoint + cameraDistance * fVP.GetViewpointDirection().unit();
90 const GLdouble pnear = fVP.GetNearDistance (cameraDistance, radius);
91 const GLdouble pfar = fVP.GetFarDistance (cameraDistance, pnear, radius);
92 const GLdouble right = fVP.GetFrontHalfHeight (pnear, radius);
93 const GLdouble left = -right;
94 const GLdouble top = fVP.GetFrontHalfHeight (pnear, radius);
95 const GLdouble bottom = -top;
96
97 camera()->setObjectName((fName + " camera").c_str());
98 camera()->setViewCenter(G4Qt3DUtils::ConvertToQVector3D(targetPoint));
99 camera()->setPosition(G4Qt3DUtils::ConvertToQVector3D(cameraPosition));
100 camera()->setUpVector(G4Qt3DUtils::ConvertToQVector3D(fVP.GetUpVector()));
101
102// auto lightEntity = new Qt3DCore::QEntity(fQt3DSceneHandler.fpQt3DScene);
103// auto directionalLight = new Qt3DRender::QDirectionalLight(lightEntity);
106// directionalLight->setWorldDirection(G4Qt3DUtils::ConvertToQVector3D(fVP.GetActualLightpointDirection()));
107// lightEntity->addComponent(directionalLight);
108
109 const auto& size = fUIWidget->size();
110 G4double w = size.width();
111 G4double h = size.height();
112#ifdef G4QT3DDEBUG
113 // Curiously w,h are wrong first time - 640,480 instead of (my Mac) 991,452.
114 G4cout << "W,H: " << w << ',' << h << G4endl;
115#endif
116 const G4double aspectRatio = w/h;
117 if (fVP.GetFieldHalfAngle() == 0.) {
118 camera()->lens()->setOrthographicProjection
119 (left*aspectRatio,right*aspectRatio,bottom,top,pnear,pfar);
120 } else {
121 camera()->lens()->setPerspectiveProjection
122 (2.*fVP.GetFieldHalfAngle()/deg,aspectRatio,pnear,pfar);
123 }
124}
static constexpr double deg
Definition: G4SIunits.hh:132
const G4Point3D & GetStandardTargetPoint() const
G4Scene * GetScene() const
G4double GetCameraDistance(G4double radius) const
const G4Point3D & GetCurrentTargetPoint() const
G4double GetFarDistance(G4double cameraDistance, G4double nearDistance, G4double radius) const
G4double GetFieldHalfAngle() const
G4double GetFrontHalfHeight(G4double nearDistance, G4double radius) const
G4double GetNearDistance(G4double cameraDistance, G4double radius) const
QColor ConvertToQColor(const G4Colour &c)
Definition: G4Qt3DUtils.cc:46
QVector3D ConvertToQVector3D(const G4ThreeVector &v)
Definition: G4Qt3DUtils.cc:52

References G4Qt3DUtils::ConvertToQColor(), G4Qt3DUtils::ConvertToQVector3D(), deg, G4VViewer::fName, G4VViewer::fSceneHandler, fUIWidget, G4VViewer::fVP, G4cout, G4endl, G4ViewParameters::GetBackgroundColour(), G4ViewParameters::GetCameraDistance(), G4ViewParameters::GetCurrentTargetPoint(), G4Scene::GetExtent(), G4VisExtent::GetExtentRadius(), G4ViewParameters::GetFarDistance(), G4ViewParameters::GetFieldHalfAngle(), G4ViewParameters::GetFrontHalfHeight(), G4ViewParameters::GetNearDistance(), G4VSceneHandler::GetScene(), G4Scene::GetStandardTargetPoint(), G4ViewParameters::GetUpVector(), G4ViewParameters::GetViewpointDirection(), and HepGeom::BasicVector3D< T >::unit().

Referenced by mouseMoveEvent(), and wheelEvent().

◆ SetViewParameters()

void G4VViewer::SetViewParameters ( const G4ViewParameters vp)
inherited

◆ ShowView()

void G4Qt3DViewer::ShowView ( void  )
virtual

Reimplemented from G4VViewer.

Definition at line 155 of file G4Qt3DViewer.cc.

156{
157 // show() may only be called from master thread
159 show();
160 }
161 // The way Qt seems to work, we don't seem to need a show() anyway, but
162 // we'll leave it in - it seems not to have any effect, good or bad.
163}

References G4Threading::IsMasterThread().

◆ SwitchToMasterThread()

void G4Qt3DViewer::SwitchToMasterThread ( )

Definition at line 221 of file G4Qt3DViewer.cc.

222{
223#ifdef G4QT3DDEBUG
224 G4cout << "G4Qt3DViewer::SwitchToMasterThread" << G4endl;
225#endif
226 // On master thread after vis sub-thread has terminated
227 // Nothing to do
228}

References G4cout, and G4endl.

◆ SwitchToVisSubThread()

void G4Qt3DViewer::SwitchToVisSubThread ( )

Definition at line 195 of file G4Qt3DViewer.cc.

196{
197#ifdef G4QT3DDEBUG
198 G4cout << "G4Qt3DViewer::SwitchToVisSubThread" << G4endl;
199#endif
200 // On vis sub-thread before any drawing
201 // Make note of vis-subthread QThread for MovingToVisSubThread
202 visSubThreadQThread = QThread::currentThread();
203 // Wait until SwitchToVisSubThread has moved stuff
204 std::this_thread::sleep_for(std::chrono::milliseconds(1000));
205}

References G4cout, G4endl, and anonymous_namespace{G4Qt3DViewer.cc}::visSubThreadQThread.

◆ TouchableSetColour()

void G4VViewer::TouchableSetColour ( const std::vector< G4PhysicalVolumeModel::G4PhysicalVolumeNodeID > &  fullPath,
const G4Colour colour 
)
protectedinherited

Definition at line 180 of file G4VViewer.cc.

183{
184 // Changes the Vis Attribute Modifiers WITHOUT triggering a rebuild.
185
186 std::ostringstream oss;
187 oss << "/vis/touchable/set/colour "
188 << colour.GetRed() << ' ' << colour.GetGreen()
189 << ' ' << colour.GetBlue() << ' ' << colour.GetAlpha();
190
191 // The following is equivalent to
192 // G4UImanager::GetUIpointer()->ApplyCommand(oss.str());
193 // (assuming the touchable has already been set), but avoids view rebuild.
194
195 // Instantiate a working copy of a G4VisAttributes object...
196 G4VisAttributes workingVisAtts;
197 // and set the colour.
198 workingVisAtts.SetColour(colour);
199
202 (workingVisAtts,
205 // G4ModelingParameters::VASColour (VAS = Vis Attribute Signifier)
206 // signifies that it is the colour that should be picked out
207 // and merged with the touchable's normal vis attributes.
208
209 // Record on G4cout (with #) for information.
210 if (G4UImanager::GetUIpointer()->GetVerboseLevel() >= 2) {
211 G4cout << "# " << oss.str() << G4endl;
212 }
213}
G4double GetBlue() const
Definition: G4Colour.hh:154
G4double GetAlpha() const
Definition: G4Colour.hh:155
G4double GetRed() const
Definition: G4Colour.hh:152
G4double GetGreen() const
Definition: G4Colour.hh:153
static G4ModelingParameters::PVNameCopyNoPath GetPVNameCopyNoPath(const std::vector< G4PhysicalVolumeNodeID > &)
void AddVisAttributesModifier(const G4ModelingParameters::VisAttributesModifier &)
void SetColour(const G4Colour &)

References G4ViewParameters::AddVisAttributesModifier(), G4VViewer::fVP, G4cout, G4endl, G4Colour::GetAlpha(), G4Colour::GetBlue(), G4Colour::GetGreen(), G4PhysicalVolumeModel::GetPVNameCopyNoPath(), G4Colour::GetRed(), G4UImanager::GetUIpointer(), G4VisAttributes::SetColour(), and G4ModelingParameters::VASColour.

Referenced by G4OpenGLQtViewer::changeColorAndTransparency().

◆ TouchableSetVisibility()

void G4VViewer::TouchableSetVisibility ( const std::vector< G4PhysicalVolumeModel::G4PhysicalVolumeNodeID > &  fullPath,
G4bool  visibility 
)
protectedinherited

Definition at line 146 of file G4VViewer.cc.

149{
150 // Changes the Vis Attribute Modifiers WITHOUT triggering a rebuild.
151
152 std::ostringstream oss;
153 oss << "/vis/touchable/set/visibility ";
154 if (visibiity) oss << "true"; else oss << "false";
155
156 // The following is equivalent to
157 // G4UImanager::GetUIpointer()->ApplyCommand(oss.str());
158 // (assuming the touchable has already been set), but avoids view rebuild.
159
160 // Instantiate a working copy of a G4VisAttributes object...
161 G4VisAttributes workingVisAtts;
162 // and set the visibility.
163 workingVisAtts.SetVisibility(visibiity);
164
167 (workingVisAtts,
170 // G4ModelingParameters::VASVisibility (VAS = Vis Attribute Signifier)
171 // signifies that it is the visibility that should be picked out
172 // and merged with the touchable's normal vis attributes.
173
174 // Record on G4cout (with #) for information.
175 if (G4UImanager::GetUIpointer()->GetVerboseLevel() >= 2) {
176 G4cout << "# " << oss.str() << G4endl;
177 }
178}
void SetVisibility(G4bool=true)

References G4ViewParameters::AddVisAttributesModifier(), G4VViewer::fVP, G4cout, G4endl, G4PhysicalVolumeModel::GetPVNameCopyNoPath(), G4UImanager::GetUIpointer(), G4VisAttributes::SetVisibility(), and G4ModelingParameters::VASVisibility.

Referenced by G4OpenGLQtViewer::setCheckComponent().

◆ wheelEvent()

void G4Qt3DViewer::wheelEvent ( QWheelEvent *  ev)
protected

Definition at line 370 of file G4Qt3DViewer.cc.

371{
372 // Take note of up-down motion only
373 const G4double angleY = ev->angleDelta().y();
374
375 if (fVP.GetFieldHalfAngle() == 0.) { // Orthographic projection
376 const G4double scale = 500; // Empirically chosen
377 fVP.MultiplyZoomFactor(1.+angleY/scale);
378 } else { // Perspective projection
379 const G4double scale = fVP.GetFieldHalfAngle()/(10.*deg); // Empirical
380 fVP.SetDolly(fVP.GetDolly()+angleY/scale);
381 }
382
383 SetView();
384 DrawView();
385}
void SetDolly(G4double dolly)
void MultiplyZoomFactor(G4double zoomFactorMultiplier)
G4double GetDolly() const

References deg, DrawView(), G4VViewer::fVP, G4ViewParameters::GetDolly(), G4ViewParameters::GetFieldHalfAngle(), G4ViewParameters::MultiplyZoomFactor(), G4ViewParameters::SetDolly(), and SetView().

Field Documentation

◆ fDefaultVP

G4ViewParameters G4VViewer::fDefaultVP
protectedinherited

◆ fKey

int G4Qt3DViewer::fKey
protected

Definition at line 74 of file G4Qt3DViewer.hh.

Referenced by keyPressEvent(), and mouseMoveEvent().

◆ fKeyPressed

G4bool G4Qt3DViewer::fKeyPressed
protected

Definition at line 73 of file G4Qt3DViewer.hh.

Referenced by keyPressEvent(), keyReleaseEvent(), and mouseMoveEvent().

◆ fLastVP

G4ViewParameters G4Qt3DViewer::fLastVP
protected

Definition at line 68 of file G4Qt3DViewer.hh.

Referenced by DrawView(), and KernelVisitDecision().

◆ fMousePressed

G4bool G4Qt3DViewer::fMousePressed
protected

Definition at line 75 of file G4Qt3DViewer.hh.

Referenced by mouseMoveEvent(), mousePressEvent(), and mouseReleaseEvent().

◆ fMousePressedX

G4double G4Qt3DViewer::fMousePressedX
protected

Definition at line 76 of file G4Qt3DViewer.hh.

Referenced by mouseMoveEvent(), and mousePressEvent().

◆ fMousePressedY

G4double G4Qt3DViewer::fMousePressedY
protected

Definition at line 76 of file G4Qt3DViewer.hh.

Referenced by mouseMoveEvent(), and mousePressEvent().

◆ fName

G4String G4VViewer::fName
protectedinherited

◆ fNeedKernelVisit

G4bool G4VViewer::fNeedKernelVisit
protectedinherited

◆ fQt3DSceneHandler

G4Qt3DSceneHandler& G4Qt3DViewer::fQt3DSceneHandler
protected

◆ fSceneHandler

G4VSceneHandler& G4VViewer::fSceneHandler
protectedinherited

◆ fShortName

G4String G4VViewer::fShortName
protectedinherited

◆ fUIWidget

QWidget* G4Qt3DViewer::fUIWidget
protected

Definition at line 71 of file G4Qt3DViewer.hh.

Referenced by Initialise(), and SetView().

◆ fViewId

G4int G4VViewer::fViewId
protectedinherited

◆ fVP

G4ViewParameters G4VViewer::fVP
protectedinherited

Definition at line 219 of file G4VViewer.hh.

Referenced by G4OpenGLQtViewer::actionChangeBackgroundColor(), G4OpenGLQtViewer::actionChangeDefaultColor(), G4OpenGLQtViewer::actionChangeTextColor(), G4OpenGLXmViewer::actions_callback(), G4OpenGLSceneHandler::AddPrimitive(), G4OpenGLImmediateSceneHandler::AddPrimitivePreambleInternal(), G4OpenGLStoredSceneHandler::AddPrimitivePreambleInternal(), G4OpenGLXmViewer::aux_edge_callback(), G4OpenGLQtViewer::changeDepthInSceneTree(), G4OpenGLStoredQtViewer::CompareForKernelVisit(), G4OpenGLStoredViewer::CompareForKernelVisit(), G4OpenInventorViewer::CompareForKernelVisit(), CompareForKernelVisit(), G4ToolsSGViewer< SG_SESSION, SG_VIEWER >::CompareForKernelVisit(), G4OpenGLStoredQtViewer::ComputeView(), G4OpenGLWin32Viewer::CreateMainWindow(), G4OpenGLXmViewer::CreateMainWindow(), G4OpenGLXViewer::CreateMainWindow(), G4OpenGLQtViewer::CreateMainWindow(), G4OpenGLQtViewer::createPopupMenu(), G4OpenGLXmViewer::dolly_callback(), G4OpenGLStoredViewer::DrawDisplayLists(), G4OpenGLXmViewer::drawing_style_callback(), G4OpenGLStoredWin32Viewer::DrawView(), G4OpenGLStoredXmViewer::DrawView(), G4OpenGLStoredXViewer::DrawView(), G4OpenInventorViewer::DrawView(), DrawView(), G4RayTracerViewer::DrawView(), G4ToolsSGViewer< SG_SESSION, SG_VIEWER >::DrawView(), G4VtkViewer::DrawViewHUD(), G4ToolsSGViewer< SG_SESSION, SG_VIEWER >::Export(), G4ASCIITreeViewer::G4ASCIITreeViewer(), G4HepRepFileViewer::G4HepRepFileViewer(), G4OpenGLQtViewer::G4keyPressEvent(), G4OpenGLQtViewer::G4MouseMoveEvent(), G4OpenGLQtViewer::G4MousePressEvent(), G4OpenGLQtViewer::G4MouseReleaseEvent(), G4OpenGLViewer::G4OpenGLViewer(), G4OpenInventorViewer::G4OpenInventorViewer(), G4VtkViewer::G4VtkViewer(), G4VViewer::G4VViewer(), G4OpenGLQtViewer::G4wheelEvent(), G4OpenGLViewer::getSceneDepth(), G4OpenGLViewer::getSceneFarWidth(), G4OpenGLViewer::getSceneNearWidth(), G4OpenGLXmViewer::GetXmConnection(), G4OpenInventorViewer::GroupCameraSensorCB(), G4OpenInventorQtViewer::Initialise(), G4OpenInventorWinViewer::Initialise(), G4OpenInventorXtExtendedViewer::Initialise(), G4OpenInventorXtViewer::Initialise(), Initialise(), G4RayTracerViewer::Initialise(), G4RayTracerXViewer::Initialise(), G4ToolsSGViewer< SG_SESSION, SG_VIEWER >::Initialise(), G4VtkQtViewer::Initialise(), G4VtkViewer::Initialise(), G4OpenGLViewer::InitializeGLView(), G4OpenGLXmViewer::left_right_pan_callback(), G4OpenGLXmViewer::misc_callback(), G4ToolsSGViewer< SG_SESSION, SG_VIEWER >::mouse_move(), mouseMoveEvent(), G4OpenGLQtViewer::moveScene(), G4OpenGLImmediateViewer::ProcessView(), G4OpenGLXmViewer::projection_callback(), G4OpenGLXmViewer::reset_callback(), G4OpenGLXmViewer::ResetView(), G4OpenGLViewer::rotateScene(), G4OpenGLViewer::rotateSceneInViewDirection(), G4OpenGLViewer::rotateSceneThetaPhi(), G4OpenGLViewer::rotateSceneToggle(), G4DAWNFILEViewer::SendDrawingStyleToDAWNGUI(), G4DAWNFILEViewer::SendViewParameters(), G4VRML2FileViewer::SendViewParameters(), G4OpenGLXmViewer::set_rot_subject_callback(), G4OpenGLViewerMessenger::SetNewValue(), G4OpenGLXmViewerMessenger::SetNewValue(), G4OpenGLWin32Viewer::SetRotation(), G4OpenGLWin32Viewer::SetShift(), G4OpenGLViewer::SetView(), G4OpenInventorQtViewer::SetView(), G4OpenInventorViewer::SetView(), G4OpenInventorWinViewer::SetView(), G4OpenInventorXtExtendedViewer::SetView(), G4OpenInventorXtViewer::SetView(), SetView(), G4RayTracerViewer::SetView(), G4ToolsSGQtViewer::SetView(), G4ToolsSGViewer< SG_SESSION, SG_VIEWER >::SetView(), G4VtkViewer::SetView(), G4VViewer::SetViewParameters(), G4OpenGLWin32Viewer::SetZoom(), G4OpenGLXViewer::ShowView(), G4VtkViewer::ShowView(), G4OpenGLQtViewer::toggleAux(), G4OpenGLQtViewer::toggleHiddenMarkers(), G4OpenGLQtViewer::togglePicking(), G4OpenGLQtViewer::toggleProjection(), G4OpenGLQtViewer::toggleSurfaceAction(), G4VViewer::TouchableSetColour(), G4VViewer::TouchableSetVisibility(), G4OpenGLXmViewer::up_down_pan_callback(), G4OpenGLXmViewer::update_panels_callback(), G4OpenGLXmViewer::UpdateControlPanel(), G4OpenGLQtViewer::updateToolbarAndMouseContextMenu(), G4OpenGLQtViewer::updateViewerPropertiesTableWidget(), G4ToolsSGViewer< SG_SESSION, SG_VIEWER >::wheel_rotate(), wheelEvent(), G4OpenGLXmViewer::wobble_callback(), G4OpenGLXmViewer::wobble_timer_callback(), and G4OpenGLXmViewer::zoom_callback().


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