00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include "Teddy/Maths/Plane.h"
00026 #include "Teddy/SysSupport/StdIO.h"
00027
00028
00029 namespace Teddy {
00030 namespace Maths {
00031
00032
00039
00040
00041
00042
00043
00044
00045
00046
00051 double Plane::distance( const Vector &p ) const {
00052 return( v[0]*p.v[0] + v[1]*p.v[1] + v[2]*p.v[2] + v[3] );
00053 }
00054
00055
00057 void Plane::neg(){
00058 v[0] = -v[0];
00059 v[1] = -v[1];
00060 v[2] = -v[2];
00061 v[3] = -v[3];
00062 }
00063
00064
00065
00066 Vector Plane::getNormal() const {
00067 return Vector( v[0], v[1], v[2] );
00068 }
00069
00070
00071 double Plane::getConstant() const {
00072 return v[3];
00073 }
00074
00076 Plane &Plane::operator=( const Vector &vec ){
00077 v[0] = vec.v[0];
00078 v[1] = vec.v[1];
00079 v[2] = vec.v[2];
00080 return( *this );
00081 }
00082
00084 Plane &Plane::operator=( const Vector4 &vec ){
00085 v[0] = vec.v[0];
00086 v[1] = vec.v[1];
00087 v[2] = vec.v[2];
00088 v[3] = vec.v[3];
00089 return( *this );
00090 }
00091
00092
00093 };
00094 };
00095