[root] / trunk / graf3d / gl / src / TGLViewer.cxx Repository:
ViewVC logotype

Log of /trunk/graf3d/gl/src/TGLViewer.cxx

Parent Directory Parent Directory


Links to HEAD: (view) (download) (as text) (annotate)
Sticky Revision:

Revision 47027 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Nov 4 06:17:34 2012 UTC (2 years, 2 months ago) by matevz
File length: 64167 byte(s)
Diff to previous 44695
Add support for mac retina display. In practice it means we need to support a
scaled coordinate system within GL windows. We use full resolution in GL while
GUI and window system work in points that are 2x2 pixels.

Revision 44695 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 15 01:01:39 2012 UTC (2 years, 7 months ago) by matevz
File length: 63981 byte(s)
Diff to previous 44694
If creation of frame-buffer object for saving of a screenshot fails, fallback
to using back-buffer. This can be disabled via the following rootrc setting:
  OpenGL.SavePictureFallbackToBB: off

Latest SLC5, SLC6 intel/mesa drivers seem to be good at lying that they
support FBOs and then flipping backwards once you ask them to cough up one.

Revision 44694 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 15 00:17:09 2012 UTC (2 years, 7 months ago) by matevz
File length: 63584 byte(s)
Diff to previous 43202
* TGLViewer
  Add function:
    TGLViewer::ReinitializeCurrentCamera(TGLVector3 fwd, TGLVector3 up);
  allowing the user to setup a non-standard camera base.

Revision 43202 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 2 03:51:41 2012 UTC (2 years, 10 months ago) by matevz
File length: 63029 byte(s)
Diff to previous 43018
Bugfix: scene guides were drawn during object selection and there was a
missing check for zero-size name-stack size. So, hovering over an axis or
camera center sphere resulted in a crash.

* TGLSelectBuffer - return name-stack size from Set() method.
* TGLViewerBase - check name-stack size before accessing elements.
* TGLViewer - do not draw non-scene objects in rendering for selection.

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: 63028 byte(s)
Diff to previous 42979
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 42979 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Feb 13 03:17:03 2012 UTC (2 years, 11 months ago) by matevz
File length: 63053 byte(s)
Diff to previous 42974
Implement highlighting using the stencil buffer.
Produces minor artefacts when more than one clipping plane is active but
performs much better for all other cases.

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: 63816 byte(s)
Diff to previous 40175
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 40175 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jul 9 18:50:06 2011 UTC (3 years, 6 months ago) by pcanal
File length: 63385 byte(s)
Diff to previous 40174
add missing #include

Revision 40174 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jul 9 04:01:42 2011 UTC (3 years, 6 months ago) by matevz
File length: 63367 byte(s)
Diff to previous 37327
In SavePicture() check environment 'OpenGL.SavePicturesViaFBO' before saving a
picture via a frame-buffer object -- this allows users to enforce saving of
images using the back-buffer.

Revision 37327 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Dec 6 12:23:33 2010 UTC (4 years, 1 month ago) by matevz
File length: 62930 byte(s)
Diff to previous 36884
Add setter for camera auto-rotator. This way TGLAutoRotator can be subclassed and attached to a viewer.

Revision 36884 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Nov 23 17:52:08 2010 UTC (4 years, 2 months ago) by matevz
File length: 62674 byte(s)
Diff to previous 36675
Remove extra includes.

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: 62746 byte(s)
Diff to previous 36373
* 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 36373 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Oct 19 17:43:35 2010 UTC (4 years, 3 months ago) by matevz
File length: 62824 byte(s)
Diff to previous 34286
Merge the following revisions from branches/dev/fireworks:
35724, 35865, 35866, 35867, 36028, 36093, 36110, 36125, 36130, 36365, 36370


35724
=====

Author: matevz
Date: Fri Sep 24 22:08:36 2010
New Revision: 35724

URL: http://root.cern.ch/viewvc?rev=35724&root=root&view=rev
Log:
Preliminary version of camera auto-rotator.

Added:
    branches/dev/fireworks/graf3d/gl/inc/TGLAutoRotator.h   (with props)
    branches/dev/fireworks/graf3d/gl/src/TGLAutoRotator.cxx   (with props)
Modified:
    branches/dev/fireworks/graf3d/gl/inc/LinkDef.h

Propchange: branches/dev/fireworks/graf3d/gl/inc/TGLAutoRotator.h
            ('svn:eol-style' added)

Propchange: branches/dev/fireworks/graf3d/gl/inc/TGLAutoRotator.h
            ('svn:keywords' added)

Propchange: branches/dev/fireworks/graf3d/gl/src/TGLAutoRotator.cxx
            ('svn:eol-style' added)

Propchange: branches/dev/fireworks/graf3d/gl/src/TGLAutoRotator.cxx
            ('svn:keywords' added)


35865
=====

Author: alja
Date: Wed Sep 29 20:38:27 2010
New Revision: 35865

URL: http://root.cern.ch/viewvc?rev=35865&root=root&view=rev
Log:

Properly convert Et to E.

Modified:
    branches/dev/fireworks/graf3d/eve/src/TEveCaloData.cxx


35866
=====

Author: alja
Date: Wed Sep 29 20:39:58 2010
New Revision: 35866

URL: http://root.cern.ch/viewvc?rev=35866&root=root&view=rev
Log:
Fix compilation warning.

Modified:
    branches/dev/fireworks/graf3d/eve/src/TEveCaloData.cxx


35867
=====

Author: alja
Date: Wed Sep 29 21:12:04 2010
New Revision: 35867

URL: http://root.cern.ch/viewvc?rev=35867&root=root&view=rev
Log:

Use cell absolute value when update TEveCaloDataHist::fMaxValE and TEveCaloDataVec::fMaxValE.

Modified:
    branches/dev/fireworks/graf3d/eve/src/TEveCaloData.cxx


36028
=====

Author: alja
Date: Fri Oct  1 18:24:15 2010
New Revision: 36028

URL: http://root.cern.ch/viewvc?rev=36028&root=root&view=rev
Log:

Anti-alias frame lines.

Modified:
    branches/dev/fireworks/graf3d/eve/src/TEveBoxGL.cxx


36093
=====

Author: matevz
Date: Tue Oct  5 21:30:57 2010
New Revision: 36093

URL: http://root.cern.ch/viewvc?rev=36093&root=root&view=rev
Log:
Complete implementation.

Modified:
    branches/dev/fireworks/graf3d/gl/inc/TGLAutoRotator.h
    branches/dev/fireworks/graf3d/gl/src/TGLAutoRotator.cxx


36110
=====

Author: matevz
Date: Wed Oct  6 13:49:26 2010
New Revision: 36110

URL: http://root.cern.ch/viewvc?rev=36110&root=root&view=rev
Log:
Add camera rotator controls to gl-viewer editor.
Put it together with stereo controls in the "Extras" tab.

Modified:
    branches/dev/fireworks/graf3d/gl/inc/TGLAutoRotator.h
    branches/dev/fireworks/graf3d/gl/inc/TGLViewer.h
    branches/dev/fireworks/graf3d/gl/inc/TGLViewerEditor.h
    branches/dev/fireworks/graf3d/gl/src/TGLAutoRotator.cxx
    branches/dev/fireworks/graf3d/gl/src/TGLViewer.cxx
    branches/dev/fireworks/graf3d/gl/src/TGLViewerEditor.cxx


36125
=====

Author: matevz
Date: Wed Oct  6 17:09:07 2010
New Revision: 36125

URL: http://root.cern.ch/viewvc?rev=36125&root=root&view=rev
Log:
Remove redundant arguments.

Modified:
    branches/dev/fireworks/graf3d/gl/src/TGLViewerEditor.cxx


36130
=====

Author: matevz
Date: Wed Oct  6 17:34:07 2010
New Revision: 36130

URL: http://root.cern.ch/viewvc?rev=36130&root=root&view=rev
Log:
* TGLAutoRotator
  Use TStopwatch to measure time between two redraws.
  Do not stop / restart the timer, keep it running.
  Improve defaults.

* TGLViewerEditor
  Allow 3 decimal digits for delta-time.

Modified:
    branches/dev/fireworks/graf3d/gl/inc/TGLAutoRotator.h
    branches/dev/fireworks/graf3d/gl/src/TGLAutoRotator.cxx
    branches/dev/fireworks/graf3d/gl/src/TGLViewerEditor.cxx


36365
=====

Author: alja
Date: Mon Oct 18 18:41:05 2010
New Revision: 36365

URL: http://root.cern.ch/viewvc?rev=36365&root=root&view=rev
Log:

TEveElement, TEveProjectionBases:
Add support for fast destruction of large number of elements (e.g. heavy ion data).

TEveRefBackPtr, TEveTrackPropagator:
Optimize TEveRefBackPtr::DecRefCount() for large number of references.

