1 /* { dg-do compile } */
2 
3 typedef unsigned long ULONG;
4 void iwos_ErrorMessage(long error, const char * const file_name,
5                        ULONG line_num, const char * const message);
6 class AbcA2d {
7 public:
8     double x;
9     double y;
~AbcA2d()10     ~AbcA2d() { }
11 };
12 enum AbcZyParamType { ABC_SP_1 };
13 class AbcExtent2d {
14     AbcA2d m_vMin;
15     AbcA2d m_vMax;
16 public:
17     AbcExtent2d(const AbcA2d & rMin, const AbcA2d & rMax);
18     AbcA2d ClampPoint2d(const AbcA2d & rPoint) const;
GetMax()19     AbcA2d GetMax() const { return m_vMax; }
GetMin()20     AbcA2d GetMin() const { }
21     AbcA2d Evaluate(double dNormalizedX, double dNormalizedY) const;
22 };
AbcExtent2d(const AbcA2d & rMin,const AbcA2d & rMax)23 inline AbcExtent2d::AbcExtent2d(const AbcA2d & rMin, const AbcA2d & rMax)
24 {
25     if (rMin.x > rMax.x || rMin.y > rMax.y)
26       {
27         long sErr = (1007);
28         if (sErr != 1000)
29           iwos_ErrorMessage(sErr,(const char * const)__null,
30                             0,(const char * const)__null);
31       }
32     else
33       {
34         m_vMin = rMin;
35         m_vMax = rMax;
36       }
37 }
ClampPoint2d(const AbcA2d & rPoint)38 inline AbcA2d AbcExtent2d::ClampPoint2d(const AbcA2d & rPoint) const
39 {
40     AbcA2d sRet = rPoint;
41     if (rPoint.x < m_vMin.x)
42       sRet.x = m_vMin.x;
43     return sRet;
44 }
Evaluate(double dNormalizedX,double dNormalizedY)45 inline AbcA2d AbcExtent2d::Evaluate(double dNormalizedX, double dNormalizedY)
46 const
47 {
48     AbcA2d sRet;
49     sRet.x = m_vMin.x + dNormalizedX * (m_vMax.x - m_vMin.x);
50     sRet.y = m_vMin.y + dNormalizedY * (m_vMax.y - m_vMin.y);
51     return ClampPoint2d(sRet);
52 }
53 class AbcAbcdTracer {
54     AbcExtent2d m_vUVDomain;
55     virtual long TestIsoAbcde(AbcZyParamType eZyParam, double dParam,
56                               int & rbZyxIsSolution);
57     virtual int DoesPointLieOnAbcde(AbcA2d & rUV, int bRefinePoint) const;
58 };
TestIsoAbcde(AbcZyParamType eZyParam,double dParam,int & rbZyxIsSolution)59 long AbcAbcdTracer::TestIsoAbcde(AbcZyParamType eZyParam, double dParam,
60                                  int & rbZyxIsSolution)
61 {
62     AbcA2d sUV1(m_vUVDomain.GetMin());
63     AbcA2d sUV2(m_vUVDomain.GetMax());
64     AbcExtent2d sUVIso(sUV1,sUV2);
65     for (ULONG i=0; i<10; i++)
66       {
67         double dT = i / (10 -1.0);
68         AbcA2d sUV = sUVIso.Evaluate(dT,dT);
69         if (!DoesPointLieOnAbcde(sUV,0))
70           ;
71       }
72 }
73 
74