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

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

Parent Directory Parent Directory


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

Revision 49072 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Apr 4 05:36:13 2013 UTC (21 months, 2 weeks ago) by matevz
File length: 10724 byte(s)
Diff to previous 44693
From Alja: Make camera state streamable.

Revision 44693 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jun 14 18:53:13 2012 UTC (2 years, 7 months ago) by matevz
File length: 10196 byte(s)
Diff to previous 33864
Implement arc-ball camera rotation. Use the 'a' key to switch between the
standard (up-direction fixed) and arc-ball rotation modes.

* TGLCamera
  Add functions RotateArcBall() and RotateArcBallRad().
  Add member 'Bool_t fWasArBalled'. Check its state in standard Rotate
  function and fix up direction if needed.

* TGLOrthoCamera, TGLPerspectiveCamera
  Use combined view matrix's third vector as the up direction.

* TGLEventHandler
  Add arc-ball state variable and key-handling.
  Add logic for calling std vs arc-ball camera rotate function.

* TGLSAViewer
  Document arc-ball key binding in help text.

Revision 33864 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jun 14 09:47:19 2010 UTC (4 years, 7 months ago) by matevz
File length: 10202 byte(s)
Diff to previous 29763
Merge the following revisions from the fireworks branch:
33631, 33666, 33668, 33690, 33700, 33701, 33702, 33704, 33751, 33753,
33767, 33770, 33774, 33787, 33789, 33790, 33791, 33792, 33796, 33798,
33804, 33817, 33823, 33825

gl/:
----
- extensions for transparency handling in TGLUtil;
- allow disabling of internal viewer selection;
- allow fixing of default camera center;
- fix global light placement -- it was only correct for XoZ floor or
  when scene center was at the origin.

eve/:
-----
- propagation of main transparency to projected replicas and to
  compound members;
- when projecting TEveStraightLineSet in RhoZ, break lines crossing
  the separating plane (required change of internal representation);
- anti-flickering support for TEveBoxSet;
- proper multiple-selection handling in TEveCalo classes;
- small new features, bug fixes in TEveCalo classes.


33631
=====

Author: alja
Date: Fri May 28 12:50:27 2010
New Revision: 33631

URL: http://root.cern.ch/viewvc?rev=33631&root=root&view=rev
Log:
Fix bug in tool tip.

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


33666
=====

Author: matevz
Date: Mon May 31 13:41:54 2010
New Revision: 33666

URL: http://root.cern.ch/viewvc?rev=33666&root=root&view=rev
Log:
Propagate main transparency the same way as main color is propagated:

- from projectables to projecteds;

- in CopyVizParams();

- in TEveCompound to children depending on the following CSC bit settings:
   kCSCBApplyMainTransparencyToAllChildren
   kCSCBApplyMainTransparencyToMatchingChildren


In TEveElementList add member 'Bool_t fDoTransparency' (analoguous to
fDoColor).

Modified:
    branches/dev/fireworks/graf3d/eve/inc/TEveCompound.h
    branches/dev/fireworks/graf3d/eve/inc/TEveElement.h
    branches/dev/fireworks/graf3d/eve/inc/TEveProjectionBases.h
    branches/dev/fireworks/graf3d/eve/src/TEveCompound.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveElement.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveProjectionBases.cxx


33668
=====

Author: matevz
Date: Mon May 31 15:44:20 2010
New Revision: 33668

URL: http://root.cern.ch/viewvc?rev=33668&root=root&view=rev
Log:
In TEveelement introduce Bool_t members fCanEditMainColor and
fCanEditMainTransparency. The corresponding base-class functions now
return the value of these data members.

In most sub-classes that require editng of main color and transparency
it was now enough to set these data-members to kTRUE in constructors.

Further, this allows per object setting of color / transparency
editability via:
   void SetEditMainColor(Bool_t);
   void SetEditMainTransparency(Bool_t);

Modified:
    branches/dev/fireworks/graf3d/eve/inc/TEveArrow.h
    branches/dev/fireworks/graf3d/eve/inc/TEveCalo.h
    branches/dev/fireworks/graf3d/eve/inc/TEveDigitSet.h
    branches/dev/fireworks/graf3d/eve/inc/TEveElement.h
    branches/dev/fireworks/graf3d/eve/inc/TEveGeoShape.h
    branches/dev/fireworks/graf3d/eve/inc/TEveShape.h
    branches/dev/fireworks/graf3d/eve/inc/TEveText.h
    branches/dev/fireworks/graf3d/eve/src/TEveArrow.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveCalo.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveDigitSet.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveElement.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveGeoShape.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveShape.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveText.cxx