TEveElement, TEveScene, TEveGedEditor, TEveGeoNode, TEveDigitSet,
TEveArrow, TEvePointSet, TEveGeoShape:
Remove default parameter in GetObject(), GetEditorObject(), and GetRenderObject() to avoid
unnecessary creation/destruction of temporary TEveException object.

Modified:
    branches/dev/fireworks/graf3d/eve/inc/TEveArrow.h
    branches/dev/fireworks/graf3d/eve/inc/TEveDigitSet.h
    branches/dev/fireworks/graf3d/eve/inc/TEveElement.h
    branches/dev/fireworks/graf3d/eve/inc/TEveGeoNode.h
    branches/dev/fireworks/graf3d/eve/inc/TEveGeoShape.h
    branches/dev/fireworks/graf3d/eve/inc/TEvePointSet.h
    branches/dev/fireworks/graf3d/eve/inc/TEveProjectionBases.h
    branches/dev/fireworks/graf3d/eve/inc/TEveUtil.h
    branches/dev/fireworks/graf3d/eve/src/TEveElement.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveGedEditor.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveProjectionBases.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveScene.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveTrackPropagator.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveUtil.cxx


36370
=====

Author: matevz
Date: Tue Oct 19 18:50:07 2010
New Revision: 36370

URL: http://root.cern.ch/viewvc?rev=36370&root=root&view=rev
Log:
* TEveTrackPropagator:
  Fix calculation of:
  - fractional step when approaching a reference point;
  - track length when using helix propagator.

* track.C:
  Add test-case from ILC display Druid that was causing problems.

Modified:
    branches/dev/fireworks/graf3d/eve/src/TEveTrackPropagator.cxx
    branches/dev/fireworks/tutorials/eve/track.C

Revision 34286 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jul 1 20:38:57 2010 UTC (4 years, 6 months ago) by rdm
File length: 62093 byte(s)
Diff to previous 34246
fix format errors related to TString::Form(), TString::Format(), Form()
and Printf().

Revision 34246 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 30 13:38:45 2010 UTC (4 years, 6 months ago) by brun
File length: 62047 byte(s)
Diff to previous 34245
Fix missing argument in format statements

Revision 34245 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 30 13:36:29 2010 UTC (4 years, 6 months ago) by brun
File length: 62042 byte(s)
Diff to previous 34006
Fix format in warning and error statements

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: 62026 byte(s)
Diff to previous 33864
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 33864 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jun 14 09:47:19 2010 UTC (4 years, 7 months ago) by matevz
File length: 61961 byte(s)
Diff to previous 33124
Merge the following revisions from the fireworks branch:
33631, 33666, 33668, 33690, 33700, 33701, 33702, 33704, 33751, 33753,
33767, 33770, 33774, 33787, 33789, 33790, 33791, 33792, 33796, 33798,
33804, 33817, 33823, 33825

gl/:
----
- extensions for transparency handling in TGLUtil;
- allow disabling of internal viewer selection;
- allow fixing of default camera center;
- fix global light placement -- it was only correct for XoZ floor or
  when scene center was at the origin.

eve/:
-----
- propagation of main transparency to projected replicas and to
  compound members;
- when projecting TEveStraightLineSet in RhoZ, break lines crossing
  the separating plane (required change of internal representation);
- anti-flickering support for TEveBoxSet;
- proper multiple-selection handling in TEveCalo classes;
- small new features, bug fixes in TEveCalo classes.


33631
=====

Author: alja
Date: Fri May 28 12:50:27 2010
New Revision: 33631

URL: http://root.cern.ch/viewvc?rev=33631&root=root&view=rev
Log:
Fix bug in tool tip.

Modified:
    branches/dev/fireworks/graf3d/eve/src/TEveCaloData.cxx


33666
=====

Author: matevz
Date: Mon May 31 13:41:54 2010
New Revision: 33666

URL: http://root.cern.ch/viewvc?rev=33666&root=root&view=rev
Log:
Propagate main transparency the same way as main color is propagated:

- from projectables to projecteds;

- in CopyVizParams();

- in TEveCompound to children depending on the following CSC bit settings:
   kCSCBApplyMainTransparencyToAllChildren
   kCSCBApplyMainTransparencyToMatchingChildren


In TEveElementList add member 'Bool_t fDoTransparency' (analoguous to
fDoColor).

Modified:
    branches/dev/fireworks/graf3d/eve/inc/TEveCompound.h
    branches/dev/fireworks/graf3d/eve/inc/TEveElement.h
    branches/dev/fireworks/graf3d/eve/inc/TEveProjectionBases.h
    branches/dev/fireworks/graf3d/eve/src/TEveCompound.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveElement.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveProjectionBases.cxx


33668
=====

Author: matevz
Date: Mon May 31 15:44:20 2010
New Revision: 33668

URL: http://root.cern.ch/viewvc?rev=33668&root=root&view=rev
Log:
In TEveelement introduce Bool_t members fCanEditMainColor and
fCanEditMainTransparency. The corresponding base-class functions now
return the value of these data members.

In most sub-classes that require editng of main color and transparency
it was now enough to set these data-members to kTRUE in constructors.

Further, this allows per object setting of color / transparency
editability via:
   void SetEditMainColor(Bool_t);
   void SetEditMainTransparency(Bool_t);

Modified:
    branches/dev/fireworks/graf3d/eve/inc/TEveArrow.h
    branches/dev/fireworks/graf3d/eve/inc/TEveCalo.h
    branches/dev/fireworks/graf3d/eve/inc/TEveDigitSet.h
    branches/dev/fireworks/graf3d/eve/inc/TEveElement.h
    branches/dev/fireworks/graf3d/eve/inc/TEveGeoShape.h
    branches/dev/fireworks/graf3d/eve/inc/TEveShape.h
    branches/dev/fireworks/graf3d/eve/inc/TEveText.h
    branches/dev/fireworks/graf3d/eve/src/TEveArrow.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveCalo.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveDigitSet.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveElement.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveGeoShape.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveShape.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveText.cxx


33690
=====

Author: matevz
Date: Tue Jun  1 13:07:46 2010
New Revision: 33690

URL: http://root.cern.ch/viewvc?rev=33690&root=root&view=rev
Log:
Add transparency argument to TGLUtil:
   RenderPolyMarkers(...)
   RenderPolyLine(...)

In eve/ use Char_t for transparency (as it is in gl/).
Until now UChar_t was used in eve/.

Modified:
    branches/dev/fireworks/graf3d/eve/inc/TEveCalo.h
    branches/dev/fireworks/graf3d/eve/inc/TEveCaloLegoOverlay.h
    branches/dev/fireworks/graf3d/eve/inc/TEveCompound.h
    branches/dev/fireworks/graf3d/eve/inc/TEveDigitSet.h
    branches/dev/fireworks/graf3d/eve/inc/TEveElement.h
    branches/dev/fireworks/graf3d/eve/inc/TEveGeoNode.h
    branches/dev/fireworks/graf3d/eve/inc/TEveProjectionBases.h
    branches/dev/fireworks/graf3d/eve/inc/TEveTriangleSet.h
    branches/dev/fireworks/graf3d/eve/inc/TEveUtil.h
    branches/dev/fireworks/graf3d/eve/src/TEveCaloLegoEditor.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveCaloLegoOverlay.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveCaloVizEditor.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveCompound.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveDigitSet.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveElement.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveElementEditor.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveGeoNode.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveLineGL.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveProjectionBases.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveRGBAPalette.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveStraightLineSetGL.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveTrackGL.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveTrackProjectedGL.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveUtil.cxx
    branches/dev/fireworks/graf3d/gl/inc/TGLUtil.h
    branches/dev/fireworks/graf3d/gl/src/TGLUtil.cxx
    branches/dev/fireworks/graf3d/gl/src/TPointSet3DGL.cxx


33700
=====

Author: matevz
Date: Tue Jun  1 18:55:06 2010
New Revision: 33700

URL: http://root.cern.ch/viewvc?rev=33700&root=root&view=rev
Log:
Do not overload TGLUtil::Color() for setting alpha and transparency --
name the functions ColorAlpha() and ColorTransparency().

In TEveStraightLineSetGL pass main-transparency also as transparency
of the marker.

Modified:
    branches/dev/fireworks/graf3d/eve/src/TEveStraightLineSetGL.cxx
    branches/dev/fireworks/graf3d/gl/inc/TGLUtil.h
    branches/dev/fireworks/graf3d/gl/src/TGLPhysicalShape.cxx
    branches/dev/fireworks/graf3d/gl/src/TGLUtil.cxx
    branches/dev/fireworks/graf3d/gl/src/TGLViewer.cxx


33701
=====

Author: matevz
Date: Tue Jun  1 20:36:47 2010
New Revision: 33701

URL: http://root.cern.ch/viewvc?rev=33701&root=root&view=rev
Log:
TEveProjections:
- Add virtual function
    BisectBreakPoint(TEveVector& vL, TEveVector& vR, Float_t eps_sqr=1e-10f);
  that find both edges of a segment that is split over two
  non-contiguous space-regions.

