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

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

Parent Directory Parent Directory


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

Revision 30840 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Oct 23 09:03:14 2009 UTC (5 years, 3 months ago) by matevz
File length: 11091 byte(s)
Diff to previous 25422
Add support for 3D -> 3D projections. This also allows for
scaling (compression/extension) of certain space region as required by
NA62 to show the 200m long detector in a meaningful way.

Several generalizations of the projection infrastructure were
required:

1. TEveProjectable::ProjectedClass() takes an argument:
     virtual TClass* ProjectedClass(const TEveProjection* p) const = 0;
   thus allowing different projected classes for different projections.

2. All TEveProjection::ProjectPoint/Vector(...) functions have an
   additional "depth" argument thus allowing the projected classes to
   skip explicit setting of depth after the point has been projected
   -- this could damage the 3rd component.

   Pre-scaling now supports 3 dimensions.

3. Abstract TEveProjected::SetDepth() has been split into two parts:
   a) It has been implemented in the base class where it checks for
      the projection type (2d) before calling the local function;
   b) Abstract SetDepthLocal() has been added to provide the same
      functionality.
   This allows for the 2d/3d check to be done in place only.

4. New projection class has been introduced: TEve3DProjection.
   It performs pre-scaling and offsets the center.

5. To simplify the projection of lists TEveElementList has been made
   projectable and corresponding TEveElementListProjected class
   introduced. This also fixed the problem with render-state not being
   propagated to projected classes.
   The check whether to project a sub-tree of elements is still performed.

6. TEveGeoShapeProjected has been introduced to represent the 3D
   projection of a TEveGeoShape (2D projection is handled by
   TEvePolygonSetProjected).

   Points, lines and tracks use the same projected class for both 2D
   and 3D projections.

An example showing this functionality has been added as a new tab in
tutorials/eve/projection_prescale.C.

Revision 25422 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Sep 16 20:50:49 2008 UTC (6 years, 4 months ago) by matevz
File length: 10952 byte(s)
Diff to previous 24314
TEveProjections
---------------
Add 'Float_t fMaxTrackStep' to allow control over maximum segment
lenght in projected tracks.

TEveProjectionManagerEditor
---------------------------
Add number entry for setting max projected track-step.

TEveTrackProjected
------------------
Move control for breaking projected tracks to TEveTrack.
In UpdateProjection() call TEveLine::ReduceSegmentLengths() so that
the tracks with high pt (or in low field) do not deviate significantly
from their true path.

TEveTrack
---------
Add controls for breaking of projected tracks:
a) static 'Bool_t fgDefaultBreakProjectedTracks' (moved from TEveTrackProjected)
b) enum EBreakProjectedTracks_e { kBPTDefault, kBPTAlways, kBPTNever }
   with data member 'UChar_t fBreakProjectedTracks'

TEveLine
--------
New method 'void ReduceSegmentLengths(Float_t max)'.
Propagate marker-color and point/line rendering state to projecteds.


TEveTrackPropagator
TEveLineEditor
-------------------
Whitespace.

Revision 24314 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 17 18:19:53 2008 UTC (6 years, 7 months ago) by matevz
File length: 9911 byte(s)
Diff to previous 23140
TEveManager
===========

Keep projections in an array and reuse them when changing
projection-types. This allows parameters set by users to be kept for
each projection type separately (only center is controlled by manager).


TEveProjections
===============

Introduce pre-scaling of projected objects: users can specify
different scaling factors for regions of projected coordinate space.
Fish-eye distortion is applied afterwards.

Demonstrated by the new tutorial 'projection_test_prescale.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: 9781 byte(s)
Diff to previous 23087
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 23087 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Apr 9 14:10:56 2008 UTC (6 years, 9 months ago) by rdm
Original Path: trunk/eve/src/TEveProjectionManagerEditor.cxx
File length: 9781 byte(s)
Diff to previous 22539
From Alja, Bertrand and Matevz - merged branches/dev/fireworks 22550:23082.


Major changes imported by this merge are:

gl/
====
- reorganization of scene rendering in TGLViewer - render opaque
  objects from all scenes first, then all transparent ones;

- improve saving of images from the GL-viewer so that the dialog boxes
  and other windows do not result in black areas on the saved image;

- improved management of FTGL fonts accross GL contexts.

eve/
====
- new classes for visualization of calorimeter data in lego mode;

- allow fixed scale beyond given radius for fish-eye projections.

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/TEveProjectionManagerEditor.cxx
File length: 7336 byte(s)
Diff to previous 21881
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 21881 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 28 16:24:14 2008 UTC (6 years, 11 months ago) by matevz
Original Path: trunk/eve/src/TEveProjectionManagerEditor.cxx
File length: 7354 byte(s)
Diff to previous 21215
From Alja:

Move rendering of axes from TEveProjectionManager to new class
TEveProjectionAxes. Use TEveText functionality for rendering of
tick-mark labels.

Add new members for FTFont configuration in TEveText.

New demo: tutorials/eve/projection_test.C.

Revision 21215 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Dec 5 17:19:23 2007 UTC (7 years, 1 month ago) by matevz
Original Path: trunk/eve/src/TEveProjectionManagerEditor.cxx
File length: 12542 byte(s)
Diff to previous 21198
Prefix all enum values with 'k'.

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/TEveProjectionManagerEditor.cxx
File length: 12540 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/TEveProjectionManagerEditor.cxx
File length: 12536 byte(s)
Diff to previous 21044
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 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/TEveProjectionManagerEditor.cxx
File length: 12536 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