33690
=====

Author: matevz
Date: Tue Jun  1 13:07:46 2010
New Revision: 33690

URL: http://root.cern.ch/viewvc?rev=33690&root=root&view=rev
Log:
Add transparency argument to TGLUtil:
   RenderPolyMarkers(...)
   RenderPolyLine(...)

In eve/ use Char_t for transparency (as it is in gl/).
Until now UChar_t was used in eve/.

Modified:
    branches/dev/fireworks/graf3d/eve/inc/TEveCalo.h
    branches/dev/fireworks/graf3d/eve/inc/TEveCaloLegoOverlay.h
    branches/dev/fireworks/graf3d/eve/inc/TEveCompound.h
    branches/dev/fireworks/graf3d/eve/inc/TEveDigitSet.h
    branches/dev/fireworks/graf3d/eve/inc/TEveElement.h
    branches/dev/fireworks/graf3d/eve/inc/TEveGeoNode.h
    branches/dev/fireworks/graf3d/eve/inc/TEveProjectionBases.h
    branches/dev/fireworks/graf3d/eve/inc/TEveTriangleSet.h
    branches/dev/fireworks/graf3d/eve/inc/TEveUtil.h
    branches/dev/fireworks/graf3d/eve/src/TEveCaloLegoEditor.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveCaloLegoOverlay.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveCaloVizEditor.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveCompound.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveDigitSet.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveElement.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveElementEditor.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveGeoNode.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveLineGL.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveProjectionBases.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveRGBAPalette.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveStraightLineSetGL.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveTrackGL.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveTrackProjectedGL.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveUtil.cxx
    branches/dev/fireworks/graf3d/gl/inc/TGLUtil.h
    branches/dev/fireworks/graf3d/gl/src/TGLUtil.cxx
    branches/dev/fireworks/graf3d/gl/src/TPointSet3DGL.cxx


33700
=====

Author: matevz
Date: Tue Jun  1 18:55:06 2010
New Revision: 33700

URL: http://root.cern.ch/viewvc?rev=33700&root=root&view=rev
Log:
Do not overload TGLUtil::Color() for setting alpha and transparency --
name the functions ColorAlpha() and ColorTransparency().

In TEveStraightLineSetGL pass main-transparency also as transparency
of the marker.

Modified:
    branches/dev/fireworks/graf3d/eve/src/TEveStraightLineSetGL.cxx
    branches/dev/fireworks/graf3d/gl/inc/TGLUtil.h
    branches/dev/fireworks/graf3d/gl/src/TGLPhysicalShape.cxx
    branches/dev/fireworks/graf3d/gl/src/TGLUtil.cxx
    branches/dev/fireworks/graf3d/gl/src/TGLViewer.cxx


33701
=====

Author: matevz
Date: Tue Jun  1 20:36:47 2010
New Revision: 33701

URL: http://root.cern.ch/viewvc?rev=33701&root=root&view=rev
Log:
TEveProjections:
- Add virtual function
    BisectBreakPoint(TEveVector& vL, TEveVector& vR, Float_t eps_sqr=1e-10f);
  that find both edges of a segment that is split over two
  non-contiguous space-regions.

TEveStraightLineSet:
- Handle breaking of each line segment in a projection and create two
  separate parts.

Modified:
    branches/dev/fireworks/graf3d/eve/inc/TEveProjections.h
    branches/dev/fireworks/graf3d/eve/inc/TEveStraightLineSet.h
    branches/dev/fireworks/graf3d/eve/src/TEveProjections.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveStraightLineSet.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveStraightLineSetGL.cxx


33702
=====

Author: matevz
Date: Tue Jun  1 21:18:54 2010
New Revision: 33702

URL: http://root.cern.ch/viewvc?rev=33702&root=root&view=rev
Log:
Simplify internal representation of marker in a line-set.

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


33704
=====

Author: matevz
Date: Tue Jun  1 21:28:27 2010
New Revision: 33704

URL: http://root.cern.ch/viewvc?rev=33704&root=root&view=rev
Log:
Remove unused variable.

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


33751
=====

Author: matevz
Date: Fri Jun  4 16:14:12 2010
New Revision: 33751

URL: http://root.cern.ch/viewvc?rev=33751&root=root&view=rev
Log:
Small fixes for track rendering.

TEveTrack
- Implement virtual ComputeBBox() to include path-mark positions in
  the bounding box calculation.