TEveStraightLineSet:
- Handle breaking of each line segment in a projection and create two
  separate parts.

Modified:
    branches/dev/fireworks/graf3d/eve/inc/TEveProjections.h
    branches/dev/fireworks/graf3d/eve/inc/TEveStraightLineSet.h
    branches/dev/fireworks/graf3d/eve/src/TEveProjections.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveStraightLineSet.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveStraightLineSetGL.cxx


33702
=====

Author: matevz
Date: Tue Jun  1 21:18:54 2010
New Revision: 33702

URL: http://root.cern.ch/viewvc?rev=33702&root=root&view=rev
Log:
Simplify internal representation of marker in a line-set.

Modified:
    branches/dev/fireworks/graf3d/eve/inc/TEveStraightLineSet.h
    branches/dev/fireworks/graf3d/eve/src/TEveStraightLineSet.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveStraightLineSetGL.cxx


33704
=====

Author: matevz
Date: Tue Jun  1 21:28:27 2010
New Revision: 33704

URL: http://root.cern.ch/viewvc?rev=33704&root=root&view=rev
Log:
Remove unused variable.

Modified:
    branches/dev/fireworks/graf3d/eve/src/TEveStraightLineSetGL.cxx


33751
=====

Author: matevz
Date: Fri Jun  4 16:14:12 2010
New Revision: 33751

URL: http://root.cern.ch/viewvc?rev=33751&root=root&view=rev
Log:
Small fixes for track rendering.

TEveTrack
- Implement virtual ComputeBBox() to include path-mark positions in
  the bounding box calculation.

TEveTrackGL
- Number of visible path-marks was computed wrongly.

TEvePointSet
- Remove virtual ComputeBBox() -- it was just calling the base-class
  version.

TPointSet3D
- Simplify ComputeBBox().

Modified:
    branches/dev/fireworks/graf3d/eve/inc/TEvePointSet.h
    branches/dev/fireworks/graf3d/eve/inc/TEveTrack.h
    branches/dev/fireworks/graf3d/eve/src/TEvePointSet.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveTrack.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveTrackGL.cxx
    branches/dev/fireworks/graf3d/g3d/src/TPointSet3D.cxx


33753
=====

Author: matevz
Date: Fri Jun  4 16:45:38 2010
New Revision: 33753

URL: http://root.cern.ch/viewvc?rev=33753&root=root&view=rev
Log:
Move anti-flickering flag from TEveQuadSet to TEveDigitSet.
Implement it in TEveBoxSet-GL rendering, too.

Modified:
    branches/dev/fireworks/graf3d/eve/inc/TEveDigitSet.h
    branches/dev/fireworks/graf3d/eve/inc/TEveQuadSet.h
    branches/dev/fireworks/graf3d/eve/src/TEveBoxSetGL.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveDigitSet.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveQuadSet.cxx


33767
=====

Author: alja
Date: Mon Jun  7 19:49:03 2010
New Revision: 33767

URL: http://root.cern.ch/viewvc?rev=33767&root=root&view=rev
Log:
In TEveCaloDataVec add interface to add new slice and getters to read slice values and cell geometry.

Modified:
    branches/dev/fireworks/graf3d/eve/inc/TEveCaloData.h
    branches/dev/fireworks/graf3d/eve/src/TEveCaloData.cxx


33770
=====

Author: matevz
Date: Tue Jun  8 11:54:09 2010
New Revision: 33770

URL: http://root.cern.ch/viewvc?rev=33770&root=root&view=rev
Log:
Take the right fP for point-array when calculating bounding-box.

Modified:
    branches/dev/fireworks/graf3d/eve/src/TEveTrack.cxx


33774
=====

Author: alja
Date: Tue Jun  8 13:09:52 2010
New Revision: 33774

URL: http://root.cern.ch/viewvc?rev=33774&root=root&view=rev
Log:
TEveCaloLegoGL:
Fix picking in  kValSizeOutline mode.

TEveCaloLegoEditor:
Fix last enum in 2D mode entry.

Modified:
    branches/dev/fireworks/graf3d/eve/src/TEveCaloLegoEditor.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveCaloLegoGL.cxx


33787
=====

Author: matevz
Date: Tue Jun  8 18:24:27 2010
New Revision: 33787

URL: http://root.cern.ch/viewvc?rev=33787&root=root&view=rev
Log:
Fix invalid iterator access reported by valgrind.

Modified:
    branches/dev/fireworks/graf3d/eve/src/TEveCaloLegoGL.cxx


33789
=====

Author: matevz
Date: Tue Jun  8 19:08:23 2010
New Revision: 33789

URL: http://root.cern.ch/viewvc?rev=33789&root=root&view=rev
Log:
Fix another invalid iterator access reported by valgrind.

Modified:
    branches/dev/fireworks/graf3d/eve/src/TEveCaloLegoGL.cxx


33790
=====

Author: alja
Date: Tue Jun  8 19:51:15 2010
New Revision: 33790

URL: http://root.cern.ch/viewvc?rev=33790&root=root&view=rev
Log:
Bugfix:: In TEveCaloDataVec::AddSlice initalise vector of tower values.

Modified:
    branches/dev/fireworks/graf3d/eve/src/TEveCaloData.cxx


33791
=====

Author: matevz
Date: Tue Jun  8 22:31:00 2010
New Revision: 33791

URL: http://root.cern.ch/viewvc?rev=33791&root=root&view=rev
Log:
Add flag allowing to disable internal GL-viewer selection.
To disable it call:
  handler->SetDoInternalSelection(kFALSE);

Modified:
    branches/dev/fireworks/graf3d/gl/inc/TGLEventHandler.h
    branches/dev/fireworks/graf3d/gl/src/TGLEventHandler.cxx


33792
=====

Author: matevz
Date: Tue Jun  8 23:08:09 2010
New Revision: 33792

URL: http://root.cern.ch/viewvc?rev=33792&root=root&view=rev
Log:
Add option to fix the default camera center.
To activate, call:
  camera->SetFixDefCenterVec(x, y, z);
  camera->SetFixDefCenter(kTRUE);
This will take effect on next camera reset.
External center still overrides the setting.

Modified:
    branches/dev/fireworks/graf3d/gl/inc/TGLCamera.h
    branches/dev/fireworks/graf3d/gl/src/TGLCamera.cxx
    branches/dev/fireworks/graf3d/gl/src/TGLOrthoCamera.cxx
    branches/dev/fireworks/graf3d/gl/src/TGLPerspectiveCamera.cxx


33796
=====

Author: alja
Date: Wed Jun  9 12:51:06 2010
New Revision: 33796

URL: http://root.cern.ch/viewvc?rev=33796&root=root&view=rev
Log:
Fix bug in redering of selected cells in case cells are highlighted the same time.

Modified:
    branches/dev/fireworks/graf3d/eve/src/TEveCaloLegoGL.cxx


33798
=====

Author: matevz
Date: Wed Jun  9 15:28:30 2010
New Revision: 33798

URL: http://root.cern.ch/viewvc?rev=33798&root=root&view=rev
Log:
White space.

Modified:
    branches/dev/fireworks/graf3d/eve/src/TEveCaloLegoGL.cxx


33804
=====

Author: matevz
Date: Wed Jun  9 20:49:33 2010
New Revision: 33804

URL: http://root.cern.ch/viewvc?rev=33804&root=root&view=rev
Log:
Use central function TEveCaloData::ProcessSelection(...) to process
(multiple secondary) selection from all GL renderers (3D, 2D and
Lego).

Fix rendering of non-rebinned lego for multiple selection.

Modified:
    branches/dev/fireworks/graf3d/eve/inc/TEveCaloData.h
    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


33817
=====

Author: matevz
Date: Thu Jun 10 15:31:17 2010
New Revision: 33817

URL: http://root.cern.ch/viewvc?rev=33817&root=root&view=rev
Log:
Do not redraw if the widget is not mapped.

Add option to block redraw in UpdateScene().

Modified:
    branches/dev/fireworks/graf3d/gl/inc/TGLViewer.h
    branches/dev/fireworks/graf3d/gl/src/TGLViewer.cxx


33823
=====

Author: matevz
Date: Thu Jun 10 16:25:59 2010
New Revision: 33823

URL: http://root.cern.ch/viewvc?rev=33823&root=root&view=rev
Log:
Fix placement of global lights.

Modified:
    branches/dev/fireworks/graf3d/gl/src/TGLLightSet.cxx


33825
=====

Author: matevz
Date: Thu Jun 10 16:47:54 2010
New Revision: 33825

URL: http://root.cern.ch/viewvc?rev=33825&root=root&view=rev
Log:
Hide tooltip on key event.

Modified:
    branches/dev/fireworks/graf3d/gl/src/TGLEventHandler.cxx

