[root] / trunk / graf3d / eve / inc / TEveProjectionManager.h Repository:
ViewVC logotype

Log of /trunk/graf3d/eve/inc/TEveProjectionManager.h

Parent Directory Parent Directory


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

Revision 33037 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Apr 15 13:58:19 2010 UTC (4 years, 9 months ago) by matevz
File length: 3131 byte(s)
Diff to previous 32528
* TEveElement: Add function
    virtual void ProjectAllChildren(Bool_t same_depth=kTRUE);
  that allows all children of given element to be project into the
  same projected views where this element is existing.

* TEveProjectionManager: Add function:
    virtual Int_t SubImportChildren(TEveElement* el, TEveElement* proj_parent);
  that implements the above operation for a single projection.

Revision 32528 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Mar 10 17:02:54 2010 UTC (4 years, 10 months ago) by matevz
File length: 3045 byte(s)
Diff to previous 32478
Add support for projections of elements with non-trivial transformation
matrix. This works for TEvePointSet, TEveLine, TEveTrack and TEveBox.
It was already working for TEveGeoShape before.

Add class TEveBoxProjected and its GL-rendering class.

Add class TEvePoint -- 2D float point.

Implement 2D convex-hull search in static method
  TEveShape::FindConvexHull().

Use ClassDefNV for TEveVector, TEvePoint and TEvePathMark classes.

Consistently include "Riostream.h".

Revision 32478 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 5 14:20:48 2010 UTC (4 years, 10 months ago) by matevz
File length: 3092 byte(s)
Diff to previous 32440
* TEveElement
  Introduce new function
    virtual void PaintStandard(TObject* id);
  that contains common code cut-n-pasted in Paint() method of several
  EVE classes. Many of them now simply call this method.
  Many includes became unnecessary and were removed in the processes.

* TEveShape
* TEvePolygonSetProjected
  TEveShape is a new abstract base-class for 2D/3D shapes that require
  fill color and outline color / line-width.
  This was extracted from TEvePolygonSetProjected class.
  TEvePolygonSetProjectedEditor was removed -- all functionality is in
  TEveShapeEditor.

All other changes are just simplifactions of the Paint() method.

Revision 32440 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Mar 2 14:43:43 2010 UTC (4 years, 10 months ago) by matevz
File length: 3045 byte(s)
Diff to previous 31517
Add support for projecting a new child of an element after the element
and its old children have already been projected. This is provided by:
  void TEveElement::ProjectChild(TEveElement* el, Bool_t sameDepth);

* TEveElement
  Add method:
    virtual void ProjectChild(TEveElement* el, Bool_t  sameDepth=kTRUE);

* TEveProjectionManager
  Add method:
    virtual TEveElement* SubImportElements(TEveElement* el, TEveElement* proj_parent);

* TEveProjectable:
  Add methods Begin/EndProjectects() to allow iteration over existing
  projected replicas.

* TEveProjected:
  Add getters GetManager() and GetDepth().

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: 2958 byte(s)
Diff to previous 30840
Move TEveVector declaratations to a separate file to avoid pulling in
TParticle.h throughout eve.

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: 2986 byte(s)
Diff to previous 24314
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 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: 2929 byte(s)
Diff to previous 24147
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 24147 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 4 19:48:39 2008 UTC (6 years, 7 months ago) by matevz
File length: 2881 byte(s)
Diff to previous 23140
- TEveProjectionManager:
  Added member 'Bool_t fImportEmpty' - this forces the projection manager
  to also import sub-trees without any projectable elements.
  Useful if one expects a completely parallel element structure in
  projected replica.

- TEveSelection:
  Added method 'void RemoveImpliedSelected(TEveElement* el)' needed for
  deregistration of implied-selected elements during their destruction.

- TEveManager:
  - In PreDeleteElement() check if the element is implied selected or
    highlighted and deregister it from there.
  - In function InsertVizDBEntry():
    a) added argument 'Bool_t update';
    b) when replacing the model-element copy its children to the new
       model and optionally update their viz-params.

- TEveElement:
  - Add methods to simplify propagation of visualization-parameters
    between model-elements and their clients
  - Add members 'Int_t fParentIgnoreCnt, fTopItemCnt' that allow
    better tracking of references in view of automatic destruction.
  - Consolidate Has/Num|Children/Parents() methods.

- TEveGeoNode:
  Use TEveElement::HasChildren() instead of checking container size.

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: 2650 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/inc/TEveProjectionManager.h
File length: 2650 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/inc/TEveProjectionManager.h
File length: 2495 byte(s)
Diff to previous 21198
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 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/inc/TEveProjectionManager.h
File length: 3355 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/inc/TEveProjectionManager.h
File length: 3354 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/inc/TEveProjectionManager.h
File length: 3354 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