Log of /trunk/graf3d/gl/inc/TGLViewerBase.h
Parent Directory
Revision
43018 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Feb 16 03:13:21 2012 UTC (2 years, 11 months ago) by
matevz
File length: 5609 byte(s)
Diff to
previous 42974
Rewrite highlight rendering so that the stencil-control logic lives on the
TGLScene level, within new function TGLScene::RenderHighlight(). A set of new
functions called RenderXXXForHighligt() was introduced in TGLViewer/Scene.
This works around the problems with stencil buffer
coherency during multi-pass rendering with multiple clipping planes.
Some tweaking was necessary in TEve-GL classes that implement specialized
DrawHighlight() virtual from TGLLogicalShape.
Revision
42974 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Feb 12 07:22:45 2012 UTC (2 years, 11 months ago) by
matevz
File length: 5563 byte(s)
Diff to
previous 34006
Generalize selection handling for scenes:
- By adding TGLLogicalShape* to TGLSelectRecord the scene sub-classes now have
the ability to lie pretty badly to TGLEventHandler about what actually got
selected and thus achieve great flexibility in managment of scenesobject
collections that do not conform to standard ROOT / EVE / TPad paradigms.
Generalize rendering order and selection/highlight handling.
- Rendering order of opaque/transparent and non-selected/selected objects can
be set via TGLRnrCtx::RenderOrder(), enum ERenderOrder.
- Selection of transparent objects via TGLRnrCtx::SelectTransparents(), enum
ESelectabilityOfTransparents.
- Rendering of highlight halo can be controlled via:
- TGLRnrCtx::SetHighlightDepthRangeOffset(Float_t);
- TGLRnrCtx::SetHighlightedObjectDepthRangeOffset(Float_t);
This should really be rewritten either to use stencil buffer or shaders.
Revision
34006 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jun 21 10:36:05 2010 UTC (4 years, 7 months ago) by
matevz
File length: 5382 byte(s)
Diff to
previous 32867
Merge the following revisions from branches/dev/fireworks:
33974, 33980, 33983, 33984, 33994
33974
=====
Author: alja
Date: Thu Jun 17 22:12:00 2010
New Revision: 33974
URL: http://root.cern.ch/viewvc?rev=33974&root=root&view=rev
Log:
TEveCaloLegoGL:
Fix picking of rebinned 3D towers.
TEveCalo3DGL:
Fix highlight rendering.
Modified:
branches/dev/fireworks/graf3d/eve/src/TEveCalo3DGL.cxx
branches/dev/fireworks/graf3d/eve/src/TEveCaloLegoGL.cxx
33980
=====
Author: matevz
Date: Fri Jun 18 18:30:34 2010
New Revision: 33980
URL: http://root.cern.ch/viewvc?rev=33980&root=root&view=rev
Log:
* TGLOverlayElement
Add state enum member to allow:
- hiding of overlay elements;
- preventing overlay events to reach them.
TGLViewerBase::RenderOverlay() not takes bitfield of states that
should be drawn.
* TGLCameraGuide
New overlay element showing axis orientation.
* TGLRnrCtx
Introduce standard functions to setup projection matrix for 2D /
screen based operations and properly applying the selection matrix
when it is active, too:
void ProjectionMatrixPushIdentity();
void ProjectionMatrixPop();
* TGLUtil
Cleanup usage of static float arrays in surroundings of TGLUtil.
Added:
branches/dev/fireworks/graf3d/gl/inc/TGLCameraGuide.h (with props)
branches/dev/fireworks/graf3d/gl/src/TGLCameraGuide.cxx (with props)
Modified:
branches/dev/fireworks/graf3d/gl/inc/LinkDef.h
branches/dev/fireworks/graf3d/gl/inc/TGLCamera.h
branches/dev/fireworks/graf3d/gl/inc/TGLManip.h
branches/dev/fireworks/graf3d/gl/inc/TGLOverlay.h
branches/dev/fireworks/graf3d/gl/inc/TGLRnrCtx.h
branches/dev/fireworks/graf3d/gl/inc/TGLUtil.h
branches/dev/fireworks/graf3d/gl/inc/TGLViewerBase.h
branches/dev/fireworks/graf3d/gl/src/TGLAnnotation.cxx
branches/dev/fireworks/graf3d/gl/src/TGLLightSet.cxx
branches/dev/fireworks/graf3d/gl/src/TGLManip.cxx
branches/dev/fireworks/graf3d/gl/src/TGLRnrCtx.cxx
branches/dev/fireworks/graf3d/gl/src/TGLRotateManip.cxx
branches/dev/fireworks/graf3d/gl/src/TGLScaleManip.cxx
branches/dev/fireworks/graf3d/gl/src/TGLTransManip.cxx
branches/dev/fireworks/graf3d/gl/src/TGLUtil.cxx
branches/dev/fireworks/graf3d/gl/src/TGLViewer.cxx
branches/dev/fireworks/graf3d/gl/src/TGLViewerBase.cxx
Propchange: branches/dev/fireworks/graf3d/gl/inc/TGLCameraGuide.h
('svn:eol-style' added)
Propchange: branches/dev/fireworks/graf3d/gl/inc/TGLCameraGuide.h
('svn:keywords' added)
Propchange: branches/dev/fireworks/graf3d/gl/src/TGLCameraGuide.cxx
('svn:eol-style' added)
Propchange: branches/dev/fireworks/graf3d/gl/src/TGLCameraGuide.cxx
('svn:keywords' added)
33983
=====
Author: matevz
Date: Fri Jun 18 19:19:47 2010
New Revision: 33983
URL: http://root.cern.ch/viewvc?rev=33983&root=root&view=rev
Log:
Add on/off state setter void SetBinaryState(Bool_t).
Modified:
branches/dev/fireworks/graf3d/gl/inc/TGLOverlay.h
33984
=====
Author: matevz
Date: Fri Jun 18 19:35:51 2010
New Revision: 33984
URL: http://root.cern.ch/viewvc?rev=33984&root=root&view=rev
Log:
Replace logical and with binary one.
Modified:
branches/dev/fireworks/graf3d/gl/src/TGLViewerBase.cxx
33994
=====
Author: matevz
Date: Sat Jun 19 14:09:04 2010
New Revision: 33994
URL: http://root.cern.ch/viewvc?rev=33994&root=root&view=rev
Log:
Add 3 new data-members to control mouse/arrow key handling:
Float_t fArrowKeyFactor;
Float_t fMouseDragFactor;
Float_t fMouseWheelFactor;
These are take from rootrc, eg:
OpenGL.EventHandler.ViewerCentricControls: 1
OpenGL.EventHandler.ArrowKeyFactor: -1.0
OpenGL.EventHandler.MouseDragFactor: -1.0
OpenGL.EventHandler.MouseWheelFactor: -1.0
Modified:
branches/dev/fireworks/graf3d/gl/inc/TGLEventHandler.h
branches/dev/fireworks/graf3d/gl/src/TGLEventHandler.cxx
Revision
32867 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Apr 1 17:07:30 2010 UTC (4 years, 9 months ago) by
matevz
File length: 5353 byte(s)
Diff to
previous 32338
Add to TGLViewerBase the following function:
TGLLogicalShape* FindLogicalInScenes(TObject* id);
that allows overlay elements to get GL rendering objects.
Revision
32338 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Feb 12 17:11:34 2010 UTC (4 years, 11 months ago) by
matevz
File length: 5275 byte(s)
Diff to
previous 29676
Introduce virtual function:
void TGLViewerBase::SetupClipObject()
that is called half-way through the TGLViewer::PreRender() -- when
overall bounding box is known but the individual scene visibility has
not been determined yet. Thus scene visibility can be properly
determined if the clipping object changes due to a large change in
overall bounding box.
This is overriden in TGLViewer where all clipping objects (plane and
box) need to be modified.
Move auto-clip-update flag from TGLViewer to TGLClipSet so that the
TGLClipSetEditor can modify it.
Revision
29676 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Aug 4 16:18:07 2009 UTC (5 years, 5 months ago) by
matevz
File length: 5239 byte(s)
Diff to
previous 28885
Add support for control over viewer-global point-size and line-width
scaling. Additionally, allow wireforame and outline line widths to be
specified separately (on viewer / scene / scene-info level).
This will allow for scaling of pixel-based objects (lines and points) when
saving of screenshots with very high resolution is
implemented.
Basic support is impemented across TGLViewer, TGLScene, TGLRnrCtx and
TGLUtil.
Classes that used glPointSize and glLineWidth were modified to call
corresponding static function in TGLUtil class.
Controls were added to TGLViewerEditor (under Style tab).
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: 4754 byte(s)
Diff to
previous 27577
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
27577 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Feb 23 14:34:36 2009 UTC (5 years, 11 months ago) by
matevz
File length: 4699 byte(s)
Diff to
previous 27560
TEveElement
===========
Add the following *MENU* functions:
DumpSourceObject()
PrintSourceObject()
ExportSourceObjectToCINT()
This allows direct interaction with the original object being
represented by the EVE-element.
TGLViewer, TGLEventHandler and TGLViewerEditor
==============================================
Add button to enter into the "Annotation" pick-mode.
Add methods allowing easy deletion of all annotations.
tutorials/eve/alice_esd.C
=========================
Remove annotations when loading a new event.
Revision
27560 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Feb 20 21:41:28 2009 UTC (5 years, 11 months ago) by
matevz
File length: 4590 byte(s)
Diff to
previous 26394
TGLAnnotation
-------------
New class for rendering of GL labels.
User has the possibility to chanage text, drag it or delete it.
TGLEventHandler
TGLViewer
---------------
Add annotation pick mode.
TGLFontManager
--------------
Add getters for font description.
Revision
26394 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Nov 23 14:35:25 2008 UTC (6 years, 2 months ago) by
matevz
File length: 4574 byte(s)
Diff to
previous 24316
TGLClip
=======
In TGLClipSet::SetClipState() negate also the distance from plane.
There was state mismatch between TGLClipPlane and TGLClipSetEditor.
Other files
===========
Consistent documentation-markup and white-space.
Revision
24316 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Jun 17 19:48:30 2008 UTC (6 years, 7 months ago) by
matevz
File length: 4599 byte(s)
Diff to
previous 23869
TGLViewerBase
=============
Break render into two pieces to give sub-classes more control over
rendering procedure.
TGLViewer
=========
Render axes/guides before selected/highlighte objects so that
depth-test can be honoured (if requested).
Revision
23667 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue May 6 17:30:36 2008 UTC (6 years, 8 months ago) by
matevz
File length: 4529 byte(s)
Diff to
previous 23140
From Alja:
TEveLegoEventHandler - New class for camera event handling.
TEveCaloLegoGL - Remove code which changed GL model-view matrix.
TGLViewer, TGLViewerBase - New getters.
TGLCamera - Add function GetTheta().
tutorials/eve/cms_calo.C - Structural improvements. Demonstrate
TEveLegoEventHandler.
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: 4476 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/inc/TGLViewerBase.h
File length: 4476 byte(s)
Diff to
previous 20882
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
19644 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Aug 19 10:07:16 2007 UTC (7 years, 5 months ago) by
rdm
Original Path:
trunk/gl/inc/TGLViewerBase.h
File length: 4358 byte(s)
Diff to
previous 19433
From Matevz:
Add Bool_t fChanged that reflects if the viewer needs to be
redrawn due to internal state changes of scenes.
AddScene() now returns TGLSceneInfo* holding viewer-specific
information of the newly created scene.
Revision
19433 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jul 23 15:08:39 2007 UTC (7 years, 6 months ago) by
rdm
Original Path:
trunk/gl/inc/TGLViewerBase.h
File length: 4097 byte(s)
Diff to
previous 19049
From Matevz:
Provide Add/RemoveOveralElement() functions.
Improve viewer-scene inter-awareness in view of automatic scene destruction.
New method MergeSceneBBoxes(TGLBoundingBox& bbox) needed for
camera-interest bootstrapping.
Revision
19049 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jun 18 07:02:16 2007 UTC (7 years, 7 months ago) by
brun
Original Path:
trunk/gl/inc/TGLViewerBase.h
File length: 3890 byte(s)
Diff to
previous 19000
From Matev and Timur:
Timur:
1. Allow unique identification of shared GL contexts via
TGLContextIdentity class.
Matevz:
1. Improved overlay selection handling.
2. Perform GL context check before rendering, possibly invalidating
registered display-lists.
3. Minimize updates for window expose and resize events.
Revision
19000 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Added
Mon Jun 11 19:56:34 2007 UTC (7 years, 7 months ago) by
brun
Original Path:
trunk/gl/inc/TGLViewerBase.h
File length: 3698 byte(s)
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.
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.