Revision 33124 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Apr 21 20:04:42 2010 UTC (4 years, 9 months ago) by matevz
File length: 61950 byte(s)
Diff to previous 32338
Implement central infractructure to allow eve-elements to support
internal multiple selection and highlightning of their sub-parts.

Use this in TEveDigitSet and its sub-classes TEveQuadSet and
TEveBoxSet.

Extend GL rendering and event-handling to support these operations.


eve/
====

* TEveElement - Add 3 new functions:
    virtual TString  GetHighlightTooltip();
    virtual void     UnSelected();
    virtual void     UnHighlighted();

* TEveSecondarySelectable - New secondary base-class for elements
  supporting internal multiple selection / highlight.

* TEveDigitSet, TEveQuadSet, TEveBoxSet
  - Sub-class TEveDigitSet from TEveSecondarySelectable.
  - Implement functions needed for internal selection.
  - Add common base-class TEveDigitSetGL for quad and box-set GL rendering.

* TEveChunkManager - Add support for restricted iteration.
  TEveChunkManager::iterator accepts set<Int_t> for that purpose.

* TEveViewer - Add functions to handle additional mouse-hover signals
  from TGLViewer.

* Other classes (all GL renderers) - Changes for additional argument
  to TGLLogicalShape::DrawHighlight().


gl/
===

* TGLObject - Take AlwaysSecondarySelect() into account when deciding
  whether to use DL caching for given draw-pass.

* TGLLogicalShape - Add a new (optional) argument to DrawHighlight()
  specifying kind of outline to use (selected or highlighted). This
  allows classes with internal selection to properly render outlines
  when sub-parts of an object are both selected and highlighted.


* TGLEventHandler - Proparly handle objects with internal selection /
  highlight.

* TGLSelectRecord - Add flag to separate GL-selection for selection
  and for highlight. This is really used by record handlers.

* TGLViewer - Add two new signal-emitting functions to properly notify
  clients about changes in internal object selection:
    virtual void ReMouseOver(TObject *obj, UInt_t state); // *SIGNAL*
    virtual void UnMouseOver(TObject *obj, UInt_t state); // *SIGNAL*


tutorials/eve
=============

Add instructions for activation of internal selection in
TEveQuad/BoxSet.

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: 61099 byte(s)
Diff to previous 32052
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 32052 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jan 19 11:38:15 2010 UTC (5 years ago) by matevz
File length: 61012 byte(s)
Diff to previous 32040
- Use TGLLockable::TUnlocker also in SavePictureUsingBB() and
  SavePictureUsingFBO().

- Restore draw-buffer state to default (GL_BACK) at the end
  DoDrawStereo() so that this call is not needed in DoDrawMono() where
  an alternative draw-buffer can already be specified by the caller.

Revision 32040 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 18 13:56:00 2010 UTC (5 years ago) by matevz
File length: 60960 byte(s)
Diff to previous 31862
* TGLLockable
  Add inner class TGLLockable::TUnlocker to support exception safe
  unlocking of objects.

* TGLViewer
  Use TGLLockable::TUnlocker in DoDraw(), DoSelect(),
  DoSecondarySelect() and DoOverlaySelect().
  This prevents fatal lockups when exceptions are thrown during the
  rendering.

Revision 31862 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Dec 12 21:33:39 2009 UTC (5 years, 1 month ago) by brun
File length: 60732 byte(s)
Diff to previous 31828
From Matevz:
 Properly calculate stereo camera offsets for all camera types and orientations.

Revision 31828 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Dec 11 08:09:40 2009 UTC (5 years, 1 month ago) by brun
File length: 60485 byte(s)
Diff to previous 31821
From Bertrand:
Fix compilation errors on Windows, due to the use of “near” and “far” variable names, being keywords on Windows.

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: 60443 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: 57470 byte(s)
Diff to previous 30886
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 30886 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Oct 27 13:37:11 2009 UTC (5 years, 2 months ago) by matevz
File length: 56648 byte(s)
Diff to previous 30788
From Alja.

geaf3d/gl:
In TGLSelectRecord add new member and type to define a result of TGLLogicalShape::ProcessSelection().
Handle this result in TGLEventHandler::HandleButton(). In TGLViewer emit "ReClick" signal 
if selection has changed only internally or emit "UnClicked" signal if secondary selection became empty. 

graf3d/eve:
Separate case when secondary selection has changed from case when primary selection has changed.
Add a new function TEveSelection::SelectionRepeated(), called when selection has changed only internally and
add TEveSelection::UserRePickedElement(), called when secondary selection was cleared.

Revision 30788 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Oct 18 21:16:40 2009 UTC (5 years, 3 months ago) by matevz
File length: 55933 byte(s)
Diff to previous 30752
From Alja.

Generalize selection by completely separating first and second level
selection in viewer. The event handler can now call the selection
functions based on its internal state.

To be used for individual calorimeter tower selection, but useful for
all elements supporting secondary selection.

Revision 30752 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Oct 15 18:55:34 2009 UTC (5 years, 3 months ago) by matevz
File length: 55808 byte(s)
Diff to previous 30410
From Alja & Matevz.

Make highlightning configurable on per class basis by introducing a
new virtual function in TGLLogicalShape:
   virtual void DrawHighlight(TGLRnrCtx& rnrCtx, const TGLPhysicalShape* pshp) const;

The main use of this functionality will be to support individual
selection of calo towers and potentially other container elements that
support secondary selection.

For now it is used in TEvePolygonSetProjected to highlight only
outline of the polygon.

Revision 30410 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Sep 24 15:24:03 2009 UTC (5 years, 4 months ago) by matevz
File length: 55712 byte(s)
Diff to previous 30384
In TGLViewer revert to old default - do not use anti-aliased points and lines.

Revision 30384 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 23 17:54:23 2009 UTC (5 years, 4 months ago) by matevz
File length: 55708 byte(s)
Diff to previous 30383
Merge from fworks branch the following revisions:

30297
=====

tutorials/eve/cms_calo.C:
Change elements names.

TGLViewer:
Add getter to see if use bright or dark colorset.

TGLCameraOverlay, TEveCaloLego, TEveProjectionAxes,TEveCaloLegoOverlay:
By default use markup colors from color set. This way color will be correct
in bright and dark background without any settings. 


30340
=====

TEveViewer:
Protect against misleading warnings (happened on mac only).


30376
=====

TGLFont:
Remove TGLFont::RenderBitmap() function and replace it with TGLFont::Render(),
which can be used more genericaly: for all font types and alignments.

TGLAxisPainter, TGLCameraOverlay, TGLAnnotation, TEveProjectionAxesGL:
Use TGLFont::Render() function to draw labels and titles.

TEveCaloLego, TEveCaloLegoEditor:
Remove obsolete members fTopViewUseMaxColor and fTopViewTowerColor.

TEveCaloLegoGL:
Draw tower vlues in all 2DModes.

TEveCaloLegoOverlay:
Draw palette scales in case TEveCaloLego is using palette (f2DMode = TEveCaloLego::kValColor).

TEveCalo3DGL:
Keep grid color same in outline and wirewrame render mode.

Revision 30383 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 23 16:52:00 2009 UTC (5 years, 4 months ago) by matevz
File length: 55476 byte(s)
Diff to previous 29817
Merge two revisions from fworks brach.
Rename cms_calo.C to calorimeters.C.

30231:
TGLAnnotation:
Move annotation to front.
Delete/Edit annotation on button release instead of button press.

TGLEventHandler:
Add check for overlay element in HandleMotion().

30309: 
TEveViewer:
Fix a possible crash on DeleteWindow(). Delete event handler before deleting gl-viewer. 

TGLViewer:
Add a comment in  TGLViewer::SetEventHandler().

Revision 29817 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Aug 19 09:00:26 2009 UTC (5 years, 5 months ago) by matevz
File length: 55373 byte(s)
Diff to previous 29763
Use TString::Contains() instead of EndsWith() when checking for .gif+ file type - it can be followed by an integer number to specify playback delay. Reported in #54562.

Revision 29763 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Aug 12 10:47:56 2009 UTC (5 years, 5 months ago) by matevz
File length: 55373 byte(s)
Diff to previous 29744
Improve documentation of camera-configure methods.
Allow the passed 'double* center' to be 0 - do not change the camera
center in this case.

Revision 29744 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Aug 10 18:16:56 2009 UTC (5 years, 5 months ago) by matevz
File length: 55298 byte(s)
Diff to previous 29724
* TGLViewer
  - Add support for usage of smooth poins and lines.
  - Use FBO image dump function by default (if OpenGL-1.5 detected).
  - Add option to increase global scale in SavePictureUsingFBO().
  - Add several new image saving functions:
    Bool_t SavePictureWidth (const TString &fileName, Int_t width, Bool_t pixel_object_scale=kTRUE);
    Bool_t SavePictureHeight(const TString &fileName, Int_t height, Bool_t pixel_object_scale=kTRUE);
    Bool_t SavePictureScale (const TString &fileName, Float_t scale, Bool_t pixel_object_scale=kTRUE);

