00001 // Wild Magic Source Code 00002 // David Eberly 00003 // http://www.geometrictools.com 00004 // Copyright (c) 1998-2007 00005 // 00006 // This library is free software; you can redistribute it and/or modify it 00007 // under the terms of the GNU Lesser General Public License as published by 00008 // the Free Software Foundation; either version 2.1 of the License, or (at 00009 // your option) any later version. The license is available for reading at 00010 // either of the locations: 00011 // http://www.gnu.org/copyleft/lgpl.html 00012 // http://www.geometrictools.com/License/WildMagicLicense.pdf 00013 // The license applies to versions 0 through 4 of Wild Magic. 00014 // 00015 // Version: 4.0.0 (2006/06/28) 00016 00017 #ifndef WM4TRIANGLE3_H 00018 #define WM4TRIANGLE3_H 00019 00020 #include "Wm4FoundationLIB.h" 00021 #include "Wm4Vector3.h" 00022 00023 namespace Wm4 00024 { 00025 00026 template <class Real> 00027 class Triangle3 00028 { 00029 public: 00030 // The triangle is represented as an array of three vertices, V0, V1, 00031 // and V2. 00032 00033 // construction 00034 Triangle3 (); // uninitialized 00035 Triangle3 (const Vector3<Real>& rkV0, const Vector3<Real>& rkV1, 00036 const Vector3<Real>& rkV2); 00037 Triangle3 (const Vector3<Real> akV[3]); 00038 00039 // distance from the point Q to the triangle 00040 Real DistanceTo (const Vector3<Real>& rkQ) const; 00041 00042 Vector3<Real> V[3]; 00043 }; 00044 00045 } 00046 00047 #include "Wm4Triangle3.inl" 00048 00049 namespace Wm4 00050 { 00051 typedef Triangle3<float> Triangle3f; 00052 typedef Triangle3<double> Triangle3d; 00053 00054 } 00055 00056 #endif