TEveTrackGL
- Number of visible path-marks was computed wrongly.

TEvePointSet
- Remove virtual ComputeBBox() -- it was just calling the base-class
  version.

TPointSet3D
- Simplify ComputeBBox().

Modified:
    branches/dev/fireworks/graf3d/eve/inc/TEvePointSet.h
    branches/dev/fireworks/graf3d/eve/inc/TEveTrack.h
    branches/dev/fireworks/graf3d/eve/src/TEvePointSet.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveTrack.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveTrackGL.cxx
    branches/dev/fireworks/graf3d/g3d/src/TPointSet3D.cxx


33753
=====

Author: matevz
Date: Fri Jun  4 16:45:38 2010
New Revision: 33753

URL: http://root.cern.ch/viewvc?rev=33753&root=root&view=rev
Log:
Move anti-flickering flag from TEveQuadSet to TEveDigitSet.
Implement it in TEveBoxSet-GL rendering, too.

Modified:
    branches/dev/fireworks/graf3d/eve/inc/TEveDigitSet.h
    branches/dev/fireworks/graf3d/eve/inc/TEveQuadSet.h
    branches/dev/fireworks/graf3d/eve/src/TEveBoxSetGL.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveDigitSet.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveQuadSet.cxx


33767
=====

Author: alja
Date: Mon Jun  7 19:49:03 2010
New Revision: 33767

URL: http://root.cern.ch/viewvc?rev=33767&root=root&view=rev
Log:
In TEveCaloDataVec add interface to add new slice and getters to read slice values and cell geometry.

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


33770
=====

Author: matevz
Date: Tue Jun  8 11:54:09 2010
New Revision: 33770

URL: http://root.cern.ch/viewvc?rev=33770&root=root&view=rev
Log:
Take the right fP for point-array when calculating bounding-box.

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


33774
=====

Author: alja
Date: Tue Jun  8 13:09:52 2010
New Revision: 33774

URL: http://root.cern.ch/viewvc?rev=33774&root=root&view=rev
Log:
TEveCaloLegoGL:
Fix picking in  kValSizeOutline mode.

TEveCaloLegoEditor:
Fix last enum in 2D mode entry.

Modified:
    branches/dev/fireworks/graf3d/eve/src/TEveCaloLegoEditor.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveCaloLegoGL.cxx


33787
=====

Author: matevz
Date: Tue Jun  8 18:24:27 2010
New Revision: 33787

URL: http://root.cern.ch/viewvc?rev=33787&root=root&view=rev
Log:
Fix invalid iterator access reported by valgrind.

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


33789
=====

Author: matevz
Date: Tue Jun  8 19:08:23 2010
New Revision: 33789

URL: http://root.cern.ch/viewvc?rev=33789&root=root&view=rev
Log:
Fix another invalid iterator access reported by valgrind.

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


33790
=====

Author: alja
Date: Tue Jun  8 19:51:15 2010
New Revision: 33790

URL: http://root.cern.ch/viewvc?rev=33790&root=root&view=rev
Log:
Bugfix:: In TEveCaloDataVec::AddSlice initalise vector of tower values.

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


33791
=====

Author: matevz
Date: Tue Jun  8 22:31:00 2010
New Revision: 33791

URL: http://root.cern.ch/viewvc?rev=33791&root=root&view=rev
Log:
Add flag allowing to disable internal GL-viewer selection.
To disable it call:
  handler->SetDoInternalSelection(kFALSE);

Modified:
    branches/dev/fireworks/graf3d/gl/inc/TGLEventHandler.h
    branches/dev/fireworks/graf3d/gl/src/TGLEventHandler.cxx


33792
=====

Author: matevz
Date: Tue Jun  8 23:08:09 2010
New Revision: 33792

URL: http://root.cern.ch/viewvc?rev=33792&root=root&view=rev
Log:
Add option to fix the default camera center.
To activate, call:
  camera->SetFixDefCenterVec(x, y, z);
  camera->SetFixDefCenter(kTRUE);
This will take effect on next camera reset.
External center still overrides the setting.

Modified:
    branches/dev/fireworks/graf3d/gl/inc/TGLCamera.h
    branches/dev/fireworks/graf3d/gl/src/TGLCamera.cxx
    branches/dev/fireworks/graf3d/gl/src/TGLOrthoCamera.cxx
    branches/dev/fireworks/graf3d/gl/src/TGLPerspectiveCamera.cxx


33796
=====

