2020
2121void GPUDisplay::buildConfigKeys ()
2222{
23+ mFrontend ->mConfigRTTI ->helpTextEntries .emplace_back (" [MOUSE 1] / [MOUSE 2] / [MOUSE 1+2]" , " Look around / Strafe camera / Zoom / Rotate" );
24+ mFrontend ->mConfigRTTI ->helpTextEntries .emplace_back (" [SHIFT]" , " Slow Zoom / Move / Rotate" );
25+
2326 mFrontend ->add_key_binding (
24- KEY_LAMBDA (' 1' , mCfgL , drawClusters, val ^= 1 ;),
25- KEY_LAMBDA (' 2' , mCfgL , drawInitLinks, val ^= 1 ;),
26- KEY_LAMBDA (' 3' , mCfgL , drawLinks, val ^= 1 ;),
27- KEY_LAMBDA (' 4' , mCfgL , drawSeeds, val ^= 1 ;),
28- KEY_LAMBDA (' 5' , mCfgL , drawTracklets, val ^= 1 ;),
29- KEY_LAMBDA (' 6' , mCfgL , drawTracks, val ^= 1 ;),
30- KEY_LAMBDA (' 7' , mCfgL , drawExtrapolatedTracks, val ^= 1 ;),
31- KEY_LAMBDA (' 8' , mCfgL , drawFinal, val ^= 1 ;),
32- KEY_LAMBDA (' N' , mCfgL , colorClusters, val ^= 1 ;), //
33- " Enable display of clusters, preseeds, seeds, starthits, tracklets, tracks, extrapolated tracks, merged tracks / Show assigned clusters in colors" ,
34- " [1] ... [8] / [N]" );
27+ KEY_DOWN_MAP (' w' , FORWARD ),
28+ KEY_DOWN_MAP (' s' , BACKWARD ),
29+ KEY_DOWN_MAP (' a' , STRAFE_LEFT ),
30+ KEY_DOWN_MAP (' d' , STRAFE_RIGHT ), //
31+ " Zoom / Strafe Left and Right" );
32+
33+ mFrontend ->add_key_binding (
34+ KEY_DOWN_MAP (mFrontend ->KEY_PAGEUP , STRAFE_UP ),
35+ KEY_DOWN_MAP (mFrontend ->KEY_PAGEDOWN , STRAFE_DOWN ),
36+ KEY_DOWN_MAP (' e' , ROTATE_LEFT ),
37+ KEY_DOWN_MAP (' f' , ROTATE_RIGHT ), //
38+ " Strafe up / down / Rotate left / right" );
3539
3640 mFrontend ->add_key_binding (
3741 KEY_LAMBDA (mFrontend ->KEY_ESCAPE , mCfgC , mDisplayControl , val.store (2 ); SetInfo (" Exiting" , 1 );),
@@ -48,6 +52,99 @@ void GPUDisplay::buildConfigKeys()
4852 }), //
4953 " Quit / Next event / Reset Display Settings / Start / Stop Qt GUI" );
5054
55+ mFrontend ->add_key_binding (
56+ KEY_DOWN_MAP (mFrontend ->KEY_LEFT , ROTATE_YAW_LEFT ),
57+ KEY_DOWN_MAP (mFrontend ->KEY_RIGHT , ROTATE_YAW_RIGHT ),
58+ KEY_DOWN_MAP (mFrontend ->KEY_UP , ROTATE_PITCH_UP ),
59+ KEY_DOWN_MAP (mFrontend ->KEY_DOWN , ROTATE_PITCH_DOWN ), //
60+ " Turn camera left / right / up / down" );
61+
62+ mFrontend ->add_key_binding (
63+ KEY_DOWN_MAP (mFrontend ->KEY_ALT , FOCUS_ORIGIN ),
64+ KEY_DOWN_MAP (mFrontend ->KEY_CTRL , FOCUS_ORIENT_UP ), //
65+ KEY_LAMBDA (mFrontend ->KEY_ALT + mFrontend ->SPECIAL_KEYS_SHIFTED , mCfgR , camLookOrigin, {
66+ val ^= 1 ;
67+ mCfgR .cameraMode = val + 2 * mCfgR .camYUp ;
68+ }),
69+ KEY_LAMBDA (mFrontend ->KEY_CTRL + mFrontend ->SPECIAL_KEYS_SHIFTED , mCfgR , camYUp, {
70+ val ^= 1 ;
71+ mCfgR .cameraMode = mCfgR .camLookOrigin + 2 * val;
72+ }),
73+ KEY_LAMBDA (mFrontend ->KEY_ENTER , mCfgR , cameraMode, {
74+ val++;
75+ if (val == 4 ) {
76+ val = 0 ;
77+ }
78+ mCfgR .camLookOrigin = val & 1 ;
79+ mCfgR .camYUp = val & 2 ;
80+ }),
81+ " Focus camera on origin / orient y-axis upwards (combine with [SHIFT] to lock) / Cycle through modes" , //
82+ " [ALT] / [CTRL] / [ENTER]" );
83+
84+ mFrontend ->add_key_binding (
85+ KEY_DOWN_MAP (mFrontend ->KEY_RCTRL , ROTATE_MODEL ),
86+ KEY_DOWN_MAP (mFrontend ->KEY_RALT , ROTATE_AROUND_Z ), //
87+ " Rotate model instead of camera / rotate TPC around beamline" );
88+
89+ mFrontend ->add_key_binding (
90+ KEY_LAMBDA (' F' , mCfgR , fullScreen, val ^= 1 ;), //
91+ KEY_LAMBDA (' _' , mCfgR , maximized, val ^= 1 ;), //
92+ KEY_LAMBDA (' b' , mCfgR , fov, {
93+ if ((val += 5 ) > 175 ) {
94+ val = 5 ;
95+ }
96+ }),
97+ KEY_LAMBDA (' m' , mCfgR , rendererCompatSmoothing, {
98+ if (!displayOpenGLCore || backend ()->backendType () != GPUDisplayBackend::TYPE_OPENGL ) {
99+ val ^= 1 ;
100+ }
101+ }),
102+ KEY_LAMBDA (' I' , mCfgR , useGLIndirectDraw, val ^= true ;), //
103+ " Switch mFullScreen / Maximized window / Change FOV (field of view) / Switch between core / compat renderer path (OpenGL profile, Vulkan smooth lines) / Enable / disable GL indirect draw" );
104+
105+ mFrontend ->add_key_binding (
106+ KEY_LAMBDA (' S' , mCfgL , smoothPoints, val ^= true ;), //
107+ KEY_LAMBDA (' A' , mCfgL , smoothLines, val ^= true ;), //
108+ KEY_LAMBDA (' D' , mCfgL , depthBuffer, {
109+ val ^= true ;
110+ mBackend ->setDepthBuffer ();
111+ }), //
112+ " Enable or disable smoothing of points / smoothing of lines / depth buffer" );
113+
114+ mFrontend ->add_key_binding (
115+ KEY_LAMBDA (' W' , mCfgR , drawQualityMSAA, {
116+ val *= 2 ;
117+ if (val < 2 ) {
118+ val = 2 ;
119+ }
120+ if (val > 16 || val > mBackend ->getMaxMSAA ()) {
121+ val = 0 ;
122+ }
123+ }),
124+ KEY_LAMBDA (' U' , mCfgR , drawQualityDownsampleFSAA, {
125+ val++;
126+ if (val == 1 ) {
127+ val = 2 ;
128+ }
129+ if (val == 5 ) {
130+ val = 0 ;
131+ }
132+ }),
133+ KEY_LAMBDA (' V' , mCfgR , drawQualityVSync, val ^= true ;), //
134+ KEY_LAMBDA (' R' , mCfgR , fpsLimit, val = (val + 1 ) % 3 ;), //
135+ " Toggle anti-aliasing (MSAA at raster level / change downsampling FSAA factor) / toggle VSync / FPS limit (none, refresh rate, fpsRate)" );
136+
137+ mFrontend ->add_key_binding (
138+ KEY_LAMBDA (' #' , mCfgL , invertColors, val ^= 1 ;),
139+ KEY_LAMBDA (' g' , mCfgL , drawGrid, val ^= 1 ;),
140+ KEY_LAMBDA (' i' , mCfgH , projectXY, val ^= 1 ;), //
141+ " Invert colors / Draw Grid / Project onto XY-plane" );
142+
143+ mFrontend ->add_key_binding (
144+ KEY_DOWN_MAP (' +' , INCREASE_WIDTH ),
145+ KEY_DOWN_MAP (' -' , DECREASE_WIDTH ), //
146+ " Increase / decrease point size (Hold SHIFT for lines)" );
147+
51148 mFrontend ->add_key_binding (
52149 KEY_LAMBDA (' l' , mCfgL , drawSector, {
53150 if (val >= (mCfgL .drawRelatedSectors ? (NSECTORS / 4 - 1 ) : (NSECTORS - 1 ))) {
@@ -77,35 +174,6 @@ void GPUDisplay::buildConfigKeys()
77174 }), //
78175 " Draw single sector (next / previous sector), draw related sectors (same plane in phi) / Show splitting of TPC in sectors by extruding volume, [:] resets" );
79176
80- mFrontend ->add_key_binding (
81- KEY_LAMBDA (' y' , mCfgC , dummy, {
82- if (mAnimateVectors [0 ].size () > 1 ) {
83- if (mCfgC .mAnimateScreenshot ) {
84- mAnimationExport ++;
85- }
86- startAnimation ();
87- SetInfo (" Starting Animation" , 1 );
88- } else {
89- SetInfo (" Insufficient Animation points to start Animation" , 1 );
90- }
91- }),
92- KEY_LAMBDA (' Y' , mCfgC , dummy, setAnimationPoint (); SetInfo (" Added Animation point (%d points, %6.2f seconds)" , (int32_t )mAnimateVectors [0 ].size (), mAnimateVectors [0 ].back ());), //
93- KEY_LAMBDA (' \' ' , mCfgC , dummy, removeAnimationPoint (); SetInfo (" Removed Animation point" , 1 );), //
94- KEY_LAMBDA (' X' , mCfgC , dummy, resetAnimation (); SetInfo (" Reset Animation points" , 1 );), //
95- KEY_LAMBDA (' M' , mCfgL , animationMode, {
96- val++;
97- if (val == 7 ) {
98- val = 0 ;
99- }
100- }), //
101- " Start Animation, Add / remove Animation point, Reset Points, Cycle animation camera mode (resets)" );
102-
103- mFrontend ->add_key_binding (
104- KEY_LAMBDA (' #' , mCfgL , invertColors, val ^= 1 ;),
105- KEY_LAMBDA (' g' , mCfgL , drawGrid, val ^= 1 ;),
106- KEY_LAMBDA (' i' , mCfgH , projectXY, val ^= 1 ;), //
107- " Invert colors / Draw Grid / Project onto XY-plane" );
108-
109177 mFrontend ->add_key_binding (
110178 KEY_LAMBDA (' x' , mCfgL , excludeClusters, val = (val + 1 ) % 3 ;),
111179 KEY_LAMBDA (' .' , mCfgH , hideRejectedTracks, val ^= 1 ;), //
@@ -139,24 +207,6 @@ void GPUDisplay::buildConfigKeys()
139207 }), //
140208 " Mark flagged clusters (splitPad = 0x1, splitTime = 0x2, edge = 0x4, singlePad = 0x8, rejectDistance = 0x10, rejectErr = 0x20 / Mark fake attached clusters / Mark clusters attached as adjacent" );
141209
142- mFrontend ->add_key_binding (
143- KEY_LAMBDA (' L' , mCfgL , showCollision, {
144- if (val >= mNCollissions - 1 ) {
145- val = -1 ;
146- } else {
147- val++;
148- }
149- }),
150- KEY_LAMBDA (' K' , mCfgL , showCollision, {
151- if (val <= -1 ) {
152- val = mNCollissions - 1 ;
153- } else {
154- val--;
155- }
156- }),
157- KEY_LAMBDA (' C' , mCfgL , colorCollisions, val ^= 1 ;), //
158- " Draw single collisions (next / previous) / Colorcode clusters of different collisions" );
159-
160210 mFrontend ->add_key_binding (
161211 KEY_LAMBDA (' v' , mCfgH , hideRejectedClusters, val ^= 1 ;), //
162212 KEY_LAMBDA (' j' , mCfgH , separateExtrapolatedTracks, {
@@ -178,6 +228,24 @@ void GPUDisplay::buildConfigKeys()
178228 KEY_LAMBDA (' G' , mCfgH , propagateLoopers, val ^= 1 ;), //
179229 " Extrapolate tracks / loopers" );
180230
231+ mFrontend ->add_key_binding (
232+ KEY_LAMBDA (' L' , mCfgL , showCollision, {
233+ if (val >= mNCollissions - 1 ) {
234+ val = -1 ;
235+ } else {
236+ val++;
237+ }
238+ }),
239+ KEY_LAMBDA (' K' , mCfgL , showCollision, {
240+ if (val <= -1 ) {
241+ val = mNCollissions - 1 ;
242+ } else {
243+ val--;
244+ }
245+ }),
246+ KEY_LAMBDA (' C' , mCfgL , colorCollisions, val ^= 1 ;), //
247+ " Draw single collisions (next / previous) / Colorcode clusters of different collisions" );
248+
181249 mFrontend ->add_key_binding (
182250 KEY_LAMBDA (' t' , mCfgC , mRequestScreenshot , {
183251 static int32_t nScreenshot = 1 ;
@@ -197,52 +265,32 @@ void GPUDisplay::buildConfigKeys()
197265 " Take Screenshot / Record Animation to pictures / Change screenshot resolution (scaling factor)" );
198266
199267 mFrontend ->add_key_binding (
200- KEY_LAMBDA (' S' , mCfgL , smoothPoints, val ^= true ;), //
201- KEY_LAMBDA (' A' , mCfgL , smoothLines, val ^= true ;), //
202- KEY_LAMBDA (' D' , mCfgL , depthBuffer, {
203- val ^= true ;
204- mBackend ->setDepthBuffer ();
205- }), //
206- " Enable or disable smoothing of points / smoothing of lines / depth buffer" );
207-
208- mFrontend ->add_key_binding (
209- KEY_LAMBDA (' W' , mCfgR , drawQualityMSAA, {
210- val *= 2 ;
211- if (val < 2 ) {
212- val = 2 ;
213- }
214- if (val > 16 || val > mBackend ->getMaxMSAA ()) {
215- val = 0 ;
268+ KEY_LAMBDA (' y' , mCfgC , dummy, {
269+ if (mAnimateVectors [0 ].size () > 1 ) {
270+ if (mCfgC .mAnimateScreenshot ) {
271+ mAnimationExport ++;
272+ }
273+ startAnimation ();
274+ SetInfo (" Starting Animation" , 1 );
275+ } else {
276+ SetInfo (" Insufficient Animation points to start Animation" , 1 );
216277 }
217278 }),
218- KEY_LAMBDA (' U' , mCfgR , drawQualityDownsampleFSAA, {
279+ KEY_LAMBDA (' Y' , mCfgC , dummy, setAnimationPoint (); SetInfo (" Added Animation point (%d points, %6.2f seconds)" , (int32_t )mAnimateVectors [0 ].size (), mAnimateVectors [0 ].back ());), //
280+ KEY_LAMBDA (' \' ' , mCfgC , dummy, removeAnimationPoint (); SetInfo (" Removed Animation point" , 1 );), //
281+ KEY_LAMBDA (' X' , mCfgC , dummy, resetAnimation (); SetInfo (" Reset Animation points" , 1 );), //
282+ KEY_LAMBDA (' M' , mCfgL , animationMode, {
219283 val++;
220- if (val == 1 ) {
221- val = 2 ;
222- }
223- if (val == 5 ) {
284+ if (val == 7 ) {
224285 val = 0 ;
225286 }
226- }),
227- KEY_LAMBDA (' V' , mCfgR , drawQualityVSync, val ^= true ;), //
228- KEY_LAMBDA (' R' , mCfgR , fpsLimit, val = (val + 1 ) % 3 ;), //
229- " Toggle anti-aliasing (MSAA at raster level / change downsampling FSAA factor) / toggle VSync / FPS limit (none, refresh rate, fpsRate)" );
287+ }), //
288+ " Start Animation, Add / remove Animation point, Reset Points, Cycle animation camera mode (resets)" );
230289
231290 mFrontend ->add_key_binding (
232- KEY_LAMBDA (' F' , mCfgR , fullScreen, val ^= 1 ;), //
233- KEY_LAMBDA (' _' , mCfgR , maximized, val ^= 1 ;), //
234- KEY_LAMBDA (' b' , mCfgR , fov, {
235- if ((val += 5 ) > 175 ) {
236- val = 5 ;
237- }
238- }),
239- KEY_LAMBDA (' m' , mCfgR , rendererCompatSmoothing, {
240- if (!displayOpenGLCore || backend ()->backendType () != GPUDisplayBackend::TYPE_OPENGL ) {
241- val ^= 1 ;
242- }
243- }),
244- KEY_LAMBDA (' I' , mCfgR , useGLIndirectDraw, val ^= true ;), //
245- " Switch mFullScreen / Maximized window / Change FOV (field of view) / Switch between core / compat renderer path (OpenGL profile, Vulkan smooth lines) / Enable / disable GL indirect draw" );
291+ KEY_LAMBDA (' >' , mCfgC , mAnimationChangeConfig , val ^= 1 ; SetInfo (" Interpolating visualization settings during Animation %s" , mCfgC .mAnimationChangeConfig ? " enabled" : " disabled" );),
292+ KEY_DOWN_MAP (' <' , CHANGE_ANIMATION_INTERVAL ), //
293+ " Toggle config interpolation during Animation / change Animation interval (via movement)" );
246294
247295 mFrontend ->add_key_binding (
248296 KEY_LAMBDA (' o' , mCfgC , dummy, {
@@ -313,6 +361,19 @@ void GPUDisplay::buildConfigKeys()
313361 }), //
314362 " Save / restore current camera position / Animation path" );
315363
364+ mFrontend ->add_key_binding (
365+ KEY_LAMBDA (' 1' , mCfgL , drawClusters, val ^= 1 ;),
366+ KEY_LAMBDA (' 2' , mCfgL , drawInitLinks, val ^= 1 ;),
367+ KEY_LAMBDA (' 3' , mCfgL , drawLinks, val ^= 1 ;),
368+ KEY_LAMBDA (' 4' , mCfgL , drawSeeds, val ^= 1 ;),
369+ KEY_LAMBDA (' 5' , mCfgL , drawTracklets, val ^= 1 ;),
370+ KEY_LAMBDA (' 6' , mCfgL , drawTracks, val ^= 1 ;),
371+ KEY_LAMBDA (' 7' , mCfgL , drawExtrapolatedTracks, val ^= 1 ;),
372+ KEY_LAMBDA (' 8' , mCfgL , drawFinal, val ^= 1 ;),
373+ KEY_LAMBDA (' N' , mCfgL , colorClusters, val ^= 1 ;), //
374+ " Enable display of clusters, preseeds, seeds, starthits, tracklets, tracks, extrapolated tracks, merged tracks / Show assigned clusters in colors" ,
375+ " [1] ... [8] / [N]" );
376+
316377 mFrontend ->add_key_binding (
317378 KEY_LAMBDA (mFrontend ->KEY_F1 , mCfgL , drawTPC, val ^= 1 ;),
318379 KEY_LAMBDA (mFrontend ->KEY_F2 , mCfgL , drawTRD, val ^= 1 ;),
@@ -349,69 +410,6 @@ void GPUDisplay::buildConfigKeys()
349410 SetInfo (" Info text display - console: %s, onscreen %s" , (val & 2 ) ? " enabled" : " disabled" , (val & 1 ) ? " enabled" : " disabled" );
350411 }), //
351412 " Print Help / Show info texts" );
352-
353- mFrontend ->add_key_binding (
354- KEY_DOWN_MAP (' w' , FORWARD ),
355- KEY_DOWN_MAP (' s' , BACKWARD ),
356- KEY_DOWN_MAP (' a' , STRAFE_LEFT ),
357- KEY_DOWN_MAP (' d' , STRAFE_RIGHT ), //
358- " Zoom / Strafe Left and Right" );
359-
360- mFrontend ->add_key_binding (
361- KEY_DOWN_MAP (mFrontend ->KEY_PAGEUP , STRAFE_UP ),
362- KEY_DOWN_MAP (mFrontend ->KEY_PAGEDOWN , STRAFE_DOWN ), //
363- " Strafe up / down" );
364-
365- mFrontend ->add_key_binding (
366- KEY_DOWN_MAP (' e' , ROTATE_LEFT ),
367- KEY_DOWN_MAP (' f' , ROTATE_RIGHT ), //
368- " Rotate left / right" );
369-
370- mFrontend ->add_key_binding (
371- KEY_DOWN_MAP (mFrontend ->KEY_LEFT , ROTATE_YAW_LEFT ),
372- KEY_DOWN_MAP (mFrontend ->KEY_RIGHT , ROTATE_YAW_RIGHT ),
373- KEY_DOWN_MAP (mFrontend ->KEY_UP , ROTATE_PITCH_UP ),
374- KEY_DOWN_MAP (mFrontend ->KEY_DOWN , ROTATE_PITCH_DOWN ), //
375- " Turn camera left / right / up / down" );
376-
377- mFrontend ->add_key_binding (
378- KEY_DOWN_MAP (' +' , INCREASE_WIDTH ),
379- KEY_DOWN_MAP (' -' , DECREASE_WIDTH ), //
380- " Increase / decrease point size (Hold SHIFT for lines)" );
381-
382- mFrontend ->add_key_binding (
383- KEY_DOWN_MAP (mFrontend ->KEY_ALT , FOCUS_ORIGIN ),
384- KEY_DOWN_MAP (mFrontend ->KEY_CTRL , FOCUS_ORIENT_UP ), //
385- KEY_LAMBDA (mFrontend ->KEY_ALT + mFrontend ->SPECIAL_KEYS_SHIFTED , mCfgR , camLookOrigin, {
386- val ^= 1 ;
387- mCfgR .cameraMode = val + 2 * mCfgR .camYUp ;
388- }),
389- KEY_LAMBDA (mFrontend ->KEY_CTRL + mFrontend ->SPECIAL_KEYS_SHIFTED , mCfgR , camYUp, {
390- val ^= 1 ;
391- mCfgR .cameraMode = mCfgR .camLookOrigin + 2 * val;
392- }),
393- KEY_LAMBDA (mFrontend ->KEY_ENTER , mCfgR , cameraMode, {
394- val++;
395- if (val == 4 ) {
396- val = 0 ;
397- }
398- mCfgR .camLookOrigin = val & 1 ;
399- mCfgR .camYUp = val & 2 ;
400- }),
401- " Focus camera on origin / orient y-axis upwards (combine with [SHIFT] to lock) / Cycle through modes" , //
402- " [ALT] / [CTRL] / [ENTER]" );
403-
404- mFrontend ->add_key_binding (
405- KEY_DOWN_MAP (mFrontend ->KEY_RCTRL , ROTATE_MODEL ),
406- KEY_DOWN_MAP (mFrontend ->KEY_RALT , ROTATE_AROUND_Z ), //
407- " Rotate model instead of camera / rotate TPC around beamline" );
408-
409- mFrontend ->add_key_binding (
410- KEY_LAMBDA (' >' , mCfgC , mAnimationChangeConfig , val ^= 1 ; SetInfo (" Interpolating visualization settings during Animation %s" , mCfgC .mAnimationChangeConfig ? " enabled" : " disabled" );),
411- KEY_DOWN_MAP (' <' , CHANGE_ANIMATION_INTERVAL ), //
412- " Toggle config interpolation during Animation / change Animation interval (via movement)" );
413-
414- mFrontend ->mConfigRTTI ->helpTextEntries .emplace_back (" [MOUSE 1] / [MOUSE 2] / [MOUSE 1+2] / [SHIFT]" , " Look around / Strafe camera / Zoom / Rotate / Slow Zoom / Move / Rotate" );
415413}
416414
417415#endif // GPUDISPLAYFRONTENDCONFIGKEYS_INC
0 commit comments