ROOT
6.07/01
Reference Guide
|
Base-class for non-linear projections.
Enables to define an external center of distortion and a scale to fixate a bounding box of a projected point.
Definition at line 26 of file TEveProjections.h.
Classes | |
struct | PreScaleEntry_t |
Public Types | |
enum | EPType_e { kPT_Unknown, kPT_RPhi, kPT_RhoZ, kPT_3D, kPT_End } |
enum | EPProc_e { kPP_Plane, kPP_Distort, kPP_Full } |
enum | EGeoMode_e { kGM_Unknown, kGM_Polygons, kGM_Segments } |
typedef std::vector < PreScaleEntry_t > | vPreScale_t |
typedef std::vector < PreScaleEntry_t >::iterator | vPreScale_i |
Public Member Functions | |
TEveProjection () | |
Constructor. More... | |
virtual | ~TEveProjection () |
virtual Bool_t | Is2D () const =0 |
virtual Bool_t | Is3D () const =0 |
virtual void | ProjectPoint (Float_t &x, Float_t &y, Float_t &z, Float_t d, EPProc_e p=kPP_Full)=0 |
void | ProjectPointfv (Float_t *v, Float_t d) |
Project float array. More... | |
void | ProjectPointdv (Double_t *v, Float_t d) |
Project double array. More... | |
void | ProjectVector (TEveVector &v, Float_t d) |
Project TEveVector. More... | |
void | ProjectPointfv (const TEveTrans *t, const Float_t *p, Float_t *v, Float_t d) |
Project float array, converting it to global coordinate system first if transformation matrix is set. More... | |
void | ProjectPointdv (const TEveTrans *t, const Double_t *p, Double_t *v, Float_t d) |
Project double array, converting it to global coordinate system first if transformation matrix is set. More... | |
void | ProjectVector (const TEveTrans *t, TEveVector &v, Float_t d) |
Project TEveVector, converting it to global coordinate system first if transformation matrix is set. More... | |
const Char_t * | GetName () const |
void | SetName (const Char_t *txt) |
const TEveVector & | RefCenter () const |
virtual void | SetCenter (TEveVector &v) |
virtual Float_t * | GetProjectedCenter () |
Get projected center. More... | |
void | SetDisplaceOrigin (bool) |
Set flag to displace for center. More... | |
Bool_t | GetDisplaceOrigin () const |
void | SetType (EPType_e t) |
EPType_e | GetType () const |
void | SetGeoMode (EGeoMode_e m) |
EGeoMode_e | GetGeoMode () const |
Bool_t | GetUsePreScale () const |
void | SetUsePreScale (Bool_t x) |
void | PreScalePoint (Float_t &x, Float_t &y) |
Pre-scale point (x, y) in projected coordinates for 2D projections: More... | |
void | PreScalePoint (Float_t &x, Float_t &y, Float_t &z) |
Pre-scale point (x, y, z) in projected coordinates for 3D projection. More... | |
void | AddPreScaleEntry (Int_t coord, Float_t max_val, Float_t scale) |
Add new scaling range for given coordinate. More... | |
void | ChangePreScaleEntry (Int_t coord, Int_t entry, Float_t new_scale) |
Change scale for given entry and coordinate. More... | |
void | ClearPreScales () |
Clear all pre-scaling information. More... | |
void | SetDistortion (Float_t d) |
Set distortion. More... | |
Float_t | GetDistortion () const |
Float_t | GetFixR () const |
Float_t | GetFixZ () const |
void | SetFixR (Float_t x) |
Set fixed radius. More... | |
void | SetFixZ (Float_t x) |
Set fixed radius. More... | |
Float_t | GetPastFixRFac () const |
Float_t | GetPastFixZFac () const |
void | SetPastFixRFac (Float_t x) |
Set 2's-exponent for relative scaling beyond FixR. More... | |
void | SetPastFixZFac (Float_t x) |
Set 2's-exponent for relative scaling beyond FixZ. More... | |
Float_t | GetMaxTrackStep () const |
void | SetMaxTrackStep (Float_t x) |
virtual Bool_t | HasSeveralSubSpaces () const |
virtual Bool_t | AcceptSegment (TEveVector &, TEveVector &, Float_t) const |
virtual Int_t | SubSpaceId (const TEveVector &) const |
virtual Bool_t | IsOnSubSpaceBoundrary (const TEveVector &) const |
virtual void | BisectBreakPoint (TEveVector &vL, TEveVector &vR, Float_t eps_sqr) |
Find break-point on both sides of the discontinuity. More... | |
virtual void | BisectBreakPoint (TEveVector &vL, TEveVector &vR, Bool_t project_result=kFALSE, Float_t depth=0) |
Find break-point on both sides of the discontinuity. More... | |
virtual void | SetDirectionalVector (Int_t screenAxis, TEveVector &vec) |
Get vector for axis in a projected space. More... | |
TEveVector | GetOrthogonalCenter (int idx, TEveVector &out) |
Get center ortogonal to given axis index. More... | |
virtual Float_t | GetValForScreenPos (Int_t ax, Float_t value) |
Inverse projection. More... | |
virtual Float_t | GetScreenVal (Int_t ax, Float_t value) |
Project point on given axis and return projected value. More... | |
Float_t | GetScreenVal (Int_t i, Float_t x, TEveVector &dirVec, TEveVector &oCenter) |
Project point on given axis and return projected value. More... | |
Float_t | GetLimit (Int_t i, Bool_t pos) |
Method previously used by TEveProjectionAxesGL. Now obsolete. More... | |
ClassDef (TEveProjection, 0) | |
Static Public Attributes | |
static Float_t | fgEps = 0.005f |
static Float_t | fgEpsSqr = 0.000025f |
Protected Member Functions | |
void | PreScaleVariable (Int_t dim, Float_t &v) |
Pre-scale single variable with pre-scale entry dim. More... | |
#include <TEveProjections.h>
typedef std::vector<PreScaleEntry_t>::iterator TEveProjection::vPreScale_i |
Definition at line 50 of file TEveProjections.h.
typedef std::vector<PreScaleEntry_t> TEveProjection::vPreScale_t |
Definition at line 49 of file TEveProjections.h.
Enumerator | |
---|---|
kGM_Unknown | |
kGM_Polygons | |
kGM_Segments |
Definition at line 31 of file TEveProjections.h.
Enumerator | |
---|---|
kPP_Plane | |
kPP_Distort | |
kPP_Full |
Definition at line 30 of file TEveProjections.h.
Enumerator | |
---|---|
kPT_Unknown | |
kPT_RPhi | |
kPT_RhoZ | |
kPT_3D | |
kPT_End |
Definition at line 29 of file TEveProjections.h.
TEveProjection::TEveProjection | ( | ) |
Constructor.
Definition at line 36 of file TEveProjections.cxx.
|
inlinevirtual |
Definition at line 79 of file TEveProjections.h.
|
inlinevirtual |
Reimplemented in TEveRhoZProjection.
Definition at line 133 of file TEveProjections.h.
Referenced by BisectBreakPoint(), TEveTrackProjected::GetBreakPointIdx(), TEvePolygonSetProjected::MakePolygonsFromBP(), TEvePolygonSetProjected::MakePolygonsFromBS(), and TEveStraightLineSetProjected::UpdateProjection().
Add new scaling range for given coordinate.
Arguments:
NOTE: If pre-scaling is combined with center-displaced then the scale of the central region should be 1. This limitation can be removed but will cost CPU.
Definition at line 180 of file TEveProjections.cxx.
|
virtual |
Find break-point on both sides of the discontinuity.
They still need to be projected after the call. This is an obsolete version of the method that required manual specification of precision – this lead to (infrequent) infinite loops.
Definition at line 337 of file TEveProjections.cxx.
Referenced by TEveTrackProjected::MakeTrack(), and TEveStraightLineSetProjected::UpdateProjection().
|
virtual |
Find break-point on both sides of the discontinuity.
If project_result is true, the resulting break points will be projected with given depth value.
Definition at line 355 of file TEveProjections.cxx.
Change scale for given entry and coordinate.
NOTE: If the first entry you created used other value than 0, one entry (covering range from 0 to this value) was created automatically.
Definition at line 222 of file TEveProjections.cxx.
TEveProjection::ClassDef | ( | TEveProjection | , |
0 | |||
) |
void TEveProjection::ClearPreScales | ( | ) |
Clear all pre-scaling information.
Definition at line 248 of file TEveProjections.cxx.
|
inline |
Definition at line 102 of file TEveProjections.h.
|
inline |
Definition at line 120 of file TEveProjections.h.
Referenced by TEveProjectionManagerEditor::SetModel(), and TEveProjectionManager::UpdateName().
|
inline |
Definition at line 121 of file TEveProjections.h.
Referenced by TEveProjectionManagerEditor::SetModel().
|
inline |
Definition at line 122 of file TEveProjections.h.
Referenced by TEveProjectionManagerEditor::SetModel().
|
inline |
Definition at line 108 of file TEveProjections.h.
Referenced by TEvePolygonSetProjected::ProjectBuffer3D().
Method previously used by TEveProjectionAxesGL. Now obsolete.
Definition at line 393 of file TEveProjections.cxx.
|
inline |
Definition at line 129 of file TEveProjections.h.
Referenced by TEveTrackProjected::MakeTrack(), and TEveProjectionManagerEditor::SetModel().
|
inline |
Definition at line 94 of file TEveProjections.h.
Referenced by TEveProjectionManager::UpdateName().
TEveVector TEveProjection::GetOrthogonalCenter | ( | int | idx, |
TEveVector & | out | ||
) |
Get center ortogonal to given axis index.
Definition at line 414 of file TEveProjections.cxx.
Referenced by TEveProjectionAxesGL::SplitIntervalByVal().
|
inline |
Definition at line 125 of file TEveProjections.h.
Referenced by TEveProjectionManagerEditor::SetModel().
|
inline |
Definition at line 126 of file TEveProjections.h.
Referenced by TEveProjectionManagerEditor::SetModel().
|
virtual |
Get projected center.
Reimplemented in TEveRhoZProjection.
Definition at line 299 of file TEveProjections.cxx.
Referenced by TEveProjectionAxesGL::DirectDraw(), and TEveProjectionAxesGL::FilterOverlappingLabels().
Project point on given axis and return projected value.
Definition at line 532 of file TEveProjections.cxx.
Referenced by TEveProjectionAxesGL::SplitIntervalByVal().
Float_t TEveProjection::GetScreenVal | ( | Int_t | i, |
Float_t | x, | ||
TEveVector & | dirVec, | ||
TEveVector & | oCenter | ||
) |
Project point on given axis and return projected value.
Definition at line 517 of file TEveProjections.cxx.
|
inline |
Definition at line 105 of file TEveProjections.h.
Referenced by TEveCalo2D::BuildCellIdCache(), TEveJetConeProjectedGL::CalculatePoints(), TEveCalo2D::CellSelectionChangedInternal(), TEveCalo2DGL::IsRPhi(), TEveProjectionManagerEditor::SetModel(), and TEveCalo2D::UpdateProjection().
|
inline |
Definition at line 110 of file TEveProjections.h.
Inverse projection.
Definition at line 430 of file TEveProjections.cxx.
Referenced by TEveProjectionAxesGL::SplitIntervalByPos(), and TEveProjectionAxesGL::SplitIntervalByVal().
|
inlinevirtual |
Reimplemented in TEveRhoZProjection.
Definition at line 132 of file TEveProjections.h.
Referenced by TEveTrackProjected::GetBreakPointIdx(), TEveTrackProjected::MakeTrack(), and TEveStraightLineSetProjected::UpdateProjection().
|
pure virtual |
Implemented in TEve3DProjection, TEveRPhiProjection, and TEveRhoZProjection.
Referenced by TEveGeoShape::ProjectedClass(), TEveProjected::SetDepth(), TEveProjectionManager::SetProjection(), and TEveProjectionManager::UpdateName().
|
pure virtual |
Implemented in TEve3DProjection, TEveRPhiProjection, and TEveRhoZProjection.
|
inlinevirtual |
Reimplemented in TEveRhoZProjection.
Definition at line 135 of file TEveProjections.h.
Referenced by BisectBreakPoint().
Pre-scale point (x, y) in projected coordinates for 2D projections:
Definition at line 153 of file TEveProjections.cxx.
Referenced by TEveRhoZProjection::ProjectPoint(), TEveRPhiProjection::ProjectPoint(), and TEve3DProjection::ProjectPoint().
Pre-scale point (x, y, z) in projected coordinates for 3D projection.
Definition at line 162 of file TEveProjections.cxx.
Pre-scale single variable with pre-scale entry dim.
Definition at line 130 of file TEveProjections.cxx.
Referenced by PreScalePoint().
|
pure virtual |
Implemented in TEve3DProjection, TEveRPhiProjection, and TEveRhoZProjection.
Referenced by BisectBreakPoint(), TEveCalo2D::ComputeBBox(), TEveCalo2DGL::MakeRhoZCell(), TEveCalo2DGL::MakeRPhiCell(), TEvePolygonSetProjected::ProjectAndReducePoints(), ProjectPointdv(), ProjectPointfv(), and ProjectVector().
Project double array.
This is a bit piggish as we convert the doubles to floats and back.
Definition at line 64 of file TEveProjections.cxx.
Referenced by TEveTrackProjected::MakeTrack(), and TEveGeoShapeProjected::UpdateProjection().
void TEveProjection::ProjectPointdv | ( | const TEveTrans * | t, |
const Double_t * | p, | ||
Double_t * | v, | ||
Float_t | d | ||
) |
Project double array, converting it to global coordinate system first if transformation matrix is set.
This is a bit piggish as we convert the doubles to floats and back.
Definition at line 98 of file TEveProjections.cxx.
Project float array.
Definition at line 55 of file TEveProjections.cxx.
Referenced by TEveTrackProjected::MakeTrack(), TEveBoxProjected::UpdateProjection(), TEveLineProjected::UpdateProjection(), TEveStraightLineSetProjected::UpdateProjection(), and TEvePointSetProjected::UpdateProjection().
void TEveProjection::ProjectPointfv | ( | const TEveTrans * | t, |
const Float_t * | p, | ||
Float_t * | v, | ||
Float_t | d | ||
) |
Project float array, converting it to global coordinate system first if transformation matrix is set.
Definition at line 83 of file TEveProjections.cxx.
void TEveProjection::ProjectVector | ( | TEveVector & | v, |
Float_t | d | ||
) |
Project TEveVector.
Definition at line 74 of file TEveProjections.cxx.
Referenced by BisectBreakPoint(), TEveJetConeProjectedGL::CalculatePoints(), TEveJetConeProjected::ComputeBBox(), TEveProjectionAxesGL::DirectDraw(), GetScreenVal(), and GetValForScreenPos().
void TEveProjection::ProjectVector | ( | const TEveTrans * | t, |
TEveVector & | v, | ||
Float_t | d | ||
) |
Project TEveVector, converting it to global coordinate system first if transformation matrix is set.
Definition at line 118 of file TEveProjections.cxx.
|
inline |
Definition at line 97 of file TEveProjections.h.
|
inlinevirtual |
Reimplemented in TEveRhoZProjection.
Definition at line 98 of file TEveProjections.h.
Referenced by TEveProjectionManager::SetCenter(), SetDisplaceOrigin(), and TEveProjectionManager::SetProjection().
|
virtual |
Get vector for axis in a projected space.
Reimplemented in TEveRhoZProjection.
Definition at line 403 of file TEveProjections.cxx.
Referenced by GetOrthogonalCenter(), GetScreenVal(), GetValForScreenPos(), and TEveProjectionAxesGL::SplitIntervalByVal().
void TEveProjection::SetDisplaceOrigin | ( | bool | x | ) |
Set flag to displace for center.
This options is useful if want to have projected center at (0, 0) position in projected coordinates and want to dismiss gap around projected center in RhoZ projection.
Definition at line 315 of file TEveProjections.cxx.
Set distortion.
Definition at line 258 of file TEveProjections.cxx.
Referenced by TEveProjectionManagerEditor::DoDistortion().
Set fixed radius.
Definition at line 270 of file TEveProjections.cxx.
Referenced by TEveProjectionManagerEditor::DoFixR().
Set fixed radius.
Definition at line 280 of file TEveProjections.cxx.
Referenced by TEveProjectionManagerEditor::DoFixZ().
|
inline |
Definition at line 107 of file TEveProjections.h.
Definition at line 130 of file TEveProjections.h.
Referenced by TEveProjectionManagerEditor::DoMaxTrackStep().
Definition at line 95 of file TEveProjections.h.
Set 2's-exponent for relative scaling beyond FixR.
Definition at line 290 of file TEveProjections.cxx.
Referenced by TEveProjectionManagerEditor::DoPastFixRFac().
Set 2's-exponent for relative scaling beyond FixZ.
Definition at line 325 of file TEveProjections.cxx.
Referenced by TEveProjectionManagerEditor::DoPastFixZFac().
Definition at line 104 of file TEveProjections.h.
Definition at line 111 of file TEveProjections.h.
|
inlinevirtual |
Reimplemented in TEveRhoZProjection.
Definition at line 134 of file TEveProjections.h.
Referenced by TEveBoxProjected::UpdateProjection().
|
protected |
Definition at line 57 of file TEveProjections.h.
Referenced by GetOrthogonalCenter(), GetProjectedCenter(), GetScreenVal(), GetValForScreenPos(), TEveRhoZProjection::ProjectPoint(), TEveRPhiProjection::ProjectPoint(), TEve3DProjection::ProjectPoint(), RefCenter(), SetCenter(), TEveRhoZProjection::SetCenter(), and SetDisplaceOrigin().
|
protected |
Definition at line 59 of file TEveProjections.h.
Referenced by GetDisplaceOrigin(), GetProjectedCenter(), GetScreenVal(), GetValForScreenPos(), TEveRhoZProjection::ProjectPoint(), TEveRPhiProjection::ProjectPoint(), TEveRhoZProjection::SetCenter(), and SetDisplaceOrigin().
|
protected |
Definition at line 64 of file TEveProjections.h.
Referenced by GetDistortion(), TEveRhoZProjection::ProjectPoint(), TEveRPhiProjection::ProjectPoint(), SetDistortion(), SetFixR(), and SetFixZ().
|
protected |
Definition at line 65 of file TEveProjections.h.
Referenced by GetFixR(), TEveRhoZProjection::ProjectPoint(), TEveRPhiProjection::ProjectPoint(), SetDistortion(), and SetFixR().
|
protected |
Definition at line 66 of file TEveProjections.h.
Referenced by GetFixZ(), TEveRhoZProjection::ProjectPoint(), SetDistortion(), and SetFixZ().
|
protected |
Definition at line 54 of file TEveProjections.h.
Referenced by GetGeoMode(), SetGeoMode(), TEve3DProjection::TEve3DProjection(), and TEveRPhiProjection::TEveRPhiProjection().
|
static |
Definition at line 148 of file TEveProjections.h.
Referenced by TEvePolygonSetProjected::AddPolygon(), GetValForScreenPos(), TEvePolygonSetProjected::MakePolygonsFromBP(), and TEvePolygonSetProjected::MakePolygonsFromBS().
|
static |
Definition at line 149 of file TEveProjections.h.
Referenced by TEvePolygonSetProjected::ProjectAndReducePoints(), and TEveBoxProjected::UpdateProjection().
|
protected |
Definition at line 73 of file TEveProjections.h.
Referenced by GetMaxTrackStep(), and SetMaxTrackStep().
|
protected |
Definition at line 55 of file TEveProjections.h.
Referenced by GetName(), SetName(), TEve3DProjection::TEve3DProjection(), TEveRhoZProjection::TEveRhoZProjection(), and TEveRPhiProjection::TEveRPhiProjection().
|
protected |
Definition at line 67 of file TEveProjections.h.
Referenced by GetPastFixRFac(), SetDistortion(), SetFixR(), and SetPastFixRFac().
|
protected |
Definition at line 71 of file TEveProjections.h.
Referenced by TEveRhoZProjection::ProjectPoint(), TEveRPhiProjection::ProjectPoint(), SetDistortion(), SetFixR(), and SetPastFixRFac().
|
protected |
Definition at line 68 of file TEveProjections.h.
Referenced by GetPastFixZFac(), SetDistortion(), SetFixZ(), and SetPastFixZFac().
|
protected |
Definition at line 72 of file TEveProjections.h.
Referenced by TEveRhoZProjection::ProjectPoint(), SetDistortion(), SetFixZ(), and SetPastFixZFac().
|
protected |
Definition at line 62 of file TEveProjections.h.
Referenced by AddPreScaleEntry(), ChangePreScaleEntry(), ClearPreScales(), and PreScaleVariable().
|
protected |
Definition at line 69 of file TEveProjections.h.
Referenced by TEveRhoZProjection::ProjectPoint(), TEveRPhiProjection::ProjectPoint(), SetDistortion(), SetFixR(), and SetPastFixRFac().
|
protected |
Definition at line 70 of file TEveProjections.h.
Referenced by TEveRhoZProjection::ProjectPoint(), SetDistortion(), SetFixZ(), and SetPastFixZFac().
|
protected |
Definition at line 53 of file TEveProjections.h.
Referenced by GetType(), SetType(), TEve3DProjection::TEve3DProjection(), TEveRhoZProjection::TEveRhoZProjection(), and TEveRPhiProjection::TEveRPhiProjection().
|
protected |
Definition at line 61 of file TEveProjections.h.
Referenced by GetUsePreScale(), TEveRhoZProjection::ProjectPoint(), TEveRPhiProjection::ProjectPoint(), TEve3DProjection::ProjectPoint(), and SetUsePreScale().