Author: alja
Date: Wed Jun  9 12:51:06 2010
New Revision: 33796

URL: http://root.cern.ch/viewvc?rev=33796&root=root&view=rev
Log:
Fix bug in redering of selected cells in case cells are highlighted the same time.

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


33798
=====

Author: matevz
Date: Wed Jun  9 15:28:30 2010
New Revision: 33798

URL: http://root.cern.ch/viewvc?rev=33798&root=root&view=rev
Log:
White space.

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


33804
=====

Author: matevz
Date: Wed Jun  9 20:49:33 2010
New Revision: 33804

URL: http://root.cern.ch/viewvc?rev=33804&root=root&view=rev
Log:
Use central function TEveCaloData::ProcessSelection(...) to process
(multiple secondary) selection from all GL renderers (3D, 2D and
Lego).

Fix rendering of non-rebinned lego for multiple selection.

Modified:
    branches/dev/fireworks/graf3d/eve/inc/TEveCaloData.h
    branches/dev/fireworks/graf3d/eve/src/TEveCalo2DGL.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveCalo3DGL.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveCaloData.cxx
    branches/dev/fireworks/graf3d/eve/src/TEveCaloLegoGL.cxx


33817
=====

Author: matevz
Date: Thu Jun 10 15:31:17 2010
New Revision: 33817

URL: http://root.cern.ch/viewvc?rev=33817&root=root&view=rev
Log:
Do not redraw if the widget is not mapped.

Add option to block redraw in UpdateScene().

Modified:
    branches/dev/fireworks/graf3d/gl/inc/TGLViewer.h
    branches/dev/fireworks/graf3d/gl/src/TGLViewer.cxx


33823
=====

Author: matevz
Date: Thu Jun 10 16:25:59 2010
New Revision: 33823

URL: http://root.cern.ch/viewvc?rev=33823&root=root&view=rev
Log:
Fix placement of global lights.

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


33825
=====

Author: matevz
Date: Thu Jun 10 16:47:54 2010
New Revision: 33825

URL: http://root.cern.ch/viewvc?rev=33825&root=root&view=rev
Log:
Hide tooltip on key event.

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

Revision 29763 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Aug 12 10:47:56 2009 UTC (5 years, 5 months ago) by matevz
File length: 10060 byte(s)
Diff to previous 28201
Improve documentation of camera-configure methods.
Allow the passed 'double* center' to be 0 - do not change the camera
center in this case.

Revision 28201 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Apr 14 16:04:20 2009 UTC (5 years, 9 months ago) by matevz
File length: 9742 byte(s)
Diff to previous 27369
Move code for plot-painter camera out of TGLOrthoCamera and put it
into a new class TGLPlotCamera.

Revision 27369 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Feb 6 17:35:54 2009 UTC (5 years, 11 months ago) by matevz
File length: 14906 byte(s)
Diff to previous 25431
Add function:
  Bool_t TGLCamera::Truck(Double_t xDelta, Double_t yDelta)
that allows external code to control camera translation.

Use this also for the common code from perspective / orthographic camera.

Revision 25431 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 17 08:35:34 2008 UTC (6 years, 4 months ago) by matevz
File length: 14974 byte(s)
Diff to previous 24186
Merge Alja's development since the release from the fireworks branch.

25284
-----
TEveCaloLegoGL, TGLAxisPainter, TGLCameraOverlay:
Fix tick-mark and font offsets.

25291
-----
TGLViewerEditor, TGLViewer, TGLCamera, TGLOrthoCamera,
TGLCameraOverlay, LinkDef.h:
Remove TGLCameraMarkupStyle. Functionality is moved to TGLCameraOverlay.

TGLFontManager:
Add utility function TGLFont::RenderBitmap() to draw pixmap
and bitmap fonts on given location.

TEveProjectionAxesGL:
Use TGLFont::RenderBitmap() function.

cms_calo.C, projection_test_prescale.C, projection_test.C, test_compound.C:
Camera markup is not drawn by default in orthographic projection.

25319
-----
TGLCameraOverlay.cxx:
Fix gl pick matrix.

TEveLegoOverlay:
Move inheritance from TGLOverlayElement to TGLCameraOverlay.

25395
-----
TGLFontManager, TGLAxisPainter, TGLCameraOverlay,TEveLegoOverlay, TEveCaloLegoGL:
Modify utility function TGLFont::RenderBitmap() to render text with given alignment.

TEveProjectionAxes:
Render axis on the edges of viewport instead of on edges of bounding box.

