Wm4Query3Int64.h

Go to the documentation of this file.
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 WM4QUERY3INT64_H
00018 #define WM4QUERY3INT64_H
00019 
00020 #include "Wm4FoundationLIB.h"
00021 #include "Wm4Query3.h"
00022 
00023 namespace Wm4
00024 {
00025 
00026 template <class Real>
00027 class Query3Int64 : public Query3<Real>
00028 {
00029 public:
00030     // The components of the input vertices are truncated to 64-bit integer
00031     // values, so you should guarantee that the vertices are sufficiently
00032     // large to give a good distribution of numbers.
00033     Query3Int64 (int iVQuantity, const Vector3<Real>* akVertex);
00034 
00035     // run-time type information
00036     virtual Query::Type GetType () const;
00037 
00038     // Queries about the relation of a point to various geometric objects.
00039 
00040     virtual int ToPlane (const Vector3<Real>& rkP, int iV0, int iV1, int iV2)
00041         const;
00042 
00043     virtual int ToCircumsphere (const Vector3<Real>& rkP, int iV0, int iV1,
00044         int iV2, int iV3) const;
00045 
00046 private:
00047     using Query3<Real>::m_akVertex;
00048 
00049     static Integer64 Dot (Integer64 iX0, Integer64 iY0, Integer64 iZ0,
00050         Integer64 iX1, Integer64 iY1, Integer64 iZ1);
00051 
00052     static Integer64 Det3 (Integer64 iX0, Integer64 iY0, Integer64 iZ0,
00053         Integer64 iX1, Integer64 iY1, Integer64 iZ1, Integer64 iX2,
00054         Integer64 iY2, Integer64 iZ2);
00055 
00056     static Integer64 Det4 (Integer64 iX0, Integer64 iY0, Integer64 iZ0,
00057         Integer64 iW0, Integer64 iX1, Integer64 iY1, Integer64 iZ1,
00058         Integer64 iW1, Integer64 iX2, Integer64 iY2, Integer64 iZ2,
00059         Integer64 iW2, Integer64 iX3, Integer64 iY3, Integer64 iZ3,
00060         Integer64 iW3);
00061 };
00062 
00063 }
00064 
00065 #include "Wm4Query3Int64.inl"
00066 
00067 namespace Wm4
00068 {
00069 typedef Query3Int64<float> Query3Int64f;
00070 typedef Query3Int64<double> Query3Int64d;
00071 
00072 }
00073 
00074 #endif

Generated on Wed Nov 23 19:01:08 2011 for FreeCAD by  doxygen 1.6.1