19 dir2 = TVector3(0,1,0);
32 TVector3 norm2 = p.
dir1.Cross(p.
dir2);
34 TVector3 dirLine = norm1.Cross(norm2);
41 arr[0][2]=d1-norm1[2]*
base[2];
44 arr[1][2]=d2-norm2[2]*base[2];
57 arr[1][
i]+=fac*arr[0][
i];
61 Double_t x1 = (arr[0][2]-x2*arr[0][1])/arr[0][0];
65 lineBase.SetXYZ(x1,x2,base[2]);
72 cout <<
"(" <<
base[0] <<
"," <<
base[1] <<
"," <<
base[2] <<
")";
73 cout <<
"+a*(" <<
dir1[0] <<
"," <<
dir1[1] <<
"," <<
dir1[2] <<
")";
74 cout <<
"+b*(" <<
dir2[0] <<
"," <<
dir2[1] <<
"," <<
dir2[2] <<
")";
80 TVector3 lineDir = l.
getDir();
81 TVector3 lineBase = l.
getP1();
86 matrix[
i][2]=-lineDir[
i];
87 matrix[
i][3]=lineBase[
i]-
base[
i];
94 for(
int j=i+1;j<3;j++){
99 cout <<
"\033[1;31mNo Intersection from plane and line\033[0m" << endl;
100 return TVector3(0,0,0);
103 for(
int j=i;j<4;j++){
105 matrix[
i][j] = matrix[
max][j];
106 matrix[
max][j] = temp;
109 for(
int j=i+1;j<3;j++){
111 for(
int k=i;k<4;k++){
112 matrix[j][k]+=(fac*matrix[
i][k]);
117 Double_t lamp = matrix[2][3]/matrix[2][2];
118 return lineBase+lamp*lineDir;
PndLine getIntersection(PndPlane &p)
friend F32vec4 max(const F32vec4 &a, const F32vec4 &b)
PndPlane(TVector3 b, TVector3 d1, TVector3 d2)