25405
-----
TEveProjectionAxesGL:
Draw axis from start to end of frustum corners if frustum inside projection limits,
else draw axis from low to high projection limit.
Set tick-mark size relative to viewport size.

Revision 24186 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jun 9 11:34:54 2008 UTC (6 years, 7 months ago) by matevz
File length: 17340 byte(s)
Diff to previous 24059
Take phi/theta from gPad in TGLPlotPainter constructor and use
them when setting camera rotation.

Revision 24059 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri May 30 04:15:11 2008 UTC (6 years, 7 months ago) by matevz
File length: 17369 byte(s)
Diff to previous 23869
- TEveGeoShape
  Add static data-member holding a pointer to a default geo-manager
  that allows us to capture dangling geo-shapes as they are created for
  or imported into TEveGeoShape.

- TGLCamera
  Fix AdjustAndClampVal() fix poorly implementd logarithmic scaling of
  the value step.

- TGLOrthoCamera
  Add get/set methods for fZoomMin/Max.

- TGLViewer, TGLSAViewer
  Move SavePicture() from TGLSAViewer to TGLViewer and improve
  structure of the code. This allows also images from TGLEmbedded
  viewer to be saved to a file.

- projection_test.C
  Set min/max-zoom of the camera.

Revision 23869 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 15 19:48:00 2008 UTC (6 years, 8 months ago) by matevz
File length: 16746 byte(s)
Diff to previous 23665
Remove trailing whitespace.

Revision 23665 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue May 6 14:38:14 2008 UTC (6 years, 8 months ago) by matevz
File length: 16747 byte(s)
Diff to previous 23140
Added three more orthographic cameras (looking at the scene from
another side).

Added virtual methods Bool_t TGLCamera::IsPerspective()/IsOrthographic().

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: 16898 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/gl/src/TGLOrthoCamera.cxx
File length: 16898 byte(s)
Diff to previous 21812
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 21812 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jan 22 20:52:31 2008 UTC (7 years ago) by matevz
Original Path: trunk/gl/src/TGLOrthoCamera.cxx
File length: 16259 byte(s)
Diff to previous 21651
From Alja:

New class TFTGLManager for management of FTGL fonts.

New classes TEveText, TEveTextEditor and TEveTextGL for display and
configuration of a 3D text.

New test macro 'tutorials/eve/text_test.C'.


From Matevz:

Reenable smart-refresh during redraw of TEveScenes.

Minor code-layout changes.

Revision 21651 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jan 11 17:11:35 2008 UTC (7 years ago) by matevz
Original Path: trunk/gl/src/TGLOrthoCamera.cxx
File length: 16180 byte(s)
Diff to previous 20882
Introduce option for toggling dolly/zoom behaviour for orthographic
camera.

Expose this and optional rotation in ortho camera via menu entries in
TGLSAViewer.

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/TGLOrthoCamera.cxx
File length: 15722 byte(s)
Diff to previous 20588
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 20588 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Nov 1 07:48:00 2007 UTC (7 years, 2 months ago) by brun
Original Path: trunk/gl/src/TGLOrthoCamera.cxx
File length: 15722 byte(s)
Diff to previous 20292
Fix coding conventions

Revision 20292 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Oct 10 14:08:48 2007 UTC (7 years, 3 months ago) by brun
Original Path: trunk/gl/src/TGLOrthoCamera.cxx
File length: 15729 byte(s)
Diff to previous 19826
From Matevz & Alja

	* base/inc/TVirtualViewer3D.h:
	Add function virtual void ObjectPaint(TObject*, Option_t*).


/**************************************************************************/

	* ged/src/TGedEditor.cxx:
	When adding top-level TGFrame for the extra tabs specify layout
	hints with kLHintsExpandX.


