[root] / trunk / graf3d / gl / inc / TGLManip.h Repository:
ViewVC logotype

Log of /trunk/graf3d/gl/inc/TGLManip.h

Parent Directory Parent Directory


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

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: 2610 byte(s)
Diff to previous 30815
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 30815 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Oct 20 13:49:22 2009 UTC (5 years, 3 months ago) by rdm
File length: 2761 byte(s)
Diff to previous 26394
fixes in headers to make them self consistent, i.e. they
contain all needed headers to define all used types. This is
in general good practice and needed to syntax-check the individual
headers files with clang.

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: 2759 byte(s)
Diff to previous 23140
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 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: 3745 byte(s)
Diff to previous 20882
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 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/inc/TGLManip.h
File length: 3745 byte(s)
Diff to previous 19826
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 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/inc/TGLManip.h
File length: 3745 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/inc/TGLManip.h
File length: 3795 byte(s)
Diff to previous 19000
remove :$ from tag line

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/inc/TGLManip.h
File length: 3805 byte(s)
Diff to previous 15134
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 15134 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue May 23 04:47:42 2006 UTC (8 years, 8 months ago) by brun
Original Path: trunk/gl/inc/TGLManip.h
File length: 3571 byte(s)
Diff to previous 15044
From Federico Carminati:

"I have implemented all copy and equal operators needed to silence all
warnings in AliRoot, as requested. I have implemented shallow copies as
would do the default operators synthetized by the compiler.
Most operators are protected. If users complain, you just have to move
them into the public area, but class derivation is of course supported.
It has been a terrible job, I have modified 278 files, but the changes
are backward compabile, and this goes a long way to permitting user to
use the effc++ flag with root headers."

Revision 15044 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon May 15 07:43:34 2006 UTC (8 years, 8 months ago) by brun
Original Path: trunk/gl/inc/TGLManip.h
File length: 3580 byte(s)
Diff to previous 14203
From Federico:
headers modified to support the gcc option effc++

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/inc/TGLManip.h
File length: 3498 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/inc/TGLManip.h
File length: 3477 byte(s)
Diff to previous 14073
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 14073 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Feb 21 16:39:49 2006 UTC (8 years, 11 months ago) by brun
Original Path: trunk/gl/inc/TGLManip.h
File length: 3284 byte(s)
Diff to previous 14004
From Richard:
Fix some visual glitches with manipulator and clip drawing in wireframe
and outline styles.

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/inc/TGLManip.h
File length: 3306 byte(s)
Diff to previous 13954
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 13954 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 30 17:42:06 2006 UTC (8 years, 11 months ago) by rdm
Original Path: trunk/gl/inc/TGLManip.h
File length: 3272 byte(s)
Diff to previous 13936
fix cvs ident line that was missing trailing $.

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/inc/TGLManip.h
File length: 3276 byte(s)
Diff to previous 13316
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 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/inc/TGLManip.h
File length: 3187 byte(s)
Diff to previous 13250
From Richard:
 Second part of general tidy for coding conventions violations -
mainly commenting. Code under my name should be clear now.

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/inc/TGLManip.h
File length: 2211 byte(s)
Diff to previous 13005
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 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/inc/TGLManip.h
File length: 2740 byte(s)
Diff to previous 12892
From Richard:
i) Add rotation manipulator.
ii) Allow direct manipulation of clipping plane - rotate/translate.
Cannot scale - makes no sense.

Note:

iii) Rotation interaction requires some improvement - difficult when
ring is almost parallel with eye line of camera.
iv) Still need to extend for all selected objects - requires some
internal rearrangement of TGLScene/TGLViewer

Revision 12892 - (view) (download) (as text) (annotate) - [select for diffs]
Added Mon Oct 3 15:19:35 2005 UTC (9 years, 3 months ago) by brun
Original Path: trunk/gl/inc/TGLManip.h
File length: 2548 byte(s)
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.

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