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

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

Parent Directory Parent Directory


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

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: 5728 byte(s)
Diff to previous 33124
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 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: 5505 byte(s)
Diff to previous 30886
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 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: 5276 byte(s)
Diff to previous 30855
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 30855 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Oct 23 16:45:07 2009 UTC (5 years, 3 months ago) by matevz
File length: 4963 byte(s)
Diff to previous 23140
graf3d/gl/src/TGLEventHandler.cxx:
graf3d/gl/src/TGLSelectRecord.cxx:
graf3d/gl/inc/TGLSelectRecord.h:
Add support for multiple second level selection.

graf3d/eve/src/TEveCalo.cxx:
Fix possible crash at exit: in destructor check array initialization.

graf3d/eve/src/TEveCalo3DGL.cxx
graf3d/eve/src/TEveCalo2DGL.cxx
graf3d/eve/src/TEveCaloLegoGL.cxx
graf3d/eve/inc/TEveCaloData.h
graf3d/eve/src/TEveCaloData.cxx
Enable succeding tower selection. Disable rendering of towers if calorimeter
object is highlighted.

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: 4743 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/TGLSelectRecord.h
File length: 4743 byte(s)
Diff to previous 20220
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 20220 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Oct 4 23:00:41 2007 UTC (7 years, 3 months ago) by rdm
Original Path: trunk/gl/inc/TGLSelectRecord.h
File length: 4743 byte(s)
Diff to previous 19049
remove a bunch of $Name$ tags that were missed due to a problem in the
initial svn patch up script. Also add svn:keywords Id to all files not
having the property yet.

Revision 19049 - (view) (download) (as text) (annotate) - [select for diffs]
Added Mon Jun 18 07:02:16 2007 UTC (7 years, 7 months ago) by brun
Original Path: trunk/gl/inc/TGLSelectRecord.h
File length: 4750 byte(s)
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.

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