[root] / trunk / graf3d / eve / src / TEvePolygonSetProjectedGL.cxx Repository:
ViewVC logotype

Log of /trunk/graf3d/eve/src/TEvePolygonSetProjectedGL.cxx

Parent Directory Parent Directory


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

Revision 43039 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Feb 16 22:12:04 2012 UTC (2 years, 11 months ago) by matevz
File length: 6192 byte(s)
Diff to previous 43018
Fix logic for display-list usage during highlighting of multi-colored objects.

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: 6160 byte(s)
Diff to previous 36892
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 36892 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Nov 24 10:24:35 2010 UTC (4 years, 2 months ago) by matevz
File length: 7363 byte(s)
Diff to previous 36853
Also store state of fDrawFrame flag in shape-extract. For consistency rename fMiniOutline to fMiniFrame.

Revision 36853 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 22 19:48:34 2010 UTC (4 years, 2 months ago) by matevz
File length: 7365 byte(s)
Diff to previous 33124
* TEvePolygonSetProjected:
  When searching for duplicate polygons, also check the reverse
  orientation.

* TEveGeoShape, TEveGeoShapeProjected, TEvePolygonSetProjected,
  TEveGeoShapeExtract:
  Introduce new flag 'Bool_t fMiniOutline' that instructs the renderer
  to minimize the shape outline.

  This still needs to be implemented for TEveGeoShape and
  TEvePolygonSetProjected.

* TEvePolygonSetProjectedGL:
  When mini-outline is requested, remove the inner lines.

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: 6955 byte(s)
Diff to previous 32483
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 32483 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 5 19:31:54 2010 UTC (4 years, 10 months ago) by matevz
File length: 6850 byte(s)
Diff to previous 31517
* TEveBox
  New class do draw simple cuboid with minimal memory usage.
  Sub-class of TEveShape.

* TEveShape
  Add flag to switch outline drawing on and off.

* TEvePolygonSetProjected
  Honour the new flag in TEveShape.

Revision 31517 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Dec 3 11:56:23 2009 UTC (5 years, 1 month ago) by matevz
File length: 6779 byte(s)
Diff to previous 30752
Move TEveVector declaratations to a separate file to avoid pulling in
TParticle.h throughout eve.

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: 6783 byte(s)
Diff to previous 29676
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 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: 4692 byte(s)
Diff to previous 28197
Add support for control over viewer-global point-size and line-width
scaling. Additionally, allow wireforame and outline line widths to be
specified separately (on viewer / scene / scene-info level).

This will allow for scaling of pixel-based objects (lines and points) when
saving of screenshots with very high resolution is
implemented.

Basic support is impemented across TGLViewer, TGLScene, TGLRnrCtx and
TGLUtil.

Classes that used glPointSize and glLineWidth were modified to call
corresponding static function in TGLUtil class.

Controls were added to TGLViewerEditor (under Style tab).

Revision 28197 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Apr 14 13:59:27 2009 UTC (5 years, 9 months ago) by matevz
File length: 4685 byte(s)
Diff to previous 26148
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 26148 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Nov 11 19:58:19 2008 UTC (6 years, 2 months ago) by matevz
File length: 4364 byte(s)
Diff to previous 26068
TGLUtil::GetDrawTesselatorXyzz
------------------------------
Four different tesselators are needed depending on what type
(float/double) and size (3d/4d) of data is being fed into them.

Thanks to Bertrand for spotting and localizing this problem.


TGLFaceSet
TEvePolygonSetProjectedGL
-------------------------
Use new functions for obtaining the tesselators.

Revision 26068 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 3 17:31:14 2008 UTC (6 years, 2 months ago) by matevz
File length: 4362 byte(s)
Diff to previous 26061
Move common code for creation of GLUtesselator object from TGLFaceSet
and TEvePolygonSetProjectedGL to TGLUtil.

Use GLUtesselator instead of deprecated typedef GLUtriangulatorObj.

Revision 26061 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 3 10:41:34 2008 UTC (6 years, 2 months ago) by rdm
File length: 5462 byte(s)
Diff to previous 26054
adjust range of MacOS X gcc that needs variadic(...) funcptr for
tessel callback.

Revision 26054 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 3 09:24:22 2008 UTC (6 years, 2 months ago) by rdm
File length: 5462 byte(s)
Diff to previous 24214
fix typedef for gluTessCallback funcptr to work also on old MacOS X 10.4.

