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 | EGeoMode_e { kGM_Unknown , kGM_Polygons , kGM_Segments } |
enum | EPProc_e { kPP_Plane , kPP_Distort , kPP_Full } |
enum | EPType_e { kPT_Unknown , kPT_RhoZ , kPT_RPhi , kPT_XZ , kPT_YZ , kPT_ZX , kPT_ZY , kPT_3D , kPT_End } |
typedef std::vector< PreScaleEntry_t >::iterator | vPreScale_i |
typedef std::vector< PreScaleEntry_t > | vPreScale_t |
Public Member Functions | |
TEveProjection () | |
Constructor. | |
virtual | ~TEveProjection () |
virtual Bool_t | AcceptSegment (TEveVector &, TEveVector &, Float_t) const |
void | AddPreScaleEntry (Int_t coord, Float_t max_val, Float_t scale) |
Add new scaling range for given coordinate. | |
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. | |
virtual void | BisectBreakPoint (TEveVector &vL, TEveVector &vR, Float_t eps_sqr) |
Find break-point on both sides of the discontinuity. | |
void | ChangePreScaleEntry (Int_t coord, Int_t entry, Float_t new_scale) |
Change scale for given entry and coordinate. | |
void | ClearPreScales () |
Clear all pre-scaling information. | |
Bool_t | GetDisplaceOrigin () const |
Float_t | GetDistortion () const |
Float_t | GetFixR () const |
Float_t | GetFixZ () const |
EGeoMode_e | GetGeoMode () const |
Float_t | GetLimit (Int_t i, Bool_t pos) |
Method previously used by TEveProjectionAxesGL. Now obsolete. | |
Float_t | GetMaxTrackStep () const |
const Char_t * | GetName () const |
TEveVector | GetOrthogonalCenter (int idx, TEveVector &out) |
Get center ortogonal to given axis index. | |
Float_t | GetPastFixRFac () const |
Float_t | GetPastFixZFac () const |
virtual Float_t * | GetProjectedCenter () |
Get projected center. | |
virtual Float_t | GetScreenVal (Int_t ax, Float_t value) |
Project point on given axis and return projected value. | |
Float_t | GetScreenVal (Int_t i, Float_t x, TEveVector &dirVec, TEveVector &oCenter) |
Project point on given axis and return projected value. | |
EPType_e | GetType () const |
Bool_t | GetUsePreScale () const |
virtual Float_t | GetValForScreenPos (Int_t ax, Float_t value) |
Inverse projection. | |
virtual Bool_t | HasSeveralSubSpaces () const |
virtual Bool_t | Is2D () const =0 |
virtual Bool_t | Is3D () const =0 |
virtual TClass * | IsA () const |
virtual Bool_t | IsOnSubSpaceBoundrary (const TEveVector &) const |
void | PreScalePoint (Float_t &x, Float_t &y) |
Pre-scale point (x, y) in projected coordinates for 2D projections: | |
void | PreScalePoint (Float_t &x, Float_t &y, Float_t &z) |
Pre-scale point (x, y, z) in projected coordinates for 3D projection. | |
virtual void | ProjectPoint (Float_t &x, Float_t &y, Float_t &z, Float_t d, EPProc_e p=kPP_Full)=0 |
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. | |
void | ProjectPointdv (Double_t *v, Float_t d) |
Project double array. | |
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. | |
void | ProjectPointfv (Float_t *v, Float_t d) |
Project float array. | |
void | ProjectVector (const TEveTrans *t, TEveVector &v, Float_t d) |
Project TEveVector, converting it to global coordinate system first if transformation matrix is set. | |
void | ProjectVector (TEveVector &v, Float_t d) |
Project TEveVector. | |
const TEveVector & | RefCenter () const |
virtual void | SetCenter (TEveVector &v) |
virtual void | SetDirectionalVector (Int_t screenAxis, TEveVector &vec) |
Get vector for axis in a projected space. | |
void | SetDisplaceOrigin (bool) |
Set flag to displace for center. | |
void | SetDistortion (Float_t d) |
Set distortion. | |
void | SetFixR (Float_t x) |
Set fixed radius. | |
void | SetFixZ (Float_t x) |
Set fixed radius. | |
void | SetGeoMode (EGeoMode_e m) |
void | SetMaxTrackStep (Float_t x) |
void | SetName (const Char_t *txt) |
void | SetPastFixRFac (Float_t x) |
Set 2's-exponent for relative scaling beyond FixR. | |
void | SetPastFixZFac (Float_t x) |
Set 2's-exponent for relative scaling beyond FixZ. | |
void | SetType (EPType_e t) |
void | SetUsePreScale (Bool_t x) |
virtual void | Streamer (TBuffer &) |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
virtual Int_t | SubSpaceId (const TEveVector &) const |
Static Public Member Functions | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
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. | |
#include <TEveProjections.h>
typedef std::vector<PreScaleEntry_t>::iterator TEveProjection::vPreScale_i |
Definition at line 51 of file TEveProjections.h.
typedef std::vector<PreScaleEntry_t> TEveProjection::vPreScale_t |
Definition at line 50 of file TEveProjections.h.
Enumerator | |
---|---|
kGM_Unknown | |
kGM_Polygons | |
kGM_Segments |
Definition at line 32 of file TEveProjections.h.
Enumerator | |
---|---|
kPP_Plane | |
kPP_Distort | |
kPP_Full |
Definition at line 31 of file TEveProjections.h.
Enumerator | |
---|---|
kPT_Unknown | |
kPT_RhoZ | |
kPT_RPhi | |
kPT_XZ | |
kPT_YZ | |
kPT_ZX | |
kPT_ZY | |
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 80 of file TEveProjections.h.
|
inlinevirtual |
Reimplemented in TEveRhoZProjection.
Definition at line 134 of file TEveProjections.h.
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.
If project_result is true, the resulting break points will be projected with given depth value.
Definition at line 355 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.
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.
|
static |
|
inlinestaticconstexpr |
Definition at line 152 of file TEveProjections.h.
void TEveProjection::ClearPreScales | ( | ) |
Clear all pre-scaling information.
Definition at line 248 of file TEveProjections.cxx.
|
inlinestatic |
Definition at line 152 of file TEveProjections.h.
|
inline |
Definition at line 103 of file TEveProjections.h.
|
inline |
Definition at line 121 of file TEveProjections.h.
|
inline |
Definition at line 122 of file TEveProjections.h.
|
inline |
Definition at line 123 of file TEveProjections.h.
|
inline |
Definition at line 109 of file TEveProjections.h.
Method previously used by TEveProjectionAxesGL. Now obsolete.
Definition at line 393 of file TEveProjections.cxx.
|
inline |
Definition at line 130 of file TEveProjections.h.
|
inline |
Definition at line 95 of file TEveProjections.h.
TEveVector TEveProjection::GetOrthogonalCenter | ( | int | idx, |
TEveVector & | out | ||
) |
Get center ortogonal to given axis index.
Definition at line 414 of file TEveProjections.cxx.
|
inline |
Definition at line 126 of file TEveProjections.h.
|
inline |
Definition at line 127 of file TEveProjections.h.
|
virtual |
Get projected center.
Reimplemented in TEveRhoZProjection, TEveXZProjection, TEveYZProjection, TEveZXProjection, and TEveZYProjection.
Definition at line 299 of file TEveProjections.cxx.
Project point on given axis and return projected value.
Definition at line 532 of file TEveProjections.cxx.
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 106 of file TEveProjections.h.
|
inline |
Definition at line 111 of file TEveProjections.h.
Inverse projection.
Definition at line 430 of file TEveProjections.cxx.
|
inlinevirtual |
Reimplemented in TEveRhoZProjection.
Definition at line 133 of file TEveProjections.h.
|
pure virtual |
Implemented in TEveRhoZProjection, TEveRPhiProjection, TEveXZProjection, TEveYZProjection, TEveZXProjection, TEveZYProjection, and TEve3DProjection.
|
pure virtual |
Implemented in TEveRhoZProjection, TEveRPhiProjection, TEveXZProjection, TEveYZProjection, TEveZXProjection, TEveZYProjection, and TEve3DProjection.
|
inlinevirtual |
Reimplemented in TEveRhoZProjection, TEveRPhiProjection, TEveXZProjection, TEveYZProjection, TEveZXProjection, TEveZYProjection, and TEve3DProjection.
Definition at line 152 of file TEveProjections.h.
|
inlinevirtual |
Reimplemented in TEveRhoZProjection.
Definition at line 136 of file TEveProjections.h.
Pre-scale point (x, y) in projected coordinates for 2D projections:
Definition at line 153 of file TEveProjections.cxx.
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.
|
pure virtual |
Implemented in TEveRhoZProjection, TEveRPhiProjection, TEveXZProjection, TEveYZProjection, TEveZXProjection, TEveZYProjection, and TEve3DProjection.
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 double array.
This is a bit piggish as we convert the doubles to floats and back.
Definition at line 64 of file TEveProjections.cxx.
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.
Project float array.
Definition at line 55 of file TEveProjections.cxx.
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.
void TEveProjection::ProjectVector | ( | TEveVector & | v, |
Float_t | d | ||
) |
Project TEveVector.
Definition at line 74 of file TEveProjections.cxx.
|
inline |
Definition at line 98 of file TEveProjections.h.
|
inlinevirtual |
Reimplemented in TEveRhoZProjection, TEveXZProjection, TEveYZProjection, TEveZXProjection, and TEveZYProjection.
Definition at line 99 of file TEveProjections.h.
|
virtual |
Get vector for axis in a projected space.
Reimplemented in TEveRhoZProjection, TEveXZProjection, TEveYZProjection, TEveZXProjection, and TEveZYProjection.
Definition at line 403 of file TEveProjections.cxx.
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.
void TEveProjection::SetDistortion | ( | Float_t | d | ) |
Set distortion.
Definition at line 258 of file TEveProjections.cxx.
void TEveProjection::SetFixR | ( | Float_t | x | ) |
Set fixed radius.
Definition at line 270 of file TEveProjections.cxx.
void TEveProjection::SetFixZ | ( | Float_t | x | ) |
Set fixed radius.
Definition at line 280 of file TEveProjections.cxx.
|
inline |
Definition at line 108 of file TEveProjections.h.
|
inline |
Definition at line 131 of file TEveProjections.h.
|
inline |
Definition at line 96 of file TEveProjections.h.
void TEveProjection::SetPastFixRFac | ( | Float_t | x | ) |
Set 2's-exponent for relative scaling beyond FixR.
Definition at line 290 of file TEveProjections.cxx.
void TEveProjection::SetPastFixZFac | ( | Float_t | x | ) |
Set 2's-exponent for relative scaling beyond FixZ.
Definition at line 325 of file TEveProjections.cxx.
|
inline |
Definition at line 105 of file TEveProjections.h.
|
inline |
Definition at line 112 of file TEveProjections.h.
|
virtual |
Reimplemented in TEveRhoZProjection, TEveRPhiProjection, TEveXZProjection, TEveYZProjection, TEveZXProjection, TEveZYProjection, and TEve3DProjection.
|
inline |
Definition at line 152 of file TEveProjections.h.
|
inlinevirtual |
Reimplemented in TEveRhoZProjection.
Definition at line 135 of file TEveProjections.h.
|
protected |
Definition at line 58 of file TEveProjections.h.
|
protected |
Definition at line 60 of file TEveProjections.h.
|
protected |
Definition at line 65 of file TEveProjections.h.
|
protected |
Definition at line 66 of file TEveProjections.h.
|
protected |
Definition at line 67 of file TEveProjections.h.
|
protected |
Definition at line 55 of file TEveProjections.h.
Definition at line 149 of file TEveProjections.h.
Definition at line 150 of file TEveProjections.h.
|
protected |
Definition at line 74 of file TEveProjections.h.
|
protected |
Definition at line 56 of file TEveProjections.h.
|
protected |
Definition at line 68 of file TEveProjections.h.
|
protected |
Definition at line 72 of file TEveProjections.h.
|
protected |
Definition at line 69 of file TEveProjections.h.
|
protected |
Definition at line 73 of file TEveProjections.h.
|
protected |
Definition at line 63 of file TEveProjections.h.
|
protected |
Definition at line 70 of file TEveProjections.h.
|
protected |
Definition at line 71 of file TEveProjections.h.
|
protected |
Definition at line 54 of file TEveProjections.h.
|
protected |
Definition at line 62 of file TEveProjections.h.