* TGLViewerEditor
  - Add controls for smooth points/lines.

* TGLPhysicalShape
  - Remove obsolete comment.

Revision 29724 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Aug 7 16:10:57 2009 UTC (5 years, 5 months ago) by matevz
File length: 51901 byte(s)
Diff to previous 29676
Add support for frame-buffer objects (FBO).
This allows for offscreen rendering into separately instantiaded
frame-buffer. Useful for saving of images whan the GL window is now
visible or for rendering into textures.

Requires OpenGL-1.5 (detected at run-time with GLEW).

In TGLViewer add new function
   Bool_t SavePictureUsingFBO(const TString &fileName, Int_t w, Int_t h);
that allows saving of an image with any resolution supported by the
local GL implementation (8192 pixels on my desktop).

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: 50094 byte(s)
Diff to previous 29575
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 29575 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jul 24 12:52:18 2009 UTC (5 years, 6 months ago) by matevz
File length: 49589 byte(s)
Diff to previous 28898
graf3d/gl/src/TGLViewer.cxx:
Enable depth test for overlay elements.

graf3d/gl/src/TGLViewerEditor.cxx
Add interface to new camera overlay modes.

graf3d/gl/src/TGLCameraOverlay.cxx:
graf3d/gl/inc/TGLCameraOverlay.h:
Use render context color set when draw lines and fonts.
Implement kGridFront and kGridBack overlay modes.

Revision 28898 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jun 11 10:36:51 2009 UTC (5 years, 7 months ago) by matevz
File length: 49588 byte(s)
Diff to previous 28607
- TGLViewerBase: Rewrite DeleteOverlayElements() taking into account
  that overlay elements are stored in a vector (list was assumed).

- TGLViewer: Do not double-delete GL viewer overlay elements -
  delegate destruction to ~TGLViewerBase().

Revision 28607 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed May 13 15:11:33 2009 UTC (5 years, 8 months ago) by matevz
File length: 49586 byte(s)
Diff to previous 28378
Allow clipping object to be fixed by user - until now it was updated
on every redraw.

- TGLClip: Add 'Bool_t fValid' data-member and accessor methods:
   Bool_t IsValid() const;
   void   Invalidate();
Honour this in concrete clip classes.

- TGLClipSet: Add methods:
   void  SetupCurrentClip(const TGLBoundingBox& sceneBBox);
   void  SetupCurrentClipIfInvalid(const TGLBoundingBox& sceneBBox);
   void  InvalidateClips();
   void  InvalidateCurrentClip();
Add data-member 'TGLBoundingBox fLastBBox' to cache the last scene
bounding box that was used to resize the clip-set.

- TGLViewer: Add 'Bool_t fClipAutoUpdate' data-member and accessors:
   Bool_t GetClipAutoUpdate() const;
   void   SetClipAutoUpdate(Bool_t x);
Use this member to steer clip-object updates.

-TGLPlane: Move many unnecessarily inline functions to cxx file.

Revision 28378 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Apr 28 15:40:53 2009 UTC (5 years, 8 months ago) by matevz
File length: 49394 byte(s)
Diff to previous 28197
TGLRnrCtx
- Add function ColorOrForeground(Color_t col) which sets given color
or falls back to default foregorund in col is the background color.

TGLFontManager
- Rewrite GetFontSize(Float_t size, Int_t min, Int_t max) to use
TMath::BinarySearch().
- Add function GetFontSize(Float_t size) that uses min, max from the
available font-sizes.

TGLAxisPainterBox
- New class for painting of 3D axes around a box.

TF2GL, TH2GL
- Use TGLAxisPainterBox for painting of axes.

TH3GL
- New class for rendering of TH3 objects.

TGLScenePad
- Proper handling of TH3.

TGLViewer
- When constructed with a given TPad, set background and foreground
colors accordingly.

TGLUtilColor
- Add cache-variable fIndex that makes it easier / more optimal to
compare and retrieve color-indices.

TGLCameraOverlay
- Use TGLFontManager::GetFontSize() without limits.

TGLParametricEquationGL
- Gray-space changes.

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: 49146 byte(s)
Diff to previous 27560
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 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: 46078 byte(s)
Diff to previous 27515
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 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: 45791 byte(s)
Diff to previous 26717
* 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 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: 45788 byte(s)
Diff to previous 26394
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 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: 45654 byte(s)
Diff to previous 25950
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 25950 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Oct 24 21:34:34 2008 UTC (6 years, 3 months ago) by matevz
File length: 45655 byte(s)
Diff to previous 25879
TGLSceneBase, TGLScene, TGLSceneInfo
	Move 'Bool_t fUpdateTimeouted' from TGLScene to TGLSceneInfo.
	Remove	'Bool_t fForceUpdateSI from TGLSceneBase.
	This was potentialy wrong ... if a scene was put into several
	viewers.

TGLEventHandler
	When scrolling via mouse-wheel or resizing the viewing area
	call redraw via timer to group several events in a sequence
	into a single redraw.
	Avoid selection in handle-motion and in timer callback when a
	redraw is already pending.

TGLViewer
	Do not draw when viewing area's width or hight <= 1.

TGLWidget
	Pass configure-notify event to TGFrame as well.

alice_esd_split.C
	Do not resize to almost-full-screen as it doesn't work with
	multi-screen displays (can pass optional argument to enforce
	it).

Revision 25879 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Oct 19 20:49:34 2008 UTC (6 years, 3 months ago) by matevz
File length: 45656 byte(s)
Diff to previous 25431
TEveArrow
---------
Include tube/arrow radius in bounding-box calculation.

TEveManager
-----------
Fix typo.

TEveVSDStructs
--------------
Add methods
  TEveVector Orthogonal() const;
  void OrthoNormBase(TEveVector& a, TEveVector& b) const;
for getting vectors orthogonal to given vector.

TGLPerspectiveCamera
--------------------
Fix calculation of default dolly distance. Viewport aspect ratio was
not taken into account.

TGLViewer
---------
In SetupCameras() also process the three inverted orthographic cameras
added recently.

Revision 25431 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 17 08:35:34 2008 UTC (6 years, 4 months ago) by matevz
File length: 45530 byte(s)
Diff to previous 25245
Merge Alja's development since the release from the fireworks branch.

25284
-----
TEveCaloLegoGL, TGLAxisPainter, TGLCameraOverlay:
Fix tick-mark and font offsets.

25291
-----
TGLViewerEditor, TGLViewer, TGLCamera, TGLOrthoCamera,
TGLCameraOverlay, LinkDef.h:
Remove TGLCameraMarkupStyle. Functionality is moved to TGLCameraOverlay.

TGLFontManager:
Add utility function TGLFont::RenderBitmap() to draw pixmap
and bitmap fonts on given location.

TEveProjectionAxesGL:
Use TGLFont::RenderBitmap() function.

cms_calo.C, projection_test_prescale.C, projection_test.C, test_compound.C:
Camera markup is not drawn by default in orthographic projection.

25319
-----
TGLCameraOverlay.cxx:
Fix gl pick matrix.

TEveLegoOverlay:
Move inheritance from TGLOverlayElement to TGLCameraOverlay.

25395
-----
TGLFontManager, TGLAxisPainter, TGLCameraOverlay,TEveLegoOverlay, TEveCaloLegoGL:
Modify utility function TGLFont::RenderBitmap() to render text with given alignment.

TEveProjectionAxes:
Render axis on the edges of viewport instead of on edges of bounding box.

25405
-----
TEveProjectionAxesGL:
Draw axis from start to end of frustum corners if frustum inside projection limits,
else draw axis from low to high projection limit.
Set tick-mark size relative to viewport size.

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: 46287 byte(s)
Diff to previous 24317
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 24317 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 17 22:41:25 2008 UTC (6 years, 7 months ago) by rdm
File length: 43560 byte(s)
Diff to previous 24316
From Axel:
strangely enough Wndows does not support %p, use good old 0x%lx.

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: 43551 byte(s)
Diff to previous 24300
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 24300 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 17 10:48:01 2008 UTC (6 years, 7 months ago) by rdm
File length: 43484 byte(s)
Diff to previous 24114
From Axel:
using %p as format flag instead of 0x%x allows pointers to be passed
on 64bits, too.

Revision 24114 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 3 13:14:12 2008 UTC (6 years, 7 months ago) by matevz
File length: 43490 byte(s)
Diff to previous 24059
From Bertrand: Set fGLWidget=0 in TGLEmbeddedViewer and TGLSAViewer
destructor and check it in TGLViewer destructor.

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: 43302 byte(s)
Diff to previous 23869
- 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 23869 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 15 19:48:00 2008 UTC (6 years, 8 months ago) by matevz
File length: 41111 byte(s)
Diff to previous 23665
Remove trailing whitespace.

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: 41112 byte(s)
Diff to previous 23549
Added three more orthographic cameras (looking at the scene from
another side).

