75   fA1(0), fA2(0), fA3(0), fAsOK(
kFALSE),
 
 
   89   fA1(t.fA1), fA2(t.fA2), fA3(t.fA3), fAsOK(t.fAsOK),
 
   90   fUseTrans (t.fUseTrans),
 
   91   fEditTrans(t.fEditTrans),
 
 
  103   fA1(0), fA2(0), fA3(0), fAsOK(
kFALSE),
 
  106   fEditRotation(
kTRUE),
 
 
  117   fA1(0), fA2(0), fA3(0), fAsOK(
kFALSE),
 
  120   fEditRotation(
kTRUE),
 
 
  204   t(i,
j) = -s; t(
j,i) = s;
 
 
  226   f = (
e < 0.0f) ? -
e : 
e;
 
  241            x.fX = 1.0f; 
x.fY = 
x.fZ = 0.0f;
 
  243            x.fZ = 1.0f; 
x.fX = 
x.fY = 0.0f;
 
  249            x.fY = 1.0f; 
x.fX = 
x.fZ = 0.0f;
 
  251            x.fZ = 1.0f; 
x.fX = 
x.fY = 0.0f;
 
  258      c1 = 2.0f / 
u.Mag2();
 
  259      c2 = 2.0f / 
v.Mag2();
 
  262      for (
int i = 0; i < 3; i++) {
 
  263         for (
int j = 0; 
j < 3; 
j++) {
 
  288      CM(1, 1) = 
e + 
h * 
v.fY * 
v.fY;
 
 
  304   for(
int c=0; 
c<4; ++
c, col+=4) {
 
  306      for(
int r=0; 
r<4; ++
r, ++row)
 
  307         buf[
r] = row[0]*col[0] + row[4]*col[1] + row[8]*col[2] + row[12]*col[3];
 
  308      col[0] = buf[0]; col[1] = buf[1]; col[2] = buf[2]; col[3] = buf[3];
 
 
  320   for(
int r=0; 
r<4; ++
r, ++row) {
 
  322      for(
int c=0; 
c<4; ++
c, col+=4)
 
  323         buf[
c] = row[0]*col[0] + row[4]*col[1] + row[8]*col[2] + row[12]*col[3];
 
  324      row[0] = buf[0]; row[4] = buf[1]; row[8] = buf[2]; row[12] = buf[3];
 
 
  382   --
i1 <<= 2; --
i2 <<= 2; 
 
  383   for (
int r=0; 
r<4; ++
r, ++row) {
 
  384      b1 = cos*row[
i1] + sin*row[
i2];
 
  385      b2 = cos*row[
i2] - sin*row[
i1];
 
  386      row[
i1] = b1; row[
i2] = b2;
 
 
  422   for(
int c=0; 
c<4; ++
c, col+=4) {
 
  423      b1 = cos*col[
i1] - sin*col[
i2];
 
  424      b2 = cos*col[
i2] + sin*col[
i1];
 
  425      col[
i1] = b1; col[
i2] = b2;
 
 
  473   col[0] = 
x; col[1] = 
y; col[2] = z;
 
 
  500   v.SetXYZ(col[0], col[1], col[2]);
 
 
  608   for(
int i=0; i<
n; i++) {
 
  611         case 'x': 
case 'X': 
RotateLF(2, 3, 
a[i]); 
break;
 
  612         case 'y': 
case 'Y': 
RotateLF(3, 1, 
a[i]); 
break;
 
  613         case 'z': 
case 'Z': 
RotateLF(1, 2, 
a[i]); 
break;
 
 
  628      if(
d>1) 
d=1; 
else if(
d<-1) 
d=-1; 
 
 
  828   c[0] /= 
l; 
c[1] /= 
l; 
c[2] /= 
l;
 
 
  909      throw(
eh + 
"matrix is singular.");
 
 
  944   if (
R__b.IsReading()) {
 
 
  958   for(
Int_t i=0; i<4; ++i, ++row)
 
  959      printf(
"%8.3f %8.3f %8.3f | %8.3f\n", row[0], row[4], row[8], row[12]);
 
 
  969   s.setf(std::ios::fixed, std::ios::floatfield);
 
  971   for(
Int_t i=1; i<=4; i++)
 
  973         s << t(i,
j) << ((
j==4) ? 
"\n" : 
"\t");
 
 
 1001      m[0]  = 
r[0]*s[0]; 
m[1]  = 
r[3]*s[0]; 
m[2]  = 
r[6]*s[0]; 
m[3]  = 0;
 
 1002      m[4]  = 
r[1]*s[1]; 
m[5]  = 
r[4]*s[1]; 
m[6]  = 
r[7]*s[1]; 
m[7]  = 0;
 
 1003      m[8]  = 
r[2]*s[2]; 
m[9]  = 
r[5]*s[2]; 
m[10] = 
r[8]*s[2]; 
m[11] = 0;
 
 1004      m[12] = t[0];      
m[13] = t[1];      
m[14] = t[2];      
m[15] = 1;
 
 1008      m[0]  = 
r[0];      
m[1]  = 
r[3];      
m[2]  = 
r[6];      
m[3]  = 0;
 
 1009      m[4]  = 
r[1];      
m[5]  = 
r[4];      
m[6]  = 
r[7];      
m[7]  = 0;
 
 1010      m[8]  = 
r[2];      
m[9]  = 
r[5];      
m[10] = 
r[8];      
m[11] = 0;
 
 1011      m[12] = t[0];      
m[13] = t[1];      
m[14] = t[2];      
m[15] = 1;
 
 
 1029      r[0] = 
m[0]/s[0]; 
r[3] = 
m[1]/s[0]; 
r[6] = 
m[2]/s[0]; 
m += 4;
 
 1030      r[1] = 
m[0]/s[1]; 
r[4] = 
m[1]/s[1]; 
r[7] = 
m[2]/s[1]; 
m += 4;
 
 1031      r[2] = 
m[0]/s[2]; 
r[5] = 
m[1]/s[2]; 
r[8] = 
m[2]/s[2]; 
m += 4;
 
 1032      t[0] = 
m[0];      t[1] = 
m[1];      t[2] = 
m[2];
 
 1037      r[0] = 1; 
r[3] = 0; 
r[6] = 0;
 
 1038      r[1] = 0; 
r[4] = 1; 
r[7] = 0;
 
 1039      r[2] = 0; 
r[5] = 0; 
r[8] = 1;
 
 1040      s[0] = s[1] = s[2] = 1;
 
 1041      t[0] = t[1] = t[2] = 0;
 
 
 1056      m[0]  = 
fM[0];  
m[1]  = 
fM[4];  
m[2]  = 
fM[8];  
m[3]  = 
fM[3];
 
 1057      m[4]  = 
fM[1];  
m[5]  = 
fM[5];  
m[6]  = 
fM[9];  
m[7]  = 
fM[7];
 
 1058      m[8]  = 
fM[2];  
m[9]  = 
fM[6];  
m[10] = 
fM[10]; 
m[11] = 
fM[11];
 
 1059      m[12] = 
fM[12]; 
m[13] = 
fM[13]; 
m[14] = 
fM[14]; 
m[15] = 
fM[15];
 
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
std::ostream & operator<<(std::ostream &s, const TEveTrans &t)
Print to std::ostream.
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
 
Generic 3D primitive description class.
 
Buffer base class used for serializing objects.
 
Exception class thrown by TEve classes and macros.
 
TEveTrans is a 4x4 transformation matrix for homogeneous coordinates stored internally in a column-ma...
 
void SetGeoHMatrix(TGeoHMatrix &mat)
Set TGeoHMatrix mat.
 
void OrtoNorm3()
Orto-norm columns 1 to 3.
 
void MultLeft(const TEveTrans &t)
Multiply from left: this = t * this.
 
void UnitRot()
Reset rotation part of the matrix to unity.
 
Bool_t IsScale(Double_t low=0.9, Double_t high=1.1) const
Test if the transformation is a scale.
 
void SetBaseVec(Int_t b, Double_t x, Double_t y, Double_t z)
Set base-vector with index b.
 
Double_t Orto3Column(Int_t col, Int_t ref)
Orto-norm 3-vector in column col with respect to column ref.
 
void MoveLF(Int_t ai, Double_t amount)
Move in local-frame along axis with index ai.
 
TEveTrans operator*(const TEveTrans &t)
Copy, multiply from right and return product.
 
TEveTrans()
Default constructor.
 
void Move(const TEveTrans &a, Int_t ai, Double_t amount)
Move in a's coord-system along axis-index ai.
 
void SetFromArray(const Double_t arr[16])
Set matrix from Double_t array.
 
void Print(Option_t *option="") const override
Print in reasonable format.
 
void Scale(Double_t sx, Double_t sy, Double_t sz)
Scale matrix. Translation part untouched.
 
void Rotate(const TEveTrans &a, Int_t i1, Int_t i2, Double_t amount)
Rotate in a's coord-system, rotating base vector with index i1 into i2.
 
void MultRight(const TEveTrans &t)
Multiply from right: this = this * t.
 
void RotateIP(TVector3 &v) const
Rotate vector in-place. Translation is NOT applied.
 
TVector3 GetBaseVec(Int_t b) const
Get base-vector with index b.
 
TVector3 Multiply(const TVector3 &v, Double_t w=1) const
Multiply vector and return it.
 
void Move3(const TEveTrans &a, Double_t x, Double_t y, Double_t z)
General move in a's coord-system.
 
void RotatePF(Int_t i1, Int_t i2, Double_t amount)
Rotate in parent frame. Does optimised version of MultLeft.
 
void Streamer(TBuffer &) override
Stream an object of class TEveTrans.
 
void SetScale(Double_t sx, Double_t sy, Double_t sz)
Set scaling.
 
void SetRotByAngles(Float_t a1, Float_t a2, Float_t a3)
 
void SetScaleX(Double_t sx)
Change x scaling.
 
void RotateLF(Int_t i1, Int_t i2, Double_t amount)
Rotate in local frame. Does optimised version of MultRight.
 
void UnitTrans()
Reset matrix to unity.
 
void SetScaleY(Double_t sy)
Change y scaling.
 
Double_t Norm3Column(Int_t col)
Norm 3-vector in column col.
 
void SetRotByAnyAngles(Float_t a1, Float_t a2, Float_t a3, const char *pat)
Sets Rotation part as given by angles a1, a1, a3 and pattern pat.
 
void SetupFromToVec(const TEveVector &from, const TEveVector &to)
A function for creating a rotation matrix that rotates a vector called "from" into another vector cal...
 
void MovePF(Int_t ai, Double_t amount)
Move in parent-frame along axis index ai.
 
Double_t Invert()
Invert matrix.
 
void Move3LF(Double_t x, Double_t y, Double_t z)
General move in local-frame.
 
void TransposeRotationPart()
Transpose 3x3 rotation sub-matrix.
 
void SetupRotation(Int_t i, Int_t j, Double_t f)
Setup the matrix as an elementary rotation.
 
void SetBuffer3D(TBuffer3D &buff)
Fill transformation part TBuffer3D core section.
 
void GetScale(Double_t &sx, Double_t &sy, Double_t &sz) const
Deduce scales from sizes of base vectors.
 
void MultiplyIP(TVector3 &v, Double_t w=1) const
Multiply vector in-place.
 
Double_t Unscale()
Remove scaling, make all base vectors of unit length.
 
void SetFrom(Double_t *carr)
 
void SetTrans(const TEveTrans &t, Bool_t copyAngles=kTRUE)
Set matrix from another,.
 
void Move3PF(Double_t x, Double_t y, Double_t z)
General move in parent-frame.
 
void SetScaleZ(Double_t sz)
Change z scaling.
 
void GetRotAngles(Float_t *x) const
Get Cardan rotation angles (pattern xYz above).
 
void SetPos(Double_t x, Double_t y, Double_t z)
Set position (base-vec 4).
 
Double_t CM(Int_t i, Int_t j) const
 
void ZeroTrans(Double_t w=1.0)
Reset matrix to zero, only the perspective scaling is set to w (1 by default).
 
Matrix class used for computing global transformations Should NOT be used for node definition.
 
Geometrical transformation package.
 
Mother of all ROOT objects.
 
void SetXYZ(Double_t x, Double_t y, Double_t z)
 
Double_t ASin(Double_t)
Returns the principal value of the arc sine of x, expressed in radians.
 
Double_t ATan2(Double_t y, Double_t x)
Returns the principal value of the arc tangent of y/x, expressed in radians.
 
Double_t Sqrt(Double_t x)
Returns the square root of x.
 
Double_t Cos(Double_t)
Returns the cosine of an angle of x radians.
 
Double_t Sin(Double_t)
Returns the sine of an angle of x radians.
 
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.
 
constexpr Double_t TwoPi()