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

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

Parent Directory Parent Directory


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

Revision 46574 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Oct 16 17:56:15 2012 UTC (2 years, 3 months ago) by matevz
File length: 18736 byte(s)
Diff to previous 33627
Move enums away from global namespace:
- EOverlap is now in namespace Rgl;
- EClipType is now in class TGLClip;
- EPosition and EManipType were not used and have been removed.

EGLCoordType and EGLPlotType are left in top-level. In these two enums all
names begin with kGL so there is less chance for collision.

Revision 33627 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 27 19:19:58 2010 UTC (4 years, 7 months ago) by matevz
File length: 18595 byte(s)
Diff to previous 32338
Merge the following revisions from the fireworks branch:
33294, 33296, 33339, 33424, 33428, 33431, 33432, 33448, 33478


33294
=====

Author: alja
Date: Thu Apr 29 16:03:27 2010
New Revision: 33294

URL: http://root.cern.ch/viewvc?rev=33294&root=root&view=rev
Log:
In SetMagFieldObj() add additional argument to set ownership of magnetic field object.
For the backward compatibility, propagator by default owns given filed object.

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


33296
=====

Author: matevz
Date: Thu Apr 29 16:18:32 2010
New Revision: 33296

URL: http://root.cern.ch/viewvc?rev=33296&root=root&view=rev
Log:
Initialize field ownership flag. When settin gnew field, check the old flag.

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


33339
=====

Author: alja
Date: Mon May  3 10:47:09 2010
New Revision: 33339

URL: http://root.cern.ch/viewvc?rev=33339&root=root&view=rev
Log:
In TEveCalo2D update cellID cache when automatic scale is enabled.

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


33424
=====

Author: matevz
Date: Fri May  7 17:38:31 2010
New Revision: 33424

URL: http://root.cern.ch/viewvc?rev=33424&root=root&view=rev
Log:
Render frame in outline mode.

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


33428
=====

Author: matevz
Date: Fri May  7 20:26:32 2010
New Revision: 33428

URL: http://root.cern.ch/viewvc?rev=33428&root=root&view=rev
Log:
Preliminary commit -- towards generaliziation of handling of projected
tracks in topologically non-trivial projections.

Make variables in TEveTrack deprecated.

Introduce new variables in TEveTrackPropagator, extend GUI editor.

Modified:
    branches/dev/fireworks/graf3d/eve/inc/TEveTrack.h
    branches/dev/fireworks/graf3d/eve/inc/TEveTrackPropagator.h
    branches/dev/fireworks/graf3d/eve/inc/TEveTrackPropagatorEditor.h
    branches/dev/fireworks/graf3d/eve/src/TEveTrack.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveTrackPropagator.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveTrackPropagatorEditor.cxx


33431
=====

Author: matevz
Date: Sat May  8 17:45:42 2010
New Revision: 33431

URL: http://root.cern.ch/viewvc?rev=33431&root=root&view=rev
Log:
Add full support for handling of projected tracks in topologically non-trivial
projections. Use the following setters in TEveTrackPropagator:
   void   SetProjTrackBreaking(UChar_t x);
   void   SetRnrPTBMarkers(Bool_t x);
   TMarker& RefPTBAtt() { return fPTBAtt; }
to tune the behaviour. The following modes are supported:
   enum EProjTrackBreaking_e {
     kPTB_Break,            // break tracks
     kPTB_UseFirstPointPos, // use first track-point half-space
     kPTB_UseLastPointPos   // use last track-point half-space
   };

SetRnrPTBMarkers(Bool_t x) allows to enable drawing of a marker with
attributes RefPTBAtt() at break-points.

Modified:
    branches/dev/fireworks/graf3d/eve/inc/TEveProjections.h
    branches/dev/fireworks/graf3d/eve/inc/TEveTrack.h
    branches/dev/fireworks/graf3d/eve/inc/TEveTrackPropagator.h
    branches/dev/fireworks/graf3d/eve/src/TEveTrackGL.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveTrackProjected.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveTrackProjectedGL.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveTrackPropagator.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveTrackPropagatorEditor.cxx


33432
=====

Author: matevz
Date: Sat May  8 19:41:52 2010
New Revision: 33432

URL: http://root.cern.ch/viewvc?rev=33432&root=root&view=rev
Log:
Increase precision of break-point determination.

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


33448
=====

Author: matevz
Date: Mon May 10 17:48:34 2010
New Revision: 33448

URL: http://root.cern.ch/viewvc?rev=33448&root=root&view=rev
Log:
Use bounding-box of non-selectable scenes for frustum size determination also when in selection mode. This assures that near and far clipping planes stay the same and depth-buffer results can be interpreted with current camera parameters.

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


