@@ -21,105 +21,6 @@ void Ray::set(const Vector3& origin, const Vector3& direction) {
2121 debugAssert (direction.isUnit ());
2222
2323 m_invDirection = Vector3::one () / direction;
24-
25- // ray slope
26- ibyj = m_direction.x * m_invDirection.y ;
27- jbyi = m_direction.y * m_invDirection.x ;
28- jbyk = m_direction.y * m_invDirection.z ;
29- kbyj = m_direction.z * m_invDirection.y ;
30- ibyk = m_direction.x * m_invDirection.z ;
31- kbyi = m_direction.z * m_invDirection.x ;
32-
33- // precomputed terms
34- c_xy = m_origin.y - jbyi * m_origin.x ;
35- c_xz = m_origin.z - kbyi * m_origin.x ;
36- c_yx = m_origin.x - ibyj * m_origin.y ;
37- c_yz = m_origin.z - kbyj * m_origin.y ;
38- c_zx = m_origin.x - ibyk * m_origin.z ;
39- c_zy = m_origin.y - jbyk * m_origin.z ;
40-
41- // ray slope classification
42- if (m_direction.x < 0 ) {
43- if (m_direction.y < 0 ) {
44- if (m_direction.z < 0 ) {
45- classification = MMM;
46- } else if (m_direction.z > 0 ) {
47- classification = MMP;
48- } else { // (m_direction.z >= 0)
49- classification = MMO;
50- }
51- } else { // (m_direction.y >= 0)
52- if (m_direction.z < 0 ) {
53- if (m_direction.y == 0 ) {
54- classification = MOM;
55- } else {
56- classification = MPM;
57- }
58- } else { // (m_direction.z >= 0)
59- if ((m_direction.y == 0 ) && (m_direction.z == 0 )) {
60- classification = MOO;
61- } else if (m_direction.z == 0 ) {
62- classification = MPO;
63- } else if (m_direction.y == 0 ) {
64- classification = MOP;
65- } else {
66- classification = MPP;
67- }
68- }
69- }
70- } else { // (m_direction.x >= 0)
71- if (m_direction.y < 0 ) {
72- if (m_direction.z < 0 ) {
73- if (m_direction.x == 0 ) {
74- classification = OMM;
75- } else {
76- classification = PMM;
77- }
78- } else { // (m_direction.z >= 0)
79- if ((m_direction.x == 0 ) && (m_direction.z == 0 )) {
80- classification = OMO;
81- } else if (m_direction.z == 0 ) {
82- classification = PMO;
83- } else if (m_direction.x == 0 ) {
84- classification = OMP;
85- } else {
86- classification = PMP;
87- }
88- }
89- } else { // (m_direction.y >= 0)
90- if (m_direction.z < 0 ) {
91- if ((m_direction.x == 0 ) && (m_direction.y == 0 )) {
92- classification = OOM;
93- } else if (m_direction.x == 0 ) {
94- classification = OPM;
95- } else if (m_direction.y == 0 ) {
96- classification = POM;
97- } else {
98- classification = PPM;
99- }
100- } else { // (m_direction.z > 0)
101- if (m_direction.x == 0 ) {
102- if (m_direction.y == 0 ) {
103- classification = OOP;
104- } else if (m_direction.z == 0 ) {
105- classification = OPO;
106- } else {
107- classification = OPP;
108- }
109- } else {
110- if ((m_direction.y == 0 ) && (m_direction.z == 0 )) {
111- classification = POO;
112- } else if (m_direction.y == 0 ) {
113- classification = POP;
114- } else if (m_direction.z == 0 ) {
115- classification = PPO;
116- } else {
117- classification = PPP;
118- }
119- }
120- }
121- }
122- }
12324}
12425
12526
0 commit comments