blob: c39260dc5eab4ff392a641ca53df38e4b4fafdc8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
// PR rtl-optimization/39607
// { dg-do compile }
// { dg-options "-O2" }
void abcErrorMessage(int error);
enum AbcSurfType {
SURF_U,
SURF_V
};
class AbcVec2d
{
public:
double x;
double y;
};
class AbcIval1d
{
protected:
double m_dMin;
double m_dMax;
public:
AbcIval1d();
AbcIval1d(double dMin, double dMax);
double GetMax() const { return m_dMax; }
double GetMin() const { return m_dMin; }
};
inline AbcIval1d::AbcIval1d(double dMin, double dMax)
{
if (dMin > dMax) {
abcErrorMessage(1);
}
else {
m_dMin = dMin;
m_dMax = dMax;
}
}
class AbcIval2d
{
protected:
AbcVec2d m_vMin;
AbcVec2d m_vMax;
public:
AbcVec2d GetMax() const { return m_vMax; }
AbcVec2d GetMin() const { return m_vMin; }
};
class AbcCone
{
protected:
int m_uv;
public:
AbcIval2d GetNaturalUVDomain() const;
AbcIval1d GetLinearParamIval(AbcSurfType * pSurfParam) const;
};
AbcIval1d AbcCone::GetLinearParamIval(AbcSurfType * pSurfParam) const
{
AbcIval1d sIval;
AbcIval2d sUVDomain = GetNaturalUVDomain();
if (m_uv) {
sIval = AbcIval1d(sUVDomain.GetMin().x,sUVDomain.GetMax().x);
}
else {
sIval = AbcIval1d(sUVDomain.GetMin().y,sUVDomain.GetMax().y);
}
return sIval;
}
|