From f9158592e1478b2013afc7041d9ed041cf2d2f4a Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Mon, 13 Jan 2014 19:47:58 +1000 Subject: Update Irrlicht to 1.8.1. Include actual change markers this time. lol --- .../irrlicht-1.8/doc/html/plane3d_8h_source.html | 318 --------------------- 1 file changed, 318 deletions(-) delete mode 100644 libraries/irrlicht-1.8/doc/html/plane3d_8h_source.html (limited to 'libraries/irrlicht-1.8/doc/html/plane3d_8h_source.html') diff --git a/libraries/irrlicht-1.8/doc/html/plane3d_8h_source.html b/libraries/irrlicht-1.8/doc/html/plane3d_8h_source.html deleted file mode 100644 index d62d558..0000000 --- a/libraries/irrlicht-1.8/doc/html/plane3d_8h_source.html +++ /dev/null @@ -1,318 +0,0 @@ - - - - -Irrlicht 3D Engine: plane3d.h Source File - - - - - - - - - - - - - - -
- - -
- - - - - - - - - - - - - - - - - -
-
Irrlicht 3D Engine - -
- -
- - - - - - -
-
-
- - - - -
-
- -
-
-
- -
-
-
-
plane3d.h
-
-
-Go to the documentation of this file.
00001 // Copyright (C) 2002-2012 Nikolaus Gebhardt
-00002 // This file is part of the "Irrlicht Engine".
-00003 // For conditions of distribution and use, see copyright notice in irrlicht.h
-00004 
-00005 #ifndef __IRR_PLANE_3D_H_INCLUDED__
-00006 #define __IRR_PLANE_3D_H_INCLUDED__
-00007 
-00008 #include "irrMath.h"
-00009 #include "vector3d.h"
-00010 
-00011 namespace irr
-00012 {
-00013 namespace core
-00014 {
-00015 
-00017 enum EIntersectionRelation3D
-00018 {
-00019     ISREL3D_FRONT = 0,
-00020     ISREL3D_BACK,
-00021     ISREL3D_PLANAR,
-00022     ISREL3D_SPANNING,
-00023     ISREL3D_CLIPPED
-00024 };
-00025 
-00027 
-00032 template <class T>
-00033 class plane3d
-00034 {
-00035     public:
-00036 
-00037         // Constructors
-00038 
-00039         plane3d(): Normal(0,1,0) { recalculateD(vector3d<T>(0,0,0)); }
-00040         
-00041         plane3d(const vector3d<T>& MPoint, const vector3d<T>& Normal) : Normal(Normal) { recalculateD(MPoint); }
-00042         
-00043         plane3d(T px, T py, T pz, T nx, T ny, T nz) : Normal(nx, ny, nz) { recalculateD(vector3d<T>(px, py, pz)); }
-00044         
-00045         plane3d(const vector3d<T>& point1, const vector3d<T>& point2, const vector3d<T>& point3)
-00046         { setPlane(point1, point2, point3); }
-00047         
-00048         plane3d(const vector3d<T> & normal, const T d) : Normal(normal), D(d) { }
-00049 
-00050         // operators
-00051 
-00052         inline bool operator==(const plane3d<T>& other) const { return (equals(D, other.D) && Normal==other.Normal);}
-00053 
-00054         inline bool operator!=(const plane3d<T>& other) const { return !(*this == other);}
-00055 
-00056         // functions
-00057 
-00058         void setPlane(const vector3d<T>& point, const vector3d<T>& nvector)
-00059         {
-00060             Normal = nvector;
-00061             recalculateD(point);
-00062         }
-00063 
-00064         void setPlane(const vector3d<T>& nvect, T d)
-00065         {
-00066             Normal = nvect;
-00067             D = d;
-00068         }
-00069 
-00070         void setPlane(const vector3d<T>& point1, const vector3d<T>& point2, const vector3d<T>& point3)
-00071         {
-00072             // creates the plane from 3 memberpoints
-00073             Normal = (point2 - point1).crossProduct(point3 - point1);
-00074             Normal.normalize();
-00075 
-00076             recalculateD(point1);
-00077         }
-00078 
-00079 
-00081 
-00086         bool getIntersectionWithLine(const vector3d<T>& linePoint,
-00087                 const vector3d<T>& lineVect,
-00088                 vector3d<T>& outIntersection) const
-00089         {
-00090             T t2 = Normal.dotProduct(lineVect);
-00091 
-00092             if (t2 == 0)
-00093                 return false;
-00094 
-00095             T t =- (Normal.dotProduct(linePoint) + D) / t2;
-00096             outIntersection = linePoint + (lineVect * t);
-00097             return true;
-00098         }
-00099 
-00101 
-00107         f32 getKnownIntersectionWithLine(const vector3d<T>& linePoint1,
-00108             const vector3d<T>& linePoint2) const
-00109         {
-00110             vector3d<T> vect = linePoint2 - linePoint1;
-00111             T t2 = (f32)Normal.dotProduct(vect);
-00112             return (f32)-((Normal.dotProduct(linePoint1) + D) / t2);
-00113         }
-00114 
-00116 
-00121         bool getIntersectionWithLimitedLine(
-00122                 const vector3d<T>& linePoint1,
-00123                 const vector3d<T>& linePoint2,
-00124                 vector3d<T>& outIntersection) const
-00125         {
-00126             return (getIntersectionWithLine(linePoint1, linePoint2 - linePoint1, outIntersection) &&
-00127                     outIntersection.isBetweenPoints(linePoint1, linePoint2));
-00128         }
-00129 
-00131 
-00135         EIntersectionRelation3D classifyPointRelation(const vector3d<T>& point) const
-00136         {
-00137             const T d = Normal.dotProduct(point) + D;
-00138 
-00139             if (d < -ROUNDING_ERROR_f32)
-00140                 return ISREL3D_BACK;
-00141 
-00142             if (d > ROUNDING_ERROR_f32)
-00143                 return ISREL3D_FRONT;
-00144 
-00145             return ISREL3D_PLANAR;
-00146         }
-00147 
-00149         void recalculateD(const vector3d<T>& MPoint)
-00150         {
-00151             D = - MPoint.dotProduct(Normal);
-00152         }
-00153 
-00155         vector3d<T> getMemberPoint() const
-00156         {
-00157             return Normal * -D;
-00158         }
-00159 
-00161 
-00162         bool existsIntersection(const plane3d<T>& other) const
-00163         {
-00164             vector3d<T> cross = other.Normal.crossProduct(Normal);
-00165             return cross.getLength() > core::ROUNDING_ERROR_f32;
-00166         }
-00167 
-00169 
-00173         bool getIntersectionWithPlane(const plane3d<T>& other,
-00174                 vector3d<T>& outLinePoint,
-00175                 vector3d<T>& outLineVect) const
-00176         {
-00177             const T fn00 = Normal.getLength();
-00178             const T fn01 = Normal.dotProduct(other.Normal);
-00179             const T fn11 = other.Normal.getLength();
-00180             const f64 det = fn00*fn11 - fn01*fn01;
-00181 
-00182             if (fabs(det) < ROUNDING_ERROR_f64 )
-00183                 return false;
-00184 
-00185             const f64 invdet = 1.0 / det;
-00186             const f64 fc0 = (fn11*-D + fn01*other.D) * invdet;
-00187             const f64 fc1 = (fn00*-other.D + fn01*D) * invdet;
-00188 
-00189             outLineVect = Normal.crossProduct(other.Normal);
-00190             outLinePoint = Normal*(T)fc0 + other.Normal*(T)fc1;
-00191             return true;
-00192         }
-00193 
-00195         bool getIntersectionWithPlanes(const plane3d<T>& o1,
-00196                 const plane3d<T>& o2, vector3d<T>& outPoint) const
-00197         {
-00198             vector3d<T> linePoint, lineVect;
-00199             if (getIntersectionWithPlane(o1, linePoint, lineVect))
-00200                 return o2.getIntersectionWithLine(linePoint, lineVect, outPoint);
-00201 
-00202             return false;
-00203         }
-00204 
-00206 
-00214         bool isFrontFacing(const vector3d<T>& lookDirection) const
-00215         {
-00216             const f32 d = Normal.dotProduct(lookDirection);
-00217             return F32_LOWER_EQUAL_0 ( d );
-00218         }
-00219 
-00221 
-00222         T getDistanceTo(const vector3d<T>& point) const
-00223         {
-00224             return point.dotProduct(Normal) + D;
-00225         }
-00226 
-00228         vector3d<T> Normal;
-00229 
-00231         T D;
-00232 };
-00233 
-00234 
-00236 typedef plane3d<f32> plane3df;
-00237 
-00239 typedef plane3d<s32> plane3di;
-00240 
-00241 } // end namespace core
-00242 } // end namespace irr
-00243 
-00244 #endif
-00245 
-
-
- - - - - -- cgit v1.1