Log of /trunk/graf3d/eve/inc/TEveProjectionManager.h
Parent Directory
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
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
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.
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.