/**************************************************************************/

	* gl/inc/TGLScenePad.h:
	* gl/src/TGLScenePad.cxx:
	Implement virtual TVirtualViewer3D::ObjectPaint().

	* gl/src/TGLCamera.cxx:
	* gl/inc/TGLCamera.h:	
	* gl/src/TGLPerspectiveCamera.cxx:
	* gl/inc/TGLPerspectiveCamera.h:	
	* gl/src/TGLOrthoCamera.cxx:
	* gl/inc/TGLOrthoCamera.h:
	Introduce two transformation matrices to clearly define movement
	of camera around the center point. The first transformation matrix
	fCamBase defines the coordinate system placed at the camera center
	point with camera up-vector as the third base vector. The second
	transformation matrix fCamTrans defines the camera transformation
	relative to fCamBase.

        Implement a common Truck(), Rotate() and Dolly() function for
	orthographic and perspective camera.

	Implement an option to define camera center point
	externally. Center can also be determined via picking.

	* gl/src/TGLUtil.cxx:
	* gl/inc/TGLUtil.h:
	TGLMatrix: add new functions to get/set the base vectors
	directly.

	TGLUtil: add member UInt_t fgDefaultDrawQuality.

	TGLRect: bugfix in Diagonal(), integer calculation overflowed.

	* gl/src/TGLViewer.cxx:
	* gl/inc/TGLViewer.h:
	Make interface to draw camera center point.
	Add option to disable/enable depth test when drawing axis guides. 

	* gl/src/TGLViewerEditor.cxx:
	* gl/inc/TGLViewerEditor.h:
	Add GUI to manipulate camera center and to disable/enable depth
	test when drawing axis guides.

	* gl/src/TGLClipSetEditor.cxx:
	Change layout of labeled number entries.

	* gl/src/TGLLightSet.cxx:
	Fix positioning of front light. White-space consolidation.

	* gl/src/TGLLightSetEditor.cxx:
	* gl/inc/TGLLightSetEditor.h:
        Put GUI for the 6 lights in two columns.


/**************************************************************************/

	* tutorials/gl/glViewerExercise.C:
	Follow-up on changes in TGLCamera. Enable rotation on
	orthographic camera.

	* tutorials/gl/glViewerLOD.C:
	Workourond for cint bug with switch statements.

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/TGLOrthoCamera.cxx
File length: 19180 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/TGLOrthoCamera.cxx
File length: 19237 byte(s)
Diff to previous 19734
remove :$ from tag line

Revision 19734 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Aug 30 20:29:11 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/gl/src/TGLOrthoCamera.cxx
File length: 19247 byte(s)
Diff to previous 19153
From Matevz:
In Apply() fix sign of near and far clipping plane distance.

Revision 19153 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jun 23 21:23:22 2007 UTC (7 years, 7 months ago) by brun
Original Path: trunk/gl/src/TGLOrthoCamera.cxx
File length: 19247 byte(s)
Diff to previous 19000
From Matevz:
1. TGLViewer performs internal loop on pad-primitives.
2. Timur: generalization of gl-plot-painters to allow external access.
3. Support usage of gl-plot-painters in gl-viewer.
4. Provide a default gl-sharing context for resource optimization.

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/TGLOrthoCamera.cxx
File length: 19165 byte(s)
Diff to previous 17137
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 17137 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Dec 9 23:04:37 2006 UTC (8 years, 1 month ago) by rdm
Original Path: trunk/gl/src/TGLOrthoCamera.cxx
File length: 20473 byte(s)
Diff to previous 16183
From Alja:
Implement virtual method Markup(): display a ruler showing extents
of the viewport.

Revision 16183 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Aug 31 13:44:37 2006 UTC (8 years, 4 months ago) by couet
Original Path: trunk/gl/src/TGLOrthoCamera.cxx
File length: 16932 byte(s)
Diff to previous 16090
From Timur:

New classes:

1.
TGLBoxPainter - implements "glbox" option for TH3, shows bin contents as
boxes, which sizes are proportional to bin content. "glbox1" is the same,
as previous, but with spheres instead of boxes. Slices (XOY/YOZ/XOZ)
are now drawn as sets of rectangles.

2.
TGLLegoPainter. Changes: removed all stuff, which works with gl
projections, modelview transformations, textures, etc.

3.
TGLPlotPainter. Added common parts of different painters:
generic Paint function, PlotSelected, etc.

4.
TGLOrthoCamera. Added operations, required by gl hist painters.

5.
TGLHistPainter. Class completely changed (previously known as
TGLPadHistPainter).

6.
TGLPlotBox. New class, draws back box for different kinds of plots,
highlights planes which are under cursor, makes some sizes calculations
(converts 3d into 2d coords) etc.

7.
TGLSurfacePainter. New class, for different surf options.
Supports cartesian, polar, cylindrical and spherical coords.
Slices (XOY, YOZ, XOZ), projections.

8.
TGLTF3. New class, draws TF3. No slices available now.

9.
TGLUtil. Added new auxilary classes
TGLLevelPalette, TGL2DArray, functions, required by different plot
painters,
TGLEnableGuard and TGLDisableGuard removed from RootGL namespace into
global namespace.

