+ if(fabs(m_n[0]-1) < Epsilon && m_n[1] < Epsilon && m_n[2] < Epsilon) {
+ // plane is parallel to y and z axes
+ return Box(Vec3f(m_a[0]-Epsilon, Infinity, Infinity),
+ Vec3f(m_a[0]+Epsilon, Infinity, Infinity));
+ } else if(m_n[0] < Epsilon && fabs(m_n[1]-1) < Epsilon && m_n[2] < Epsilon) {
+ // plane is parallel to x and z axes
+ return Box(Vec3f(Infinity, m_a[1]-Epsilon, Infinity),
+ Vec3f(Infinity, m_a[1]+Epsilon, Infinity));
+ } else if(m_n[0] < Epsilon && m_n[1] < Epsilon && fabs(m_n[2]-1) < Epsilon ) {
+ // plane is parallel to x and y axes
+ return Box(Vec3f(Infinity, Infinity, m_a[2]-Epsilon),
+ Vec3f(Infinity, Infinity, m_a[2]+Epsilon));
+ } else
+ // no real border
+ return Box();