1 #ifndef VECTOR_2_FLOAT_H
2 #define VECTOR_2_FLOAT_H
24 Vec2f(float X
,float Y
)
30 inline bool operator==(const Vec2f
&rhs
) const
32 return (x
== rhs
.x
&& y
== rhs
.y
);
35 inline bool operator!=(const Vec2f
&rhs
) const
37 return (x
!= rhs
.x
|| y
!= rhs
.y
);
40 inline Vec2f
& operator=(const Vec2f
&rhs
)
46 inline Vec2f
& operator*=(const Vec2f
¶m
)
52 inline Vec2f
operator+ (const Vec2f
& v
) const
54 return Vec2f(x
+ v
.x
, y
+ v
.y
);
56 inline Vec2f
operator- (const Vec2f
& v
) const
58 return Vec2f(x
- v
.x
, y
- v
.y
);
60 inline Vec2f
operator* (const Vec2f
& v
) const
62 return Vec2f(x
*x
, y
*y
);
64 inline Vec2f
operator* (float s
) const
66 return Vec2f(x
*s
, y
*s
);
68 inline Vec2f
operator/ (float s
) const
70 return Vec2f(x
/s
, y
/s
);
72 inline Vec2f
operator/ (const Vec2f
& v
) const
74 return Vec2f(x
/v
.x
, y
/v
.y
);
76 inline float Normalize()
78 float len
= sqrtf(x
*x
+ y
*y
);
86 inline float dot(const Vec2f
& v
) const
88 return (x
*v
.x
+ y
*v
.y
);
91 inline float length() const
93 return sqrtf(x
*x
+ y
*y
);
95 inline float lengthSqr() const
101 friend std::ostream
& operator<< (std::ostream
&lhs
,const Vec2f
&rhs
) ;
102 friend std::istream
& operator>> (std::istream
&lhs
,const Vec2f
&rhs
);
105 inline float length(const Vec2f
& v
)
107 return sqrtf(v
.x
*v
.x
+ v
.y
*v
.y
);
109 inline float lengthSqr(const Vec2f
& v
)
111 return v
.x
*v
.x
+ v
.y
*v
.y
;
114 inline Vec2f
floor(const Vec2f
& v
)
116 return Vec2f(floor(v
.x
),floor(v
.y
));
119 inline Vec2f
abs(const Vec2f
& v
)
121 return Vec2f(fabs(v
.x
),fabs(v
.y
));