Revision 16090 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Aug 23 14:39:40 2006 UTC (8 years, 5 months ago) by brun
Original Path: trunk/gl/src/TGLOrthoCamera.cxx
File length: 11991 byte(s)
Diff to previous 13936
From Matevz Tadel:

        1) Implementation of two-level (secondary) selection

        Rendering objects can provide a new level of interactivity, for
        example a TPointSet3D holding a set of clusters can attach a pointer
        to original cluster to each point and receive notifications when a
        specified cluster was clicked.

        Secondary selection is activated by Control-Left clicking into the
        GL window.

        2) Improve control over camera-reset behaviour

        Allow user to prevent camera reset on scene update and
        double-click.

        3) Improvements in TPointSet3D(GL)

        Detailed ChangeLog
        ==================

        * base/inc/TVirtualViewer3D.h:
        Added virtual methods 'void ResetCameras(){}' and 'void
        ResetCamerasAfterNextUpdate(){}'.

        * gl/inc/TGLScene.h:
        * gl/src/TGLScene.cxx:
        Implemented two-level selection. It is enabled for next selection
        pass by calling ActivateSecSelect().

        DoSelect() does not change the selected object but only indicates
        which object has been selected by setting new member
        'TGLPhysicalShape *fSelectionResult'. Caller (TGLViewer) must call
        new method 'void ApplySelection()' to actually change the selected
        object to the last selection result.

        Changed declaration of selection buffer from being a static varable
        within DoSelect() to data-member. This allows post-processing of
        selection records needed by two-level selection.

        * gl/inc/TGLCamera.h:
        * gl/inc/TGLOrthoCamera.h:
        * gl/inc/TGLPerspectiveCamera.h:
        * gl/src/TGLCamera.cxx:
        * gl/src/TGLOrthoCamera.cxx:
        * gl/src/TGLPerspectiveCamera.cxx:
        Added Bool_t argument with default value to:
        virtual void TGLCamera::Setup(const TGLBoundingBox & box, Bool_t
        reset=kTRUE) = 0;
        By setting it to false one can change camera parameters for new
        scene bounding-box without repositioning the camera.

        Added 'Bool_t checkSize' argument to OfInterest().
        This is relevant for marker-classes which can have small
        volume/length but are still visible as they are rendered in
        pixel-coordinates. Value of this argument is needed in TGLScene
        (DestroyPhysicals) and TGLViewer (AddObject). It is obtained by
        calling virtual method TGLLogicalShape::IgnoreSizeForOfInterest().
        This method returns false by defalut and is overriden in
        TGLPolyMarker and TPointSet3DGL.

        * gl/inc/TGLViewer.h:
        * gl/src/TGLViewer.cxx:
        Added controls for camera-reset behaviour.
        Data-members: 'Bool_t fResetCamerasOnUpdate', 'Bool_t
        fResetCamerasOnNextUpdate', 'Bool_t fResetCameraOnDoubleClick'.
        Methods: 'ResetCameras()', 'ResetCamerasAfterNextUpdate()',
        'ResetCurrentCamera()'.
        Added an argument to 'void PostSceneBuildSetup(Bool_t resetCameras).

        Added Bool_t return-value to RequestSelect(). It returns true if
        result of the selection is different then fSelectedPhysical.

        Added method ApplySelection() to interface with TGLScene
        selection state. This is called from event-handling functions in
        TGLViewer.

        Added key-binding for 'Home': ResetCurrentCamera().

        * gl/inc/TGLSAViewer.h:
        * gl/src/TGLSAViewer.cxx:
        Added description of new functionality to fgHelpText.

        MSVC was complaining about fgHelpText being too long: I split it
        into fgHelpText1 and fgHelpText2.

        * gl/inc/TGLDrawFlags.h:
        * gl/src/TGLDrawFlags.cxx:
        Added members 'Bool_t fSelection' and 'Bool_t
        fSecSelection' allowing passing of current selection state to
        renderers. This is needed to allow different render-paths during
        (secondary) selection.

        We should consider passing TGLScene* and/or TGLViewer* down to
        DirectDraw() of individual renderers.

        * gl/src/TGLDrawable.cxx:
        In ShouldCache() return false if secondary selection is in progress.

        * gl/src/TGLPhysicalShape.cxx:
        Handle new members in TGLDrawFlags.

        * gl/inc/TGLLogicalShape.h:
        * gl/src/TGLLogicalShape.cxx:
        Added three new functions:

        1) virtual Bool_t SupportsSecondarySelect() const { return kFALSE; }
        This is called by TGLScene::DoSelect() to check is object that was
        the result of primary selection supports secondary selection.

        2) virtual void ProcessSelection(UInt_t* ptr, TGLViewer*, TGLScene*);
        It is called back from TGLViewer after successful secondary
        selection. As the object that does the rendering is the only one
        that actually knows how the object sub-parts were named it has
        to interpret the results.

        Both of these should be overriden in classes that support
        secondary selection, for example see TPointSet3DGL.

        3) virtual Bool_t IgnoreSizeForOfInterest() const { return kFALSE; }
        Signals to TGLScene and TGLViewer that volume/lenght of this
        class' bounding box should not be considered when checking if
        objects of this class are of interest to current camera.

        * gl/inc/TGLObject.h:
        * gl/src/TGLObject.cxx:
        Changed second argument of function:
        Bool_t SetModelCheckClass(TObject* obj, const Text_t* classname);
        to 'TClass* cls'. This is much more efficient.

        * g3d/inc/TPointSet3D.h:
        * g3d/src/TPointSet3D.cxx:
        Added support for per-point designations (one TObject* per point;
        via casting it can be set to anything).
        New virtual method 'void PointSelected(Int_t n)' that is called
        back after successful secondary selection in TGLViewer (via
        virtual TGLLogicalShape::ProcessSelection()).

        * gl/inc/TPointSet3DGL.h:
        * gl/src/TPointSet3DGL.cxx:
        Added support for per-point selection. Point-sizes are taken into
        account during selection (by modifying the projection
        matrix).
        Implemented 'virtual Bool_t TGLDrawable::ShouldCache()' to disable
        caching when in primary selection (point-size improvements).
        Cross-like marker types are now supported to some extent.
        Improved structure of rendering code.
        Override 'virtual Bool_t TGLLogicalShape::IgnoreSizeForOfInterest()'
        to return true.
        Multiply TAttMarker::GetMarkerSize() by 5 before applying.

        * gl/inc/TGLPolyMarker.h:
        Override 'virtual Bool_t TGLLogicalShape::IgnoreSizeForOfInterest()'
        to return true.

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/TGLOrthoCamera.cxx
File length: 11960 byte(s)
Diff to previous 13599
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 13599 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Dec 9 18:09:35 2005 UTC (9 years, 1 month ago) by brun
Original Path: trunk/gl/src/TGLOrthoCamera.cxx
File length: 11954 byte(s)
Diff to previous 13424
From Richard:
Make some more parts of TGLViewer public + add functions for external
camera configuration.

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/TGLOrthoCamera.cxx
File length: 11167 byte(s)
Diff to previous 13316
Use Riostream.h instead of <iostream>
This should fix portability problesm with the GL option under alpha

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/src/TGLOrthoCamera.cxx
File length: 11166 byte(s)
Diff to previous 13270
From Richard:
 Second part of general tidy for coding conventions violations -