33478
=====

Author: matevz
Date: Wed May 12 13:24:42 2010
New Revision: 33478

URL: http://root.cern.ch/viewvc?rev=33478&root=root&view=rev
Log:
From Alja: mark clip-set as viewer-owned overlay element.

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

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: 18563 byte(s)
Diff to previous 31541
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 31541 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Dec 3 20:00:32 2009 UTC (5 years, 1 month ago) by matevz
File length: 18538 byte(s)
Diff to previous 29387
Add virtual function TGLClip::Setup(const TGLVector3&, const TGLVector3&)
and implement it for plane and box clipping objects.

void TGLClipPlane::Setup(const TGLVector3& point, const TGLVector3& normal)
{
   // Setup the clipping plane by point and normal.
   // Length of the normal determines the size of the plane drawn in
   // GL viewer. The normal points into the direction of visible half-plane.
   //
   // This only makes sense if you disable auto-update of the
   // clip-object:
   //   gl_viewer->SetClipAutoUpdate(kFALSE).
   // After calling this also call gl_viewer->RefreshPadEditor(gl_viewer)
   // and gl_viewer->RequestDraw().
}

void TGLClipBox::Setup(const TGLVector3& min_point, const TGLVector3& max_point)
{
   // Setup the clip box with min/max points directly.
   //
   // Same comments as for the TGLClipPlane apply.
}

Revision 29387 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jul 7 16:34:09 2009 UTC (5 years, 6 months ago) by matevz
File length: 16556 byte(s)
Diff to previous 28607
When initializing TGLClipPlane for the first time, place it in the
center of the scene's bounding-box.
Before that, plane was always positioned at (0,0,0) which lead to
unexpected behaviour when scene was not centered at the origin.

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: 16450 byte(s)
Diff to previous 26394
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 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: 15096 byte(s)
Diff to previous 26367
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 26367 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Nov 21 18:08:30 2008 UTC (6 years, 2 months ago) by matevz
File length: 15100 byte(s)
Diff to previous 23140
Merge revisions 26280:26327 from the fireworks branch.

26281
=====
- TGLScenePad: replace static variable with a data-member. Fix comments.

26304
=====
- TEveProjectionAxesGL: fix index out of bounds error reported by valgrind.

26306
=====
- TGLScene, TGLScenePad: better comments, consistent whitespace.
- TEveElement: add method DestroyOrWarn(): original Destroy() method is exception throwing.
- TEveScene: delete GL-scene and pad in destructor; add ownership information to class-docs.
- TEveSceneList: add method DestroyScenes().
- TEveViewer: add ownership information to class-docs.
- TEveManager: delete scenes, scene-list, viewers and viewer-list in destructor.

26325
=====
TEveTrackPropagator: implement the following overrides of virtual functions:
 - TEveElement::CheckReferenceCount() - take into account references from TEveRefBackPtr;
 - TEveRefBackPtr::OnZeroRefCount()   - call CheckReferenceCount().

26327
=====
Remove trailing whitespace in eve/ and gl/.

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: 15096 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/src/TGLClip.cxx
File length: 15096 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/src/TGLClip.cxx
File length: 15096 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/TGLClip.cxx
File length: 15145 byte(s)
Diff to previous 19049
remove :$ from tag line

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/TGLClip.cxx
File length: 15155 byte(s)
Diff to previous 19000
From Matev and Timur:
Timur:
1. Allow unique identification of shared GL contexts via
TGLContextIdentity class.

Matevz:
1. Improved overlay selection handling.
2. Perform GL context check before rendering, possibly invalidating
   registered display-lists.
3. Minimize updates for window expose and resize events.

Revision 19000 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jun 11 19:56:34 2007 UTC (7 years, 7 months ago) by brun
Original Path: trunk/gl/src/TGLClip.cxx
File length: 15099 byte(s)
Diff to previous 14064
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 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/TGLClip.cxx
File length: 11334 byte(s)
Diff to previous 14004
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 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/TGLClip.cxx
File length: 11342 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/src/TGLClip.cxx
File length: 11290 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/src/TGLClip.cxx
File length: 11315 byte(s)
Diff to previous 13286
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 13286 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Nov 18 20:26:44 2005 UTC (9 years, 2 months ago) by brun
Original Path: trunk/gl/src/TGLClip.cxx
File length: 11281 byte(s)
Diff to previous 13005
From Richard:
 First part of coding conventions fixes for GL - mainly code
commenting.

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/TGLClip.cxx
File length: 7700 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/src/TGLClip.cxx
File length: 2465 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