Wm4Query3Int64.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
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
00031
00032
00033 Query3Int64 (int iVQuantity, const Vector3<Real>* akVertex);
00034
00035
00036 virtual Query::Type GetType () const;
00037
00038
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