Added virtual methods Bool_t TGLCamera::IsPerspective()/IsOrthographic().

Revision 23549 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Apr 25 09:51:46 2008 UTC (6 years, 9 months ago) by couet
File length: 39627 byte(s)
Diff to previous 23351
- Fix shadowed variables.

Revision 23351 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Apr 21 09:57:11 2008 UTC (6 years, 9 months ago) by matevz
File length: 39607 byte(s)
Diff to previous 23318
TGLViewer
=========

Rename member 'EDragAction fAction' to 'fDragAction' to make its
meaning clearer elsewhere.

Skip drawing when viewport area is zero.


TGLEventHandler
===============

Fix compilation warning - which actually revealed a cut-n-paste bug.

Consistently check and report existing drag-action for
leave/enter-notify and focus-in/out events. Do NOT use 'kNone' but
fully qualified enum entry from TGLViewer.

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: 39359 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: 38932 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/TGLViewer.cxx
File length: 38932 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/TGLViewer.cxx
File length: 38665 byte(s)
Diff to previous 21718
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 21718 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jan 15 17:10:09 2008 UTC (7 years ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 53961 byte(s)
Diff to previous 21702
From Matevz:
Added tooltip for scene-render timeouts.
Small improvement of manipulator description in help-text.
Added reset button for current clip.

Revision 21702 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 14 18:55:14 2008 UTC (7 years ago) by matevz
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 53937 byte(s)
Diff to previous 21651
In TGLScene/TGLViewer add two timeouts for high-quality and
low-quality (during rotation etc) scene rendering. Expose both time
limits via TGLViewerEditor.

In TGLCamera::OfInterest() remove redundant test for physical-shape
bbox volume and optimize the remaining bbox diagonal length test.

Remove blanks from the eols.

Revision 21651 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jan 11 17:11:35 2008 UTC (7 years ago) by matevz
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 53755 byte(s)
Diff to previous 20882
Introduce option for toggling dolly/zoom behaviour for orthographic
camera.

Expose this and optional rotation in ortho camera via menu entries in
TGLSAViewer.

Revision 20882 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 19 11:31:26 2007 UTC (7 years, 2 months ago) by rdm
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 53018 byte(s)
Diff to previous 20292
Set property svn:eol-style LF on all source and Makefiles. This should avoid
problems with Win32 line endings ending up in the repository. All MS tools
support LF eols fine.

Revision 20292 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Oct 10 14:08:48 2007 UTC (7 years, 3 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 53018 byte(s)
Diff to previous 19826
From Matevz & Alja

	* base/inc/TVirtualViewer3D.h:
	Add function virtual void ObjectPaint(TObject*, Option_t*).


/**************************************************************************/

	* ged/src/TGedEditor.cxx:
	When adding top-level TGFrame for the extra tabs specify layout
	hints with kLHintsExpandX.


/**************************************************************************/

	* gl/inc/TGLScenePad.h:
	* gl/src/TGLScenePad.cxx:
	Implement virtual TVirtualViewer3D::ObjectPaint().

	* gl/src/TGLCamera.cxx:
	* gl/inc/TGLCamera.h:	
	* gl/src/TGLPerspectiveCamera.cxx:
	* gl/inc/TGLPerspectiveCamera.h:	
	* gl/src/TGLOrthoCamera.cxx:
	* gl/inc/TGLOrthoCamera.h:
	Introduce two transformation matrices to clearly define movement
	of camera around the center point. The first transformation matrix
	fCamBase defines the coordinate system placed at the camera center
	point with camera up-vector as the third base vector. The second
	transformation matrix fCamTrans defines the camera transformation
	relative to fCamBase.

        Implement a common Truck(), Rotate() and Dolly() function for
	orthographic and perspective camera.

	Implement an option to define camera center point
	externally. Center can also be determined via picking.

	* gl/src/TGLUtil.cxx:
	* gl/inc/TGLUtil.h:
	TGLMatrix: add new functions to get/set the base vectors
	directly.

	TGLUtil: add member UInt_t fgDefaultDrawQuality.

	TGLRect: bugfix in Diagonal(), integer calculation overflowed.

	* gl/src/TGLViewer.cxx:
	* gl/inc/TGLViewer.h:
	Make interface to draw camera center point.
	Add option to disable/enable depth test when drawing axis guides. 

	* gl/src/TGLViewerEditor.cxx:
	* gl/inc/TGLViewerEditor.h:
	Add GUI to manipulate camera center and to disable/enable depth
	test when drawing axis guides.

	* gl/src/TGLClipSetEditor.cxx:
	Change layout of labeled number entries.

	* gl/src/TGLLightSet.cxx:
	Fix positioning of front light. White-space consolidation.

	* gl/src/TGLLightSetEditor.cxx:
	* gl/inc/TGLLightSetEditor.h:
        Put GUI for the 6 lights in two columns.


/**************************************************************************/

	* tutorials/gl/glViewerExercise.C:
	Follow-up on changes in TGLCamera. Enable rotation on
	orthographic camera.

	* tutorials/gl/glViewerLOD.C:
	Workourond for cint bug with switch statements.

Revision 19826 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:56:11 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 50741 byte(s)
Diff to previous 19825
imported svn:keywords Id property

Revision 19825 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:49:10 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 50792 byte(s)
Diff to previous 19735
remove :$ from tag line

Revision 19735 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Aug 30 20:29:47 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 50802 byte(s)
Diff to previous 19645
From Matevz:
Added new signal-emitting method OverlayDragFinished() that is
called when overlay mouse interaction has completed and some GUI
elements need to be update. Before SelectionChanged() has
been misused for this purpose.

Revision 19645 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Aug 19 10:07:49 2007 UTC (7 years, 5 months ago) by rdm
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 50612 byte(s)
Diff to previous 19432
From Matevz:
Removed unused member fPadEditor.
External TVirtualPad reference is no longer needed, viewer works
fine with fPad = 0.

Revision 19432 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jul 23 15:07:42 2007 UTC (7 years, 6 months ago) by rdm
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 50049 byte(s)
Diff to previous 19190
From Matevz:
Move all active TVirtualViewer3D interface to TGLScenePad, only a
facade is kept. Reimplement camera-interest update to be in line
with scenes shared among viewers.

Revision 19190 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 26 12:43:58 2007 UTC (7 years, 7 months ago) by rdm
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 77753 byte(s)
Diff to previous 19183
From Matevz:
Added support for display of parametric surfaces.

Revision 19183 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 26 09:59:38 2007 UTC (7 years, 7 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 77373 byte(s)
Diff to previous 19177
From Matevz:
During PadPaint() call Paint() also for non-3D objects as they can internally host additional 3D objects.

Revision 19177 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jun 25 19:33:03 2007 UTC (7 years, 7 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 77218 byte(s)
Diff to previous 19175
Fix a typo (double_t instead of Double_t)

Revision 19175 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jun 25 19:25:05 2007 UTC (7 years, 7 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 77218 byte(s)
Diff to previous 19161
From Matevz:
Added support for recursive pad traversal during PadPaint().

Revision 19161 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jun 24 18:48:11 2007 UTC (7 years, 7 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 75960 byte(s)
Diff to previous 19153
From Matevz
Rotate T2F/TH2 objects so that their up-direction is consistent with the gl-viewer convention.

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/TGLViewer.cxx
File length: 75867 byte(s)
Diff to previous 19141
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 19141 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 22 16:06:22 2007 UTC (7 years, 7 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 73509 byte(s)
Diff to previous 19138
From Matevz & Bertrand:
Fix for a problem when runnning "view with GL" and coming from GlinPad

Revision 19138 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 22 15:11:13 2007 UTC (7 years, 7 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 73507 byte(s)
Diff to previous 19053
From Bertrand & Matevz:
Fix a problem when viewing geometries with GLinPad

Revision 19053 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jun 18 07:54:17 2007 UTC (7 years, 7 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 73348 byte(s)
Diff to previous 19049
From Timur:
Fix for timer problems on some Linuxes.

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/src/TGLViewer.cxx
File length: 72973 byte(s)
Diff to previous 19010
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 19010 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 12 14:50:57 2007 UTC (7 years, 7 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 73399 byte(s)
Diff to previous 19000
From Matevz:
TGLUtil.h:
added methods for control of static draw-quality

TGLManipSet.cxx:
in selection mode render manipulators with lower LOD

TGLViewer.cxx:
a) bugfix, scene time-stamp was not increased after automatic scene update;
b) revert to old color switching for physical shapes: 1(black)->42(light brown)

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/TGLViewer.cxx
File length: 73336 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 18879 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 24 14:09:33 2007 UTC (7 years, 8 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 74513 byte(s)
Diff to previous 18049
From Timur:
Move member fGlArea from TGLSAViewer to TGLScene and reactive the call
to TGLDisplayListCache::Purgein TGLScene destructor.
This should fix a problem on MAC when deleting a GL window.

Revision 18049 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Feb 21 17:13:05 2007 UTC (7 years, 11 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 74464 byte(s)
Diff to previous 17753
From Bertrand:
- Replaced some direct calls to gl functions by gVirtualGL ones,
 allowing GLViewer to work again on Windows :-\
- Make sure that Gpad and GUI libs are loaded with TGuiBuilder.

Revision 17753 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Feb 7 15:24:16 2007 UTC (7 years, 11 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 74081 byte(s)
Diff to previous 17581
From Timur:
-Invert the Zoom/Unzoom convention when using the mouse wheel forward/backward.

Revision 17581 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jan 30 11:49:15 2007 UTC (7 years, 11 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 74081 byte(s)
Diff to previous 17553
-Replace calls to gROOT->GetClass by TClass::GetClass
-Remove unused references to TROOT.h
-Add include TClass.h in classes assuming an implicit include by other classes

Revision 17553 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 29 10:06:51 2007 UTC (7 years, 11 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 74080 byte(s)
Diff to previous 17552
Add explicit inclusion of "TClass.h" in view of a future removal of TClass.h
from TQObject.h.

Revision 17552 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 29 08:52:46 2007 UTC (7 years, 11 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 74059 byte(s)
Diff to previous 17139
From Timur:
a small fix to enable manipulation with specular light component.

Revision 17139 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Dec 9 23:06:32 2006 UTC (8 years, 1 month ago) by rdm
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 73640 byte(s)
Diff to previous 16452
From Alja:
Provide get/set interface to fScene.fCameraMarkup.

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/TGLViewer.cxx
File length: 73613 byte(s)
Diff to previous 16093
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 16093 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Aug 23 15:32:48 2006 UTC (8 years, 5 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 72523 byte(s)
Diff to previous 16090
From Matevz:
Fix a problem with previous GL patch.

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/TGLViewer.cxx
File length: 72486 byte(s)
Diff to previous 14923
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 14923 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri May 5 08:00:31 2006 UTC (8 years, 8 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 70882 byte(s)
Diff to previous 14768
From Ilka:
- fix in TGLViewer dtor to avoid SegV when closing the canvas with active
TGLViewerEditor

Revision 14768 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Apr 20 10:41:28 2006 UTC (8 years, 9 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 70826 byte(s)
Diff to previous 14612
Fix typo in message.

Revision 14612 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Apr 10 09:23:31 2006 UTC (8 years, 9 months ago) by couet
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 70819 byte(s)
Diff to previous 14600
From Timur

- Add the code (taken from the GL viewer), to generate PS output from OpenGL
  scenes drawn in a pad.

Revision 14600 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Apr 7 16:39:36 2006 UTC (8 years, 9 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 70269 byte(s)
Diff to previous 14583
From Bertrand
Fix an uninitialized variable.

Revision 14583 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Apr 7 09:20:43 2006 UTC (8 years, 9 months ago) by rdm
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 70244 byte(s)
Diff to previous 14580
fix cvs tag lines, and remove many <TAB>s.

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/TGLViewer.cxx
File length: 70481 byte(s)
Diff to previous 14435
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 14435 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Mar 28 09:47:17 2006 UTC (8 years, 9 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 68715 byte(s)
Diff to previous 14336
From Timur:
Small fix for selection/manipulators for mulptiple viewers case.

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/TGLViewer.cxx
File length: 68512 byte(s)
Diff to previous 14260
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 14260 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Mar 14 15:29:15 2006 UTC (8 years, 10 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 68493 byte(s)
Diff to previous 14237
From Timur:
Fix for TGLViewer and for glViewer tutorials.

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/TGLViewer.cxx
File length: 68470 byte(s)
Diff to previous 14210
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 14210 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Mar 9 11:18:31 2006 UTC (8 years, 10 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 68389 byte(s)
Diff to previous 14203
From Timur:
Panning in TGLHistPainter for win32 modified.

Revision 14203 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Mar 8 21:09:43 2006 UTC (8 years, 10 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 68450 byte(s)
Diff to previous 14097
From Timur Pocheptsov:

-TGLPixmap - removed and replaced by TGLViewer (most of the TGLViewer
    functionality is available in pad now);
-TGLHistPainter - zooming/panning added for legoes/surfaces;
-TGLViewerEditor - TGLViewer's editor for pad (lights/clipping/guides
    manipulation).

-TRootCanvas :
  minor changes to support mouse wheel event in gl viewer in a pad

-TCanvas :
  a)changes to process keyboard events correctly
  b)changes to process mouse will events

-TVirtualViewer3D :
  changes in interface for TGLManager (win32 implementation of TGLManager
  requires some functions and cannot be dependant from TGLViewer)

-Added class TVirtualGLManipulator - base for TGLManip - again, required
 mostly by TGWin32GL.

Revision 14097 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Feb 23 16:44:52 2006 UTC (8 years, 11 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 63639 byte(s)
Diff to previous 14064
From Richard:
Code cleanup.

This patch is the last contribution from Richard to the project.
Many thanks to him for his work with the GL viewer and the impressive
improvements in the past few months.

Revision 14064 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Feb 20 11:02:19 2006 UTC (8 years, 11 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 63489 byte(s)
Diff to previous 14015
From Richard:
Cleanup of shape code:

i) Remaining minodr code from TGLSceneObject moved to TGLLogicalShape or
derv. shape classes.

ii) Remove obsolete TGLSceneObject class.

iii) Move shape classes (TGLFaceSet etc) to own .h/.cxx + now derv. from
TGLogicalShape directly

Plus other minor tidying up.

WARNING!!
if you check-out from CVS, do
rm gl/src/G_*, gl/src/*.o
make

Revision 14015 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Feb 9 09:56:20 2006 UTC (8 years, 11 months ago) by couet
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 63506 byte(s)
Diff to previous 14004
- From Richard:

Improve clipping in GL viewer. Now show back (inner) faces when clipped,
with two sided lighting. Not as good as proper CSG op to cap clipped
solids - but looks better than them being invisible.

Also seems to improve performance which is suprising .....

Revision 14004 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Feb 8 10:49:26 2006 UTC (8 years, 11 months ago) by couet
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 63461 byte(s)
Diff to previous 13999
From Richard:

Fixes for wireframe and outline drawing:

i) Both very much slower (up to 10x) than normal filled polygons -
incorrectly calling DirectDraw() bypassing the DL caching.
ii) Outline style did expensive repeated GL state swaps for every
physical shape draw.
iii) Only TGLFaceSet supported outline draw style.

Now:

i) Wireframe roughly same speed (or faster) than filled (~10x faster)
ii) Outline takes ~ filled polygons + wireframe times - as would expect
(about 5x faster).
iii) All shapes support outline style.

Exatct speed gain hardware dependent - but even software GL faster.

Also tidied up draw style code - created new TGLDrawFlags class to wrap
style + LOD hint into.

Revision 13999 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Feb 7 14:18:46 2006 UTC (8 years, 11 months ago) by couet
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 63184 byte(s)
Diff to previous 13941
From Timur:

- Some mods for the rules checker

Revision 13941 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jan 26 17:06:51 2006 UTC (8 years, 11 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 63177 byte(s)
Diff to previous 13936
From Richard:
Fix minor draw problem with guides caused by previous changes.

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/TGLViewer.cxx
File length: 63187 byte(s)
Diff to previous 13781
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 13781 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jan 5 15:11:27 2006 UTC (9 years ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 70964 byte(s)
Diff to previous 13656
From Richard:
Performance improvements:

i) All drawables now implement SuportsLOD() method to test if they can
respond to LOD (tesselation) quality hint. If not the somewhat costly
projection size calculation can be skipped.

ii) SupportLOD() means low level OpenGL display caching can be enabled
for all shapes (previously only spheres). For shapes which don't support
LOD we create single cache entry using shape ID and kUnsupportedLOD
flag.

Draw times reduced - varries from 10% (Mesa software only GL - no proper
display lists) to about 250% on fast GL card with decent on card memory.

Revision 13656 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Dec 12 15:28:32 2005 UTC (9 years, 1 month ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 70949 byte(s)
Diff to previous 13599
From Richard:
Fix problem found with TH3 painting via g3d's TMarker3DBox to GL
Viewer.

Now GL viewer will take all objects if passed with fID == 0 - i.e. does
not test to see if already cached (as previously). In this case we force
acceptance of all objects offered to viewer as we can't rebuild the
scene.

Updated TMarker3DBox so when recycling object via static method, fID is
zero.

Revision 13599 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Dec 9 18:09:35 2005 UTC (9 years, 1 month ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 70138 byte(s)
Diff to previous 13511
From Richard:
Make some more parts of TGLViewer public + add functions for external
camera configuration.

Revision 13511 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Dec 6 17:52:04 2005 UTC (9 years, 1 month ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 65631 byte(s)
Diff to previous 13495
From Richard:
Fix problem with resizing GL window - especially under Linux -
could hang whole system.

Remove incorrect gVirtualX->ResizeWindow call in
TGLRenderArea::HandleConfigureNotify - system knows window is resized so
we don't need to tell it again.

Also make redraw in TGLViewer via timer so can't flood gVirtualGL with
stream of resize events.

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/TGLViewer.cxx
File length: 65214 byte(s)
Diff to previous 13338
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 13338 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Nov 24 14:23:20 2005 UTC (9 years, 2 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 64596 byte(s)
Diff to previous 13316
From Richard:
Fix so camera/clip not reset after external pad update - issue
reported here:
http://root.cern.ch/phpBB2/viewtopic.php?t=2779
We now setup only after first full internal scene rebuild of the viewer.

Revision 13316 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Nov 22 18:05:46 2005 UTC (9 years, 2 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 64671 byte(s)
Diff to previous 13270
From Richard:
 Second part of general tidy for coding conventions violations -
mainly commenting. Code under my name should be clear now.

Revision 13270 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Nov 17 10:38:36 2005 UTC (9 years, 2 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 56621 byte(s)
Diff to previous 13250
From Richard:
Yet another minor tweak of ortho camera clipping and lighting -
should now work ok will all detectors.

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/TGLViewer.cxx
File length: 56504 byte(s)
Diff to previous 13186
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 13186 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Nov 10 12:04:21 2005 UTC (9 years, 2 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 55771 byte(s)
Diff to previous 13164
From Richard:
Fix some crashes/scene lock problems when recycling and closing GL
viewer.

Revision 13164 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Nov 9 10:13:36 2005 UTC (9 years, 2 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 55721 byte(s)
Diff to previous 13160
From Richard:
Further minor refinement of ortho camera lighting and framing.

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/TGLViewer.cxx
File length: 55494 byte(s)
Diff to previous 13017
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 13017 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Oct 26 12:00:19 2005 UTC (9 years, 3 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 52797 byte(s)
Diff to previous 13005
From Richard:
i) Fix problem with loading of some geometries - child objects were not
always being sent causing incorrect caching inside viewer.

ii) Also replace all rest of asserts in TGLViewer with Error messages -
remaining asserts elsewhere in viewer will be removed later.

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/TGLViewer.cxx
File length: 52628 byte(s)
Diff to previous 12926
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 12926 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Oct 11 10:25:11 2005 UTC (9 years, 3 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 55368 byte(s)
Diff to previous 12892
From Richard:
Fix adjustment of GL colours - all components except diffuse
broken.

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/TGLViewer.cxx
File length: 55362 byte(s)
Diff to previous 12666
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 12666 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Sep 6 09:26:40 2005 UTC (9 years, 4 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 47329 byte(s)
Diff to previous 12652
From Timur;
Fix problems when printing the GL canvas.

Revision 12652 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Sep 5 11:03:27 2005 UTC (9 years, 4 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 47287 byte(s)
Diff to previous 12476
From Timur
Fix a problem with options.

Revision 12476 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Aug 15 13:56:50 2005 UTC (9 years, 5 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 47271 byte(s)
Diff to previous 12469
From Richard:
Add test impl. of ExecuteEvent & DistanceToPrimitive to TGLViewer.
Needs to be tested with Timur's changes.

Revision 12469 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Aug 12 07:38:14 2005 UTC (9 years, 5 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 45239 byte(s)
Diff to previous 12459
From Richard Maunder:
i) Fix transparent object picking - now pick opaque objects first, and
if none a transparent one (restore previous behaviour).
ii) Ensure transparent selected object is only drawn once.
iii) Allocate pro rata time for transparent drawing - previous
assumption that trans << opaque was invalid
iv) Added some extra debug info for gDebug >= 4, listing draw counts for
shape types (TGLCylinder, TGLFaceSet etc)

Revision 12459 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Aug 10 16:26:36 2005 UTC (9 years, 5 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 45247 byte(s)
Diff to previous 12382
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

Revision 12382 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jul 26 08:27:36 2005 UTC (9 years, 6 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 26916 byte(s)
Diff to previous 12316
From Richard:
First part of GL Viewer restructure for Timur GL Canvas impl.
Move TVirtualViewer3D interface to base TGLViewer class + associated
scene building.

Revision 12316 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jul 14 19:13:04 2005 UTC (9 years, 6 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 7587 byte(s)
Diff to previous 12281
From Richard Maunder:
Futher viewer tuning:

i) Avoid another temporary object in TGLBoundingBox::Center
ii) Add a cheap sphere/sphere test first in TGLBoundingBox::Overlap
iii) Only do scene rebuilds after a full quality draw has completed.

Revision 12281 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jul 8 15:39:29 2005 UTC (9 years, 6 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 7511 byte(s)
Diff to previous 12100
From Richard:
Improvements to camera and other GL viewer components to:

i) Avoid unrequired rebuilds.
ii) Improve near/far clip plane calculations - set using current
projected scene limits. Reduces depth buffer precision problems - seen
particularly on MESA software GL.
iii) Improve bounding box overlap tests.
iv) Tidy some vector/vertex code.

Revision 12100 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 21 16:54:17 2005 UTC (9 years, 7 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 7376 byte(s)
Diff to previous 12071
From Richard Maunder:
Fixes for camera limits - greater ranges +

Right Mouse: Dolly Camera (Move In/Out) with side/side motion (as
before). Also j/k keys control.

Mouse Wheel: Zoom Camera - adjust field of view of 'lens'. As expected
this can introduce noticable distortion at wide angles.

Combination of two gives a very large 'zoom' range for the camera
sufficient for current detectors.

Additionally modifiers adjusts the sensitvity of the interactions,
making easier to tune in on a certain part:

Shift:          x 10
Ctrl:           x 0.1
Shift+Ctrl:     x 0.01

NB Modifier must go down after mouse button for shift to avoid
[Under Win32 the modifiers do not work with mouse wheel (Zoom) as
TGEvent does not contain them for some reason. Will log a bug for this
to be looked into]

Also:

i) Added 'debug' mode for viewer (toggle with 'd' key) which draws out
camera interest, frustum basis, scene boxes etc in various colors. In
debug mode rebuilds only done when forced with space key strike.

ii) Fixes lost objects in some scene rebuilds.

Revision 12071 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 17 14:31:08 2005 UTC (9 years, 7 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 6983 byte(s)
Diff to previous 12062
From Richard Maunder:
Fix for pdf/eps generation which previous scene locking had broken.

Revision 12062 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 15 15:40:30 2005 UTC (9 years, 7 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 6695 byte(s)
Diff to previous 12052
From Richard Maunder:
Raise gDebug levels in GL viewer to:

>= 3: Timing info
>= 4: Locking and scene population, threading, main draw requests
>= 5: detailed draw info

Revision 12052 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 15 10:22:57 2005 UTC (9 years, 7 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 6694 byte(s)
Diff to previous 11880
From Richard maunder:
Draw Sorting: Draw objects in order of decreasing BBox size - makes
dropouts on time termianted draws less intrusive - especially on slow
cards/software only. Reduced interactive drawtime to 100msec (from
300msec).

Added scene locking + more tracing to assist with debugging -
particularly under win32 mutli-thread.

Revision 11880 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 26 12:29:50 2005 UTC (9 years, 8 months ago) by rdm
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 5578 byte(s)
Diff to previous 11879
Added missing cvs tag lines.

Revision 11879 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 26 12:05:44 2005 UTC (9 years, 8 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 5584 byte(s)
Diff to previous 11878
Several bug fixes from Richard

Revision 11878 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 26 10:24:45 2005 UTC (9 years, 8 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 5232 byte(s)
Diff to previous 11866
Cleanup files from Richard generated under windows with CRTL/M characters

Revision 11866 - (view) (download) (as text) (annotate) - [select for diffs]
Added Wed May 25 14:25:17 2005 UTC (9 years, 8 months ago) by brun
Original Path: trunk/gl/src/TGLViewer.cxx
File length: 5417 byte(s)
From Richard Maunder:
Major changes to GL viewer to support:

i) Logical/Physical shape pairings
ii) Level of detail (LOD) scheme (TGLSphere only using at present)
iii) Common display list cache
iv) Scene rebuilds for large geometries
v) Some basic interactivity improvements - draw timeouts, drop low LOD
shapes etc
vi) New camara interactions:

Left Mouse: Rotate
Middle Mouse: Truck (pan parallel to camera film plane)
Right Mouse: Side-side drag dolly/zoom
Double click any button to reset the camera.

The previous pan with arrow keys, and zoom on mouse wheel are still
supported.

Camera interaction is default in viewer. These extra camera modes mean
there are not enough mouse buttons for previous right context/select.
To select / invoke context menu use Shift+Left Button and Shift+Right
Button respectively.

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.

  Diffs between and
  Type of Diff should be a

Sort log by:

Subversion Admin
ViewVC Help
Powered by ViewVC 1.0.9