Revision 24214 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 11 14:48:35 2008 UTC (6 years, 7 months ago) by matevz
File length: 5359 byte(s)
Diff to previous 23140
TGLObject and subclasses
-----------------------------------------

Introduce new member 'Bool_t TGLObject::fMultiColor' that specifies
whether the class uses multiple colors for its rendering. This
information is important when drawing highlight or outlines around
objects as display-lists can not be used if color-state changes are
stored in them.

With this modification most of the logick for
  virtual Bool_t TGLLogicalShape::ShouldDLCache(...)
can be implemented in TGLObject version.

Most of the GL-rendering classes have been fixed to properly set the
fMultiColor state and rely on the TGLObject::ShouldDLCache().


TGLPhysicalShape
----------------

Use TGLLogicalShape::Draw() instead of DirectDraw() when drawing
highlights to allow usage of display-lists for classes that do not use
multiple colors.


TGLUtil
-------

Decrease the default draw-quality for DrawLine/Cylinder/Sphere/Disk to
10. With software rendering the previous value of 60 caused very low
refresh rates.

Introduce two inner classes TDrawQualityModifier and
TDrawQualityScaler allowing easy/safe modification of draw-quality for
the above functions.

Introduce inner class TColorLocker allowing easy/safe modification of
color-lock state.

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: 5205 byte(s)
Diff to previous 22539
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 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/eve/src/TEvePolygonSetProjectedGL.cxx
File length: 5205 byte(s)
Diff to previous 21310
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 21310 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Dec 10 19:05:45 2007 UTC (7 years, 1 month ago) by matevz
Original Path: trunk/eve/src/TEvePolygonSetProjectedGL.cxx
File length: 5012 byte(s)
Diff to previous 21252
Fix coding convention violations.

Revision 21252 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Dec 7 01:39:32 2007 UTC (7 years, 1 month ago) by matevz
Original Path: trunk/eve/src/TEvePolygonSetProjectedGL.cxx
File length: 5132 byte(s)
Diff to previous 21246
Changes for marking of top-level objects in GL window.
- TGLLogicalShape: move DirectDraw() from protected to public.
- Implement color-locking for object rendering.
- Wrap all calls to glColor() to go via TGLUtil::Color().

Revision 21246 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Dec 6 17:55:44 2007 UTC (7 years, 1 month ago) by matevz
Original Path: trunk/eve/src/TEvePolygonSetProjectedGL.cxx
File length: 5125 byte(s)
Diff to previous 21198
Fix some CCVs.

Revision 21198 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Dec 5 02:31:27 2007 UTC (7 years, 1 month ago) by matevz
Original Path: trunk/eve/src/TEvePolygonSetProjectedGL.cxx
File length: 5131 byte(s)
Diff to previous 21054
Prefix enum types with 'E'.

Fix fix member names to begin with f[A-Z].

Fix function member names to begin with a capital letter.

Add some docs.

Revision 21054 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 26 18:00:41 2007 UTC (7 years, 1 month ago) by matevz
Original Path: trunk/eve/src/TEvePolygonSetProjectedGL.cxx
File length: 5129 byte(s)
Diff to previous 21049
When including ROOT header files use "" instead of <>.

Replace NULL with 0 in TEveGLText.

TEveTrackPropagator: make public data-members protected and provide
get/set methods. Second attempt at fixing Solaris cc errors: make
Helix and Vertex4d struct declarations public.

Revision 21049 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 26 16:48:58 2007 UTC (7 years, 1 month ago) by matevz
Original Path: trunk/eve/src/TEvePolygonSetProjectedGL.cxx
File length: 5129 byte(s)
Diff to previous 21044
Fix errors reported by Solaris cc.

Revision 21044 - (view) (download) (as text) (annotate) - [select for diffs]
Added Mon Nov 26 14:31:05 2007 UTC (7 years, 1 month ago) by rdm
Original Path: trunk/eve/src/TEvePolygonSetProjectedGL.cxx
File length: 5040 byte(s)
from Matevz:
add the TEve classes to the svn trunk. Code compiles without warnings on
MacOS X, Linux and Windows XP. Tutorials still don't work, as init code
is still missing (coming later today).

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