Log of /trunk/graf3d/gl/src/TGLSAViewer.cxx
Parent Directory
Revision
44693 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jun 14 18:53:13 2012 UTC (2 years, 7 months ago) by
matevz
File length: 28724 byte(s)
Diff to
previous 36973
Implement arc-ball camera rotation. Use the 'a' key to switch between the
standard (up-direction fixed) and arc-ball rotation modes.
* TGLCamera
Add functions RotateArcBall() and RotateArcBallRad().
Add member 'Bool_t fWasArBalled'. Check its state in standard Rotate
function and fix up direction if needed.
* TGLOrthoCamera, TGLPerspectiveCamera
Use combined view matrix's third vector as the up direction.
* TGLEventHandler
Add arc-ball state variable and key-handling.
Add logic for calling std vs arc-ball camera rotate function.
* TGLSAViewer
Document arc-ball key binding in help text.
Revision
36675 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Nov 15 20:33:58 2010 UTC (4 years, 2 months ago) by
matevz
File length: 28237 byte(s)
Diff to
previous 35951
* TGLFormat, TGLWidget
Add handling of multi-sampling formats for GLX.
WGL implementation is still missing.
The value is taken from TEnv "OpenGL.Framebuffer.Multisample".
* TGLViewerBase
Use TGLCapabilityEnabler for switching on bleniding.
* TGLViewer
Remove flas fInitGL and associated functions.
Set sane GL state on every Draw().
Consolidate image extraction from frame-buffers.
* TGLEmbeddedViewer, TGLSAViewer
Remove calls to ResetInitGL().
* TGLRnrCtx
Remove fGrabBuffer and fGrabbedImage members, only keep fGrabImage flag.
All the rest is handled internally in TGLViewer now.
* TGLFBO
Add support for multi-sampling FBOs.
Revision
33955 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jun 17 11:33:13 2010 UTC (4 years, 7 months ago) by
matevz
File length: 28271 byte(s)
Diff to
previous 32831
Merge the following revisions from the fireworks branch:
33909, 33913, 33914, 33916, 33922, 33924, 33925, 33932
33909
=====
Author: matevz
Date: Tue Jun 15 13:05:07 2010
New Revision: 33909
URL: http://root.cern.ch/viewvc?rev=33909&root=root&view=rev
Log:
Add option to switch from scene-centric to viewer-centric controls.
To switch from default, put this into ~/.rootrc:
OpenGL.EventHandler.ViewerCentricControls: 1
Modified:
branches/dev/fireworks/graf3d/gl/inc/TGLEventHandler.h
branches/dev/fireworks/graf3d/gl/src/TGLEventHandler.cxx
33913
=====
Author: matevz
Date: Tue Jun 15 15:41:44 2010
New Revision: 33913
URL: http://root.cern.ch/viewvc?rev=33913&root=root&view=rev
Log:
Add help about viewer-centric controls.
Modified:
branches/dev/fireworks/graf3d/gl/src/TGLSAViewer.cxx
33914
=====
Author: matevz
Date: Tue Jun 15 15:44:08 2010
New Revision: 33914
URL: http://root.cern.ch/viewvc?rev=33914&root=root&view=rev
Log:
Fix help text line endings.
Modified:
branches/dev/fireworks/graf3d/gl/src/TGLSAViewer.cxx
33916
=====
Author: matevz
Date: Tue Jun 15 16:24:37 2010
New Revision: 33916
URL: http://root.cern.ch/viewvc?rev=33916&root=root&view=rev
Log:
* TEveLineGL
Do not disable blending if it was enabled form outside, only enforce
it if smooth line-drawing is requested.
* TGLUtil
Add helper class TGLCapabilityEnabler -- it makes sure certain
capability is enabled if the required state is true.
Modified:
branches/dev/fireworks/graf3d/eve/src/TEveLineGL.cxx
branches/dev/fireworks/graf3d/gl/inc/TGLUtil.h
branches/dev/fireworks/graf3d/gl/src/TGLUtil.cxx
33922
=====
Author: matevz
Date: Tue Jun 15 17:14:26 2010
New Revision: 33922
URL: http://root.cern.ch/viewvc?rev=33922&root=root&view=rev
Log:
In SetProjection() use CopyVizParams() to propagate visual parameters to projected replicas -- where it makes sense (everywhere but TEvePolgonSetProjected).
Modified:
branches/dev/fireworks/graf3d/eve/src/TEveGeoShape.cxx
branches/dev/fireworks/graf3d/eve/src/TEveLine.cxx
branches/dev/fireworks/graf3d/eve/src/TEvePointSet.cxx
branches/dev/fireworks/graf3d/eve/src/TEveStraightLineSet.cxx
branches/dev/fireworks/graf3d/eve/src/TEveTrack.cxx
branches/dev/fireworks/graf3d/eve/src/TEveTrackProjected.cxx
33924
=====
Author: matevz
Date: Tue Jun 15 17:27:52 2010
New Revision: 33924
URL: http://root.cern.ch/viewvc?rev=33924&root=root&view=rev
Log:
Remove unnecessary function in TGLCapabilityEnabler.
Modified:
branches/dev/fireworks/graf3d/gl/inc/TGLUtil.h
branches/dev/fireworks/graf3d/gl/src/TGLUtil.cxx
33925
=====
Author: matevz
Date: Tue Jun 15 17:28:28 2010
New Revision: 33925
URL: http://root.cern.ch/viewvc?rev=33925&root=root&view=rev
Log:
Fix overriding of smoothness (as in TEveLineGL before).
Modified:
branches/dev/fireworks/graf3d/eve/src/TEveTrackProjectedGL.cxx
33932
=====
Author: alja
Date: Tue Jun 15 20:17:06 2010
New Revision: 33932
URL: http://root.cern.ch/viewvc?rev=33932&root=root&view=rev
Log:
Add transparency parameter to slice info.
Modified:
branches/dev/fireworks/graf3d/eve/inc/TEveCaloData.h
branches/dev/fireworks/graf3d/eve/inc/TEveCaloVizEditor.h
branches/dev/fireworks/graf3d/eve/src/TEveCalo.cxx
branches/dev/fireworks/graf3d/eve/src/TEveCalo2DGL.cxx
branches/dev/fireworks/graf3d/eve/src/TEveCalo3DGL.cxx
branches/dev/fireworks/graf3d/eve/src/TEveCaloData.cxx
branches/dev/fireworks/graf3d/eve/src/TEveCaloLegoGL.cxx
branches/dev/fireworks/graf3d/eve/src/TEveCaloVizEditor.cxx
Revision
32770 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Mar 25 17:05:08 2010 UTC (4 years, 10 months ago) by
matevz
File length: 28029 byte(s)
Diff to
previous 32098
Add function
void DisableMenuBarHiding();
Call it from destructor to avoid stray EventProcessed() signals from
menu-bar and menu-button widgets.
Revision
32064 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Jan 20 19:56:34 2010 UTC (5 years ago) by
matevz
File length: 27489 byte(s)
Diff to
previous 31823
Hide / show menu-bar with a time-out (default 400ms). This can be
adjusted by calling static method:
TGLSAViewer::SetMenuHidingTimeout(200)
Suggested by Alex Finch.
Revision
31821 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Dec 10 18:22:44 2009 UTC (5 years, 1 month ago) by
matevz
File length: 26441 byte(s)
Diff to
previous 31299
Add support for stereo rendering. This requires a graphics card that
supports quad-buffering and shutter glasses.
The standard drawing code is unchanged.
Revision
31299 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Nov 18 21:06:28 2009 UTC (5 years, 2 months ago) by
matevz
File length: 26095 byte(s)
Diff to
previous 30425
Several small cleanups and improvements.
TGLViewer and sub-classes:
- Improve help text for TGLViewer ("Help on GL viewer").
- Add support for menu-bar hiding in TGLSAViewer.
- Allow TGLEmbeddedViewer to be connected to a GED editor.
- Remove support for "camera home" on double click -- show GED editor
of the viewer instead.
TGLEventHandler:
- Improve handling of mouse-button events:
- Only allow single button activity at the same time.
- Remove function-static variables.
TEveViewer:
- Enable by default menu-bar hiding for GL viewers.
Revision
30425 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Sep 24 19:45:11 2009 UTC (5 years, 4 months ago) by
matevz
File length: 23827 byte(s)
Diff to
previous 28251
In all classes using FTGL fonts:
Consistently use integer for FTGL font size.
TGLEventHandler, TEveLegoEventHandler, TGLSAViewer,TGLEmbeddedViewer:
Change construnctor of TGLEventHandler and TEveLegoEventHandler.
Revision
28197 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Apr 14 13:59:27 2009 UTC (5 years, 9 months ago) by
matevz
File length: 23836 byte(s)
Diff to
previous 27515
Merge the following revisions from the fireworks branch:
-r 27692:27867
-c 27876
-r 28012:28187
================================================================================
27693
TEveCalo:
Set bounding box when calo data empty.
TEveCaloLegoGL:
TGLAxisPainter:
Draw axis title in TGLAxisPainter::PaintAxis().
--------------------------------------------------------------------------------
27694
Forget to check-in this file in revision 27693.
--------------------------------------------------------------------------------
27695
Don't draw frame and call TGLAxisPainter::Paint() if calo data empty.
--------------------------------------------------------------------------------
27699
Fix issues reported by valgrind.
--------------------------------------------------------------------------------
27758
Return viewer in TEveViewer::SpawnGLViewer and TEveViewer::SpawnGLEmbeddedViewer().
--------------------------------------------------------------------------------
27767
Unset event handler when destroying TGLWidget. This is important in case destruction of TGLWidget is called with timeout.
--------------------------------------------------------------------------------
27840
Add possibility to create different icon boxes in
TEveCompositeFrame. Use static function pointer fgIconBarCreator to change default behavior.
Remove oboslete function TEveCompositeFrame::ReplaceIconBox().
--------------------------------------------------------------------------------
7856
Bug fix: Get font size calculating projected axis length at the Z-title position.
--------------------------------------------------------------------------------
27857
Move to real world coordinates. Add line-set for test.
--------------------------------------------------------------------------------
27867
TGLViewer:
Add function:
void ResetInitGL()
This is needed if GL-context is destroyed from outside.
Call it from derived classes when creating and destroying GL-widget.
--------------------------------------------------------------------------------
27876
In line set add possibility to disable depth test, i.e. draw lines/markers in front.
--------------------------------------------------------------------------------
28013
Fix memory leak in TEveCalo2D.
--------------------------------------------------------------------------------
28048
In HandleCrossing() ignore grab and ungrab events. Several window managers produce them nowadays (fvwm2, x-on-mac, sawfish).
--------------------------------------------------------------------------------
28050
Simplify macro.
--------------------------------------------------------------------------------
28106
URL: http://root.cern.ch/viewcvs?rev=28106&root=root&view=rev
Log:
Add data-members and accessors for controlling brightness of front,
side and speulcar lights.
--------------------------------------------------------------------------------
28114
TGLPShapeObjEditor
==================
Remove obsolete data-members and enum entries.
TGLUtil
=======
New class TGLColor - using this will simplify color management in
TGLViewer and TGLRnrCtx.
TEveUtil
========
Simplify implementation of TEveUtil::ColorFromIdx() functions.
--------------------------------------------------------------------------------
28144
Add dtor for TGLColor.
--------------------------------------------------------------------------------
28161
URL: http://root.cern.ch/viewcvs?rev=28161&root=root&view=rev
Log:
Extend window management demo.
--------------------------------------------------------------------------------
28162
Add support several GL color-sets - each defines colors for background,
foreground, outline, markup and for outlines of selected and
highlighted objects.
GL/
===
TGLUtil - add new class TGLColorSet.
TGLRnrCtx - add color-set stack.
TGLViewer - create two color-sets by default - for light and dark
background. These can be switched with the 'e' key now.
TGLScene - decrease polgon-offset for outline-mode fill-pass from (1,
1) to (0.5, 0.5) which is sufficient.
Use/support color-set functionality in other modified classes.
EVE/
====
TEvePolygonSetProjectedGL - skip outline pass.
TEveProjectionAxesGL - skip outline pass and slightly widen the depth
range so that the text is visible in outline mode, where
polygon-offset is applied during the fill-pass.
--------------------------------------------------------------------------------
28168
Add support for a global GL color-set shared among several (all)
viewers.
TGLViewer - add static data-members and functions to handle global
color-set. Add methods that allow switching between global/private
color-sets for a given viewer.
TGLViewerEditor - Disable backgound-color widget when the viewer uses
global color-set.
TGLCameraOverlay - use foreground color for some markup rendering.
In two tutorials use the new API for setting of the background color.
--------------------------------------------------------------------------------
28187
Put back the old method for setting background color and mark it as deprecated.
Revision
27515 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Feb 19 12:42:51 2009 UTC (5 years, 11 months ago) by
matevz
File length: 23703 byte(s)
Diff to
previous 27153
* gl/src/TGLSAViewer.cxx:
Add animated gif to the list of supported output files from the "Save
As" menu.
Check if the user already typed the extension - prefer this over the
file-type selected in the file dialog.
* gl/src/TGLViewer.cxx:
Rename a local variable.
Revision
26849 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Dec 11 21:39:15 2008 UTC (6 years, 1 month ago) by
matevz
File length: 23140 byte(s)
Diff to
previous 26766
TGLViewer and framed sub-classes
--------------------------------
- Add virtual Create/DestroyGLWidget() functions.
This is apparently needed to make undocking work on mac.
Revision
26717 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Dec 7 22:07:55 2008 UTC (6 years, 1 month ago) by
matevz
File length: 22036 byte(s)
Diff to
previous 26635
graf3d/gl
=========
Documentation changes.
TGLSAViewer
-----------
- store TGLSAFrame as a normal composite-frame.
graf3d/eve
==========
Support for creation of GL windows.
Support for full hierarhic destruction.
TEveManager
-----------
- Push all gl-viewer management to TEveViewerList.
- Allow spawning several GL viewers during initialization.
TEveViewer
----------
- Subclass from TEveWindowFrame. This way all eve-window operations
are supported.
TEveViewerList
--------------
- Perform gl-viewer management via Add/RemoveElement() virtuals.
TEveWindow
----------
- Properly set cleanup of all frames.
- Delete embedded GUI frames via DeleteWindow().
- Change all debug printout with info messages at gDebug > 0.
TEveElement
-----------
- Added access methods for member 'Int_t fParentIgnoreCnt'.
tutorials/eve
=============
Use new interace for creating / accessing eve and gl viewers.
Revision
26635 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Dec 3 18:43:04 2008 UTC (6 years, 1 month ago) by
matevz
File length: 21985 byte(s)
Diff to
previous 26561
TEveWindow
- Finalize low-level API for window-switching.
- Add method TEveCompositeFrame::ReplaceIconBox() allowing registration
of an external window tool-box.
- Add to TEveWindowSlot two methods:
TEveWindowFrame* MakeFrame();
TEveWindowFrame* MakeFrame(TGFrame* frame);
to facilitate registration of arbitrary gui frames.
TEveViewer
- Add method SpawnGLEmbeddedViewer(const TGWindow* parent, Int_t border).
TGLSAViewer
- Parent pop-up menus to default-root.
test_windows.C
- Add stand-alone gl viewer, embedded gl viewer and a root-canvas.
Revision
26561 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Dec 1 17:35:55 2008 UTC (6 years, 1 month ago) by
matevz
File length: 21957 byte(s)
Diff to
previous 26359
Merge the following releases from the fireworks branch:
26432
- Added TGLSAViewer::DeleteMenuBar().
26444
- TGLSAViewer - use a steering flag for menu-bar destruction.
26468
- TEveCaloDataVec - option to define XY axis from cells themselves.
26481
- TEveCaloDataVec - bugfix;
- show the new feature in cms_calo*.C tutorials.
26523
- TEveWindow - new classes for management of EVE vindows;
26524
- missing include.
26557
- TEveWindow:
- support hiding of title-bar directly from frame; render decollapse box
when hidden;
- bind context menu to Action/IconBox button;
- consistent usage of simple frame-style.
Revision
26274 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Nov 18 20:32:48 2008 UTC (6 years, 2 months ago) by
matevz
File length: 21699 byte(s)
Diff to
previous 25952
Merge from the fireworks branch the following revisions:
26053
=====
TEveCalo, TGLFontManager - Fix memory leaks.
26167
=====
TEveLegoOverlay - Add possiblity to draw a header text in top right corner of window.
26254
=====
TGLSAViewer - Properly clean up the TGMenuBar.
TEveManager - Add static method Terminate() to shutdown the manager.
26267
=====
TGLScene - In FindLogicalSmartRefresh() delete the shape if the classes don't
match. This was a (rare) memory leak.
TEveBoxSetGL - Consistent punctuation.
26273
=====
TEveManager - Add method 'void CloseEveWindow()' and connect it to the
'CloseWindow()' signal of the main browser.
Revision
25642 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Oct 1 11:04:06 2008 UTC (6 years, 3 months ago) by
matevz
File length: 21461 byte(s)
Diff to
previous 25245
Merge revs 25435:25641 from the fireworks branch.
Many improvements in text and axis rendering for orthographic views,
for axes in non-linear projections and for the dedicated lego view.
TGLSceneBase
------------
Add data-member 'Bool_t fSelectable' with get/set methods.
If this is set to false, the scene is not rendered during selection
thus preventing any of its elements to be selected.
TGLViewerBase
-------------
In PreRender() honour the selectable state of a scene when selecting
which scenes to include in rendering.
TGLSAViewer
-----------
Remove extra border introduced by usage of kSunkenFrame.
TGLEmbeddedViewer
-----------------
Add optional argument 'Int_t border' to the constructor.
Revision
25245 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Aug 25 21:44:09 2008 UTC (6 years, 4 months ago) by
matevz
File length: 21183 byte(s)
Diff to
previous 24204
Merge changes from the eve-dev branch (-r 25202:HEAD). This makes trunk up to date with all developments in eve/ and gl/. eve-dev branch is now obsolete and will be removed.
Revision
24204 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Jun 10 18:24:40 2008 UTC (6 years, 7 months ago) by
matevz
File length: 21183 byte(s)
Diff to
previous 24114
- TGLContext, TGLWidget
Fix creation of TGLWidget so that it also works with software
rendering where few visuals are available.
This means that we have to break TGLWidget construction into three
phases (required for software rendering on X11):
1. find appropriate visual and create window;
2. create widget using the above window;
3. create gl-context binding them together.
To avoid unexpected behaviour the construction is now done via
static constructor 'TGLWidget* TGLWidget::Create()' and the
actual constructor has been made protected.
- TGLEmbeddedViewer, TGLSAViewer
Use new TGLWidget construction syntax.
- TGLPShapeObjEditor
Use new TGLWidget construction syntax.
Fix rendering and update of color-sphere.
Revision
24059 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri May 30 04:15:11 2008 UTC (6 years, 7 months ago) by
matevz
File length: 21274 byte(s)
Diff to
previous 23665
- TEveGeoShape
Add static data-member holding a pointer to a default geo-manager
that allows us to capture dangling geo-shapes as they are created for
or imported into TEveGeoShape.
- TGLCamera
Fix AdjustAndClampVal() fix poorly implementd logarithmic scaling of
the value step.
- TGLOrthoCamera
Add get/set methods for fZoomMin/Max.
- TGLViewer, TGLSAViewer
Move SavePicture() from TGLSAViewer to TGLViewer and improve
structure of the code. This allows also images from TGLEmbedded
viewer to be saved to a file.
- projection_test.C
Set min/max-zoom of the camera.
Revision
23665 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue May 6 14:38:14 2008 UTC (6 years, 8 months ago) by
matevz
File length: 24396 byte(s)
Diff to
previous 23320
Added three more orthographic cameras (looking at the scene from
another side).
Added virtual methods Bool_t TGLCamera::IsPerspective()/IsOrthographic().
Revision
23318 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Apr 18 16:38:57 2008 UTC (6 years, 9 months ago) by
matevz
File length: 23919 byte(s)
Diff to
previous 23140
In TGLViewer::SetEventHandler() propagate the changes to TGLWidget.
Rename member TGLWidget* TGLViewer::fGLWindow to fGLWidget to
correspond to class-name of the new low-level GL interface.
Revision
23140 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Apr 11 11:01:39 2008 UTC (6 years, 9 months ago) by
rdm
File length: 23938 byte(s)
Diff to
previous 23087
move the following directories to "graf2d":
asimage, freetype, gpad, graf, postscript, qt, win32gdk, x11, x11ttf
move the following directories to "graf3d":
eve, ftgl, g3d, gl, x3d
Revision
23087 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Apr 9 14:10:56 2008 UTC (6 years, 9 months ago) by
rdm
Original Path:
trunk/gl/src/TGLSAViewer.cxx
File length: 23938 byte(s)
Diff to
previous 22539
From Alja, Bertrand and Matevz - merged branches/dev/fireworks 22550:23082.
Major changes imported by this merge are:
gl/
====
- reorganization of scene rendering in TGLViewer - render opaque
objects from all scenes first, then all transparent ones;
- improve saving of images from the GL-viewer so that the dialog boxes
and other windows do not result in black areas on the saved image;
- improved management of FTGL fonts accross GL contexts.
eve/
====
- new classes for visualization of calorimeter data in lego mode;
- allow fixed scale beyond given radius for fish-eye projections.
Revision
22539 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sat Mar 8 14:36:37 2008 UTC (6 years, 10 months ago) by
rdm
Original Path:
trunk/gl/src/TGLSAViewer.cxx
File length: 23397 byte(s)
Diff to
previous 22488
From Alja, Bertrand & Matevz: merged branches/dev/fireworks 21757:22514.
This includes:
- development for event-displays of ALICE and CMS since 5.18 in eve/,
gl/ and gui/;
- many new tutorials and demos for eve/;
- fix in TQObject to support class-signals from all base-classes.
Revision
19738 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Aug 30 20:42:36 2007 UTC (7 years, 4 months ago) by
rdm
Original Path:
trunk/gl/src/TGLSAViewer.cxx
File length: 22724 byte(s)
Diff to
previous 19736
From Matevz:
Add new menubar check-entry kGLEditObject that toggles between
editing of PhysicalShapes or original objects in response to
selection being changed. Add function ToggleEditObject() for
external control of this behaviour.
Use standard main-frame ctor argument 'const TGWindow*' instead of 'TGFrame*'.
Revision
19153 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sat Jun 23 21:23:22 2007 UTC (7 years, 7 months ago) by
brun
Original Path:
trunk/gl/src/TGLSAViewer.cxx
File length: 21889 byte(s)
Diff to
previous 19053
From Matevz:
1. TGLViewer performs internal loop on pad-primitives.
2. Timur: generalization of gl-plot-painters to allow external access.
3. Support usage of gl-plot-painters in gl-viewer.
4. Provide a default gl-sharing context for resource optimization.
Revision
19000 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jun 11 19:56:34 2007 UTC (7 years, 7 months ago) by
brun
Original Path:
trunk/gl/src/TGLSAViewer.cxx
File length: 21426 byte(s)
Diff to
previous 18879
From Matevz:
Major restructuring of GL viewer-scene relationship (Matevz)
===================================================
The main idea was to generalize current GL infrustructure so that the
following features can be done in the future:
1. Full pad rendering via GL including 3D histo/func painters and 2D graphics.
2. Implementation of GL canvas (with independent viewers serving as pads).
3. Multi-view event-visualization front-end.
4. Inclusion of external scenes (non-ROOT-gl) in ROOT viewer.
Rendering of ROOT scenes in external GL frameworks.
Changes on the code level
-------------------------
0. Extend current scene/viewer classes into a 2-level class hierarchy.
New classes TGLViewerBase and TGLSceneBase.
1. Allow scenes to be shared among viewers. View-specific scene-cache
needs to be kept at the viewer side.
2. Viewer now manages a list of scenes. It is possible to put together
a combination of scenes (e.g. one showing geometry, another one tracks
and yet another clusters). Each scene can define its own clipping object.
3. Provide API for fine-grained control over rendered object removal,
creation and update. This allows for efficient scene-updates.
4. Disentangle selection, clipping and other markup objects from
within viewer-scene singleton.
New classes TGLClipSet, TGLManipSet.
6. Disentangle selection management.
7. Separate overlay rendering to allow any number of active GL-GUI
elements (like manipulators are now).
New classes TGLOverlayElement.
8. Trailing white space has been removed in all files.
Restructure low-level interface to OpenGL (Timur)
=========================================
1. Allow sharing GL resources among viewers.
2. Do not bind GL-output (windowed or offscreen) to ROOT GUI.
New classes TGLContext, TGLFormat, TGLWidget.
This oboletes TGLKernel and TVirtualGL classes.
Revision
18866 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed May 23 13:37:22 2007 UTC (7 years, 8 months ago) by
brun
Original Path:
trunk/gl/src/TGLSAViewer.cxx
File length: 21184 byte(s)
Diff to
previous 16865
From Ilka:
The line fGedEditor->SetModel(fPad, this, kButton1Down); takes place twice in TGLSAViewer creation: in the constructors and in the Show() method that takes place also in them. In the attached patch I removed this line from both constructors.
Revision
16865 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Nov 22 12:31:55 2006 UTC (8 years, 2 months ago) by
couet
Original Path:
trunk/gl/src/TGLSAViewer.cxx
File length: 21285 byte(s)
Diff to
previous 16496
- TGLSAViewer::SavePicture is now a public method. Therefore it is now
possible to generate gif files of the GL-Viewer from the command line
doing:
root [1] TGLSAViewer *glv = (TGLSAViewer *)gPad->GetViewer3D();
root [2] glv->SavePicture("gl.gif");
TGLSAViewer::SavePicture has also been modified to allow to generate
animated gif files. Example:
root [1] TGLSAViewer *glv = (TGLSAViewer *)gPad->GetViewer3D();
root [2] glv->SavePicture("gl.gif+");
root [3] glv->SavePicture("gl.gif+");
root [4] glv->SavePicture("gl.gif+");
Between each call to glv->SavePicture("gl.gif+"), the GL-Viewer display
has been modified. Then gl.gif is an amination build from the various
images displayed in the GL-Viewer.
Revision
16452 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Oct 5 18:19:09 2006 UTC (8 years, 3 months ago) by
brun
Original Path:
trunk/gl/src/TGLSAViewer.cxx
File length: 21213 byte(s)
Diff to
previous 16346
From Matevz and Timur:
* gl/inc/TGLViewer.h:
* gl/src/TGLViewer.cxx:
Added customizations of update/redraw behaviour:
1) flag 'Bool_t fIgnoreSizesOnUpdate' that tells the viewer
not to check the size of the object in AddObject();
2) member 'Color_t fClearColor' that allows user to select the
background color;
3) method 'void UpdateScene()' thet forces the scene update via
calling 'fPad->Paint()';
4) method 'virtual void RefreshPadEditor(TObject* changed=0)' that
allows updates to be sent to the built-in editor when the
internal state changes.
* gl/inc/TGLSAViewer.h:
* gl/src/TGLSAViewer.cxx:
Implemented virtual 'TGLSAViewer::RefreshPadEditor()'. In all
calls to 'TGedEditor::SetModel()' replaced third argument 'Int_t
event' from 'kButton1' to 'kButton1Down'.
* gl/inc/TGLViewerEditor.h:
* gl/src/TGLViewerEditor.cxx:
Added widgets controlling 'fClearColor', 'fIgnoreSizesOnUpdate',
'fResetCamerasOnUpdate' and 'fResetCameraOnDoubleClick'; added
buttons for invoking 'UpdateScene()' and 'CameraHome()' methods.
* gl/src/TGLScene.cxx:
Removed code setting the glClearColor in 'Draw()'.
Revision
16090 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Aug 23 14:39:40 2006 UTC (8 years, 5 months ago) by
brun
Original Path:
trunk/gl/src/TGLSAViewer.cxx
File length: 23943 byte(s)
Diff to
previous 15754
From Matevz Tadel:
1) Implementation of two-level (secondary) selection
Rendering objects can provide a new level of interactivity, for
example a TPointSet3D holding a set of clusters can attach a pointer
to original cluster to each point and receive notifications when a
specified cluster was clicked.
Secondary selection is activated by Control-Left clicking into the
GL window.
2) Improve control over camera-reset behaviour
Allow user to prevent camera reset on scene update and
double-click.
3) Improvements in TPointSet3D(GL)
Detailed ChangeLog
==================
* base/inc/TVirtualViewer3D.h:
Added virtual methods 'void ResetCameras(){}' and 'void
ResetCamerasAfterNextUpdate(){}'.
* gl/inc/TGLScene.h:
* gl/src/TGLScene.cxx:
Implemented two-level selection. It is enabled for next selection
pass by calling ActivateSecSelect().
DoSelect() does not change the selected object but only indicates
which object has been selected by setting new member
'TGLPhysicalShape *fSelectionResult'. Caller (TGLViewer) must call
new method 'void ApplySelection()' to actually change the selected
object to the last selection result.
Changed declaration of selection buffer from being a static varable
within DoSelect() to data-member. This allows post-processing of
selection records needed by two-level selection.
* gl/inc/TGLCamera.h:
* gl/inc/TGLOrthoCamera.h:
* gl/inc/TGLPerspectiveCamera.h:
* gl/src/TGLCamera.cxx:
* gl/src/TGLOrthoCamera.cxx:
* gl/src/TGLPerspectiveCamera.cxx:
Added Bool_t argument with default value to:
virtual void TGLCamera::Setup(const TGLBoundingBox & box, Bool_t
reset=kTRUE) = 0;
By setting it to false one can change camera parameters for new
scene bounding-box without repositioning the camera.
Added 'Bool_t checkSize' argument to OfInterest().
This is relevant for marker-classes which can have small
volume/length but are still visible as they are rendered in
pixel-coordinates. Value of this argument is needed in TGLScene
(DestroyPhysicals) and TGLViewer (AddObject). It is obtained by
calling virtual method TGLLogicalShape::IgnoreSizeForOfInterest().
This method returns false by defalut and is overriden in
TGLPolyMarker and TPointSet3DGL.
* gl/inc/TGLViewer.h:
* gl/src/TGLViewer.cxx:
Added controls for camera-reset behaviour.
Data-members: 'Bool_t fResetCamerasOnUpdate', 'Bool_t
fResetCamerasOnNextUpdate', 'Bool_t fResetCameraOnDoubleClick'.
Methods: 'ResetCameras()', 'ResetCamerasAfterNextUpdate()',
'ResetCurrentCamera()'.
Added an argument to 'void PostSceneBuildSetup(Bool_t resetCameras).
Added Bool_t return-value to RequestSelect(). It returns true if
result of the selection is different then fSelectedPhysical.
Added method ApplySelection() to interface with TGLScene
selection state. This is called from event-handling functions in
TGLViewer.
Added key-binding for 'Home': ResetCurrentCamera().
* gl/inc/TGLSAViewer.h:
* gl/src/TGLSAViewer.cxx:
Added description of new functionality to fgHelpText.
MSVC was complaining about fgHelpText being too long: I split it
into fgHelpText1 and fgHelpText2.
* gl/inc/TGLDrawFlags.h:
* gl/src/TGLDrawFlags.cxx:
Added members 'Bool_t fSelection' and 'Bool_t
fSecSelection' allowing passing of current selection state to
renderers. This is needed to allow different render-paths during
(secondary) selection.
We should consider passing TGLScene* and/or TGLViewer* down to
DirectDraw() of individual renderers.
* gl/src/TGLDrawable.cxx:
In ShouldCache() return false if secondary selection is in progress.
* gl/src/TGLPhysicalShape.cxx:
Handle new members in TGLDrawFlags.
* gl/inc/TGLLogicalShape.h:
* gl/src/TGLLogicalShape.cxx:
Added three new functions:
1) virtual Bool_t SupportsSecondarySelect() const { return kFALSE; }
This is called by TGLScene::DoSelect() to check is object that was
the result of primary selection supports secondary selection.
2) virtual void ProcessSelection(UInt_t* ptr, TGLViewer*, TGLScene*);
It is called back from TGLViewer after successful secondary
selection. As the object that does the rendering is the only one
that actually knows how the object sub-parts were named it has
to interpret the results.
Both of these should be overriden in classes that support
secondary selection, for example see TPointSet3DGL.
3) virtual Bool_t IgnoreSizeForOfInterest() const { return kFALSE; }
Signals to TGLScene and TGLViewer that volume/lenght of this
class' bounding box should not be considered when checking if
objects of this class are of interest to current camera.
* gl/inc/TGLObject.h:
* gl/src/TGLObject.cxx:
Changed second argument of function:
Bool_t SetModelCheckClass(TObject* obj, const Text_t* classname);
to 'TClass* cls'. This is much more efficient.
* g3d/inc/TPointSet3D.h:
* g3d/src/TPointSet3D.cxx:
Added support for per-point designations (one TObject* per point;
via casting it can be set to anything).
New virtual method 'void PointSelected(Int_t n)' that is called
back after successful secondary selection in TGLViewer (via
virtual TGLLogicalShape::ProcessSelection()).
* gl/inc/TPointSet3DGL.h:
* gl/src/TPointSet3DGL.cxx:
Added support for per-point selection. Point-sizes are taken into
account during selection (by modifying the projection
matrix).
Implemented 'virtual Bool_t TGLDrawable::ShouldCache()' to disable
caching when in primary selection (point-size improvements).
Cross-like marker types are now supported to some extent.
Improved structure of rendering code.
Override 'virtual Bool_t TGLLogicalShape::IgnoreSizeForOfInterest()'
to return true.
Multiply TAttMarker::GetMarkerSize() by 5 before applying.
* gl/inc/TGLPolyMarker.h:
Override 'virtual Bool_t TGLLogicalShape::IgnoreSizeForOfInterest()'
to return true.
Revision
14580 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Apr 7 08:43:59 2006 UTC (8 years, 9 months ago) by
brun
Original Path:
trunk/gl/src/TGLSAViewer.cxx
File length: 20566 byte(s)
Diff to
previous 14336
From Matevz Tadel:
Introduce a new set of classes dedicated to event visualisation.
TGLObject: base-class for direct GL renderers
TAttBBox: interface, helps maintain/calculate bounding-box
needed for TGLObject (see TPointSet3D and TPointSet3DGL)
TPointSet3D: a demo class for direct GL rendering
TPointSet3DGL:
Mods in existing classes to interface the new classes
Revision
14336 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Mar 20 21:43:44 2006 UTC (8 years, 10 months ago) by
pcanal
Original Path:
trunk/gl/src/TGLSAViewer.cxx
File length: 19192 byte(s)
Diff to
previous 14237
Reduce direct dependencies on TClass.h, TROOT.h and TStreamerInfo.h.
Warning: This means that some file that relied on the indirect
inclusion of these header file might now fail to compile with
an error message mention that gROOT is no known or that TClass,
TROOT or TStreamerInfo is incompletely defined. Simply add the
proper include directive.
Revision
14237 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Mar 13 09:33:50 2006 UTC (8 years, 10 months ago) by
brun
Original Path:
trunk/gl/src/TGLSAViewer.cxx
File length: 19173 byte(s)
Diff to
previous 13936
From Timur:
Changes in TGLEditor, TGLColorEditor and TGLGeometryEditor
TGLSAViewer - GUI modified - old clip editor/guides
editor/lights - replaced by TGLViewerEditor.
GUI now works as in TPad's viewer - if you select
TGLViewer (shift + left click on a free scene space),
you - can see TGLViewerEditor,
if you select object in GL scene, you can see color
editor and geometry editor for this object.
TGLViewerEditor can be used in a pad and in a TGLSAFrame.
Revision
13936 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jan 26 11:59:42 2006 UTC (8 years, 11 months ago) by
brun
Original Path:
trunk/gl/src/TGLSAViewer.cxx
File length: 19014 byte(s)
Diff to
previous 13636
From Richard:
Implement manipulators (translate/scale/rotate) for all shapes in
viewer (previously only clip shapes could use them).
Behaviour:
i) Single selection in viewer - either a normal / clip shape or none.
Current manipulator is attached (and shown) when attached to selection.
ii) Normal viewer shapes are selected using Shift+Left Mouse button (and
have bounding box drawn).
iii) Clip shapes are shown/selected by checking 'Show/Edit' option on
the Scene/Clipping tab of the GUI.
iv) Any exisiting (normal/clip) selection is cleared when making new
choice.
v) (Transparent) clip shapes cannot be selected (picked) directly in the
viewer - normal shape override this.
Rotation properties of shapes are not reflected in GUI currently.
Revision
13495 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Dec 5 17:34:45 2005 UTC (9 years, 1 month ago) by
brun
Original Path:
trunk/gl/src/TGLSAViewer.cxx
File length: 18840 byte(s)
Diff to
previous 13316
From Richard:
Fixes for perspective camera constraints. Camera has a level floor
formed from 2 of the 3 world axes - avoids tipping of horizon.
Previously only one combination was supported making it impossible to
navigate round some detectors naturally, or stand them on their 'feet'
supports.
'Projections' menu is now renamed 'Camera' and has three simple
perspective combinations:
Perspective (Floor XOZ) - default.
Perspective (Floor YOZ)
Perspective (Floor XOY)
in addition to 3 ortho combinations. Also updated help and default clips
to be more sensible with new default.
Revision
13250 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Nov 16 16:41:59 2005 UTC (9 years, 2 months ago) by
brun
Original Path:
trunk/gl/src/TGLSAViewer.cxx
File length: 17009 byte(s)
Diff to
previous 13160
From Richard:
Update to axes in GL viewer - in response to requests from Witold
Pokorski.
i) Added options to draw axes through origin (not depth clipped), as
well at edge (depth clipped).
ii) Added option to show a single reference marker (orange sphere) at
location - for debugging geometries.
iii) Improved draw quality of axes - similar to manipulators.
iv) These moved to new "Guides" tab under "Scene" for GUI.
Revision
13160 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Nov 8 19:18:18 2005 UTC (9 years, 2 months ago) by
brun
Original Path:
trunk/gl/src/TGLSAViewer.cxx
File length: 16159 byte(s)
Diff to
previous 13005
From Richard:
Various updates to cameras:
i) Larger range/sensitivities
ii) Better auto-framing for ortho cameras
iii) Better lighting - especially for ortho views
iv) Some more debug aids for scene center, origin and light positions -
enabled in debug mode (d key)
Revision
13005 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Oct 24 14:49:33 2005 UTC (9 years, 3 months ago) by
brun
Original Path:
trunk/gl/src/TGLSAViewer.cxx
File length: 16159 byte(s)
Diff to
previous 12902
From Richard:
i) Add rotation manipulator.
ii) Allow direct manipulation of clipping plane - rotate/translate.
Cannot scale - makes no sense.
Note:
iii) Rotation interaction requires some improvement - difficult when
ring is almost parallel with eye line of camera.
iv) Still need to extend for all selected objects - requires some
internal rearrangement of TGLScene/TGLViewer
Revision
12892 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Oct 3 15:19:35 2005 UTC (9 years, 3 months ago) by
brun
Original Path:
trunk/gl/src/TGLSAViewer.cxx
File length: 17110 byte(s)
Diff to
previous 12466
From Richard:
First implementation for interactive clipping, using OpenGL clip planes.
Initially we have plane & box - others later. See Help for description.
Known Bugs/Issues:
All in GUI:
i) Edit box takes keyboard focus and does not return to viewer pane when
clicked in. Hence all keys in viewer break - an existing general viewer
problem.
ii) Initial layout does not correctly hide the plane/box properties
panels, or scale for V side scroll bar.
Missing Features:
iii) CSG final pass and/or solid cappings.
iv) Can't rotate the box - need a TGLRotManip class soon.
v) Should be able to show and manipulate plane in similar fashion as
box.
vi) Trans/scale/rotate manipulators should be availible for any selected
object.
Revision
12459 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Added
Wed Aug 10 16:26:36 2005 UTC (9 years, 5 months ago) by
brun
Original Path:
trunk/gl/src/TGLSAViewer.cxx
File length: 15383 byte(s)
From Richard:
make TVirtualViewer TObject derv. so TPad can use without modifications.
Also removed last parts of TVirtualGL unrelated to context/draws so it
can be replaced with new TGLManager.
Added:
TGLSAViewer & TGLSAFrame - standalone viewer + GUI main frame.
TGLOutput for containing capture (pdf/eps output).
TX3DFrame (x3d mod) to avoid diamond TObject inheritance from GUI +
TVV3D interface
Removed: TViewerOpenGL
This form allows you to request diffs between any two revisions of this file.
For each of the two "sides" of the diff,
enter a numeric revision.