mainly commenting. Code under my name should be clear now.

Revision 13270 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Nov 17 10:38:36 2005 UTC (9 years, 2 months ago) by brun
Original Path: trunk/gl/src/TGLOrthoCamera.cxx
File length: 6792 byte(s)
Diff to previous 13250
From Richard:
Yet another minor tweak of ortho camera clipping and lighting -
should now work ok will all detectors.

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/src/TGLOrthoCamera.cxx
File length: 6790 byte(s)
Diff to previous 13164
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 13164 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Nov 9 10:13:36 2005 UTC (9 years, 2 months ago) by brun
Original Path: trunk/gl/src/TGLOrthoCamera.cxx
File length: 6789 byte(s)
Diff to previous 13160
From Richard:
Further minor refinement of ortho camera lighting and framing.

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/TGLOrthoCamera.cxx
File length: 6789 byte(s)
Diff to previous 12100
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 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/TGLOrthoCamera.cxx
File length: 5978 byte(s)
Diff to previous 11929
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 11929 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 1 12:38:25 2005 UTC (9 years, 7 months ago) by brun
Original Path: trunk/gl/src/TGLOrthoCamera.cxx
File length: 6015 byte(s)
Diff to previous 11880
From Richard Maunder:
"Apply to Family" color changes - update all physical shapes with same
logical.
Moving/scaling object via edit boxes or moving via Shift+Middle mouse
button.
Removed some old commented code.

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/TGLOrthoCamera.cxx
File length: 5780 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/TGLOrthoCamera.cxx
File length: 5804 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/TGLOrthoCamera.cxx
File length: 5978 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