Wm4Query2TInteger.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 WM4QUERY2TINTEGER_H
00018 #define WM4QUERY2TINTEGER_H
00019
00020 #include "Wm4FoundationLIB.h"
00021 #include "Wm4Query2.h"
00022 #include "Wm4TInteger.h"
00023
00024 namespace Wm4
00025 {
00026
00027 template <class Real>
00028 class Query2TInteger : public Query2<Real>
00029 {
00030 public:
00031
00032
00033
00034
00035
00036 Query2TInteger (int iVQuantity, const Vector2<Real>* akVertex);
00037
00038
00039 virtual Query::Type GetType () const;
00040
00041
00042
00043 virtual int ToLine (const Vector2<Real>& rkP, int iV0, int iV1) const;
00044
00045 virtual int ToCircumcircle (const Vector2<Real>& rkP, int iV0, int iV1,
00046 int iV2) const;
00047
00048 private:
00049 using Query2<Real>::m_akVertex;
00050
00051 static TInteger<2> Dot (TInteger<2>& rkX0, TInteger<2>& rkY0,
00052 TInteger<2>& rkX1, TInteger<2>& rkY1);
00053
00054 static TInteger<2> Det2 (TInteger<2>& rkX0, TInteger<2>& rkY0,
00055 TInteger<2>& rkX1, TInteger<2>& rkY1);
00056
00057 static TInteger<4> Det3 (TInteger<4>& rkX0, TInteger<4>& rkY0,
00058 TInteger<4>& rkZ0, TInteger<4>& rkX1, TInteger<4>& rkY1,
00059 TInteger<4>& rkZ1, TInteger<4>& rkX2, TInteger<4>& rkY2,
00060 TInteger<4>& rkZ2);
00061 };
00062
00063 }
00064
00065 #include "Wm4Query2TInteger.inl"
00066
00067 namespace Wm4
00068 {
00069 typedef Query2TInteger<float> Query2TIntegerf;
00070 typedef Query2TInteger<double> Query2TIntegerd;
00071
00072 }
00073
00074 #endif