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

Log of /trunk/graf3d/gl/src/TGLBoundingBox.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: 24297 byte(s)
Diff to previous 44556
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 44556 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 5 09:20:41 2012 UTC (2 years, 7 months ago) by axel
File length: 24237 byte(s)
Diff to previous 37397
Remaining fixes for AIX, Solaris after removal of using namespace std from Riostream.h

Revision 37397 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Dec 8 13:54:23 2010 UTC (4 years, 1 month ago) by matevz
File length: 24215 byte(s)
Diff to previous 29717
Optimizations based on Druid callgrind dump sent by Manqi.

* TGLBoundingBox:
  Use TGLVertex3[8] instead of std::vector<> for member that always
  has 8 elements. Caused pointless allocations and fragmentation.

* TGLScene:
  In CalcBoundingBox() avoid creating a bounding box temporary in a
  loop over all elements -- use const& instead.

* TGLCamera:
  Fix for changes in TGLBoundingBox.

Revision 29717 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Aug 7 11:42:02 2009 UTC (5 years, 5 months ago) by matevz
File length: 24295 byte(s)
Diff to previous 29526
* TGLBoundingBox:
  - add function ExpandAligned(const TGLVertex3 & point).
* TGLVertex3:
  - add version of Set() taking double*.
* TEveTrans:
  - add version of MultiplyIP() taking double*;
  - fix a function doc.

Revision 29526 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jul 20 17:41:53 2009 UTC (5 years, 6 months ago) by matevz
File length: 23743 byte(s)
Diff to previous 23140
gl/
===
- Introduce common base class TGLPlot3D for wrappers over plot-painters.
- Move code for plot-painter instantiation from TGLScenePad to into TGLPlot3D.
- TGLAxisPainter - add option to use markup color from the current color-set
  instead of axis/label/title colors from TAttAxis.

eve/
====
- Add class TEvePlot3D - it wraps a TH2/TH3/TF2 object and draws it with
  given option string. TEveTrans can be applied over it - so the plot
  can be positioned/scaled to fit into a more complex scene.
- There are still problems with usage of depth-buffer in plot-painters so
  the plots overlay each other in somewhat random fashion.
- See tutorials/eve/test_glplot.C.

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: 23692 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/TGLBoundingBox.cxx
File length: 23692 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/TGLBoundingBox.cxx
File length: 23692 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/TGLBoundingBox.cxx
File length: 23754 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/src/TGLBoundingBox.cxx
File length: 23764 byte(s)
Diff to previous 17355
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 17355 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jan 16 08:35:56 2007 UTC (8 years ago) by brun
Original Path: trunk/gl/src/TGLBoundingBox.cxx
File length: 22527 byte(s)
Diff to previous 17322
Remove dependency on TMath.h

Revision 17322 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 15 11:30:47 2007 UTC (8 years ago) by brun
Original Path: trunk/gl/src/TGLBoundingBox.cxx
File length: 22523 byte(s)
Diff to previous 15176
Remove dependencies on TMath.h

Revision 15176 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri May 26 09:27:12 2006 UTC (8 years, 8 months ago) by brun
Original Path: trunk/gl/src/TGLBoundingBox.cxx
File length: 22523 byte(s)
Diff to previous 13860
Fix coding conventions violations

Revision 13860 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jan 18 16:57:59 2006 UTC (9 years ago) by brun
Original Path: trunk/gl/src/TGLBoundingBox.cxx
File length: 22485 byte(s)
Diff to previous 13424
From Richard:
Further GL / LOD performance improvements:

i) Shape can indicate LOD support by axis. For tubes TGLCylinder only X+
Y supported. Calc LOD hint based on larger projection of Z faces of
bounding box, avoiding excessive LOD for long tubes.

ii) Only test time limited draws every 50 objects to avoid excessive
timing costs.

Revision 13424 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Dec 1 11:04:04 2005 UTC (9 years, 1 month ago) by brun
Original Path: trunk/gl/src/TGLBoundingBox.cxx
File length: 20699 byte(s)
Diff to previous 13286
Use Riostream.h instead of <iostream>
This should fix portability problesm with the GL option under alpha

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/TGLBoundingBox.cxx
File length: 20699 byte(s)
Diff to previous 13160
From Richard:
 First part of coding conventions fixes for GL - mainly code
commenting.

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/TGLBoundingBox.cxx
File length: 19929 byte(s)
Diff to previous 13005
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 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/TGLBoundingBox.cxx
File length: 19789 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]
Modified Mon Oct 3 15:19:35 2005 UTC (9 years, 3 months ago) by brun
Original Path: trunk/gl/src/TGLBoundingBox.cxx
File length: 19791 byte(s)
Diff to previous 12562
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 12562 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Aug 30 10:29:52 2005 UTC (9 years, 4 months ago) by brun
Original Path: trunk/gl/src/TGLBoundingBox.cxx
File length: 17044 byte(s)
Diff to previous 12316
Fix some of the problems reported by the rulechecker in directory gl.
Still a few fixes required (from Timur and Richard).

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/TGLBoundingBox.cxx
File length: 17044 byte(s)
Diff to previous 12303
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 12303 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jul 13 15:27:36 2005 UTC (9 years, 6 months ago) by brun
Original Path: trunk/gl/src/TGLBoundingBox.cxx
File length: 16279 byte(s)
Diff to previous 12281
From Richard Maunder
Update to tune GL viewer a bit - reduce rebuild and draw times by:

i) Caching axes in TGLBoundingBox
ii) Avoiding creation/destruction of temp objects in TGLBoundingBox
iii) Disable excessive index range checks in TGLVertex3 etc

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/TGLBoundingBox.cxx
File length: 14475 byte(s)
Diff to previous 12181
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 12181 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 24 14:53:02 2005 UTC (9 years, 7 months ago) by brun
Original Path: trunk/gl/src/TGLBoundingBox.cxx
File length: 12586 byte(s)
Diff to previous 12168
From Richard Maunder
Fix for incorrect assert when creating BB with single point
(TPolyMarker) - found with overlap case. We can live with this - create
zero volume BB which camera always accepts as special case.

Revision 12168 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jun 23 15:08:45 2005 UTC (9 years, 7 months ago) by brun
Original Path: trunk/gl/src/TGLBoundingBox.cxx
File length: 12543 byte(s)
Diff to previous 12100
From Richard
Update to GL viewer to:

i) Retain modifications/section of physical shapes across scene
rebuilds.
ii) Be a bit smarter about rebuilds:

        Detect if all physicals accepted into scene - never need to rebuild in
these cases.
        Only destroy physicals no longer of interest to camera.

Imporves times a bit - more work on this required to remove stalls in
viewer interaction.

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/TGLBoundingBox.cxx
File length: 12543 byte(s)
Diff to previous 12052
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 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/TGLBoundingBox.cxx
File length: 12592 byte(s)
Diff to previous 11944
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 11944 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 1 17:53:24 2005 UTC (9 years, 7 months ago) by brun
Original Path: trunk/gl/src/TGLBoundingBox.cxx
File length: 12407 byte(s)
Diff to previous 11880
From Timur:
Fix a problem with colors

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/TGLBoundingBox.cxx
File length: 12404 byte(s)
Diff to previous 11878
Added missing cvs tag lines.

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/TGLBoundingBox.cxx
File length: 12402 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/TGLBoundingBox.cxx
File length: 12805 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