00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include <vamos/geometry/Two_Point.h>
00019
00020 Vamos_Geometry::Two_Point Vamos_Geometry::
00021 operator + (Two_Point p1, Two_Point p2)
00022 {
00023 return Two_Point (p1.x + p2.x, p1.y + p2.y);
00024 }
00025 Vamos_Geometry::Two_Point Vamos_Geometry::
00026 operator + (Two_Point p, double scalar)
00027 {
00028 return Two_Point (p.x + scalar, p.y + scalar);
00029 }
00030 Vamos_Geometry::Two_Point Vamos_Geometry::
00031 operator + (double scalar, Two_Point p)
00032 {
00033 return p + scalar;
00034 }
00035
00036 Vamos_Geometry::Two_Point Vamos_Geometry::
00037 operator - (Two_Point p1, Two_Point p2)
00038 {
00039 return Two_Point (p1.x - p2.x, p1.y - p2.y);
00040 }
00041 Vamos_Geometry::Two_Point Vamos_Geometry::
00042 operator - (Two_Point p, double scalar)
00043 {
00044 return Two_Point (p.x - scalar, p.y - scalar);
00045 }
00046 Vamos_Geometry::Two_Point Vamos_Geometry::
00047 operator - (double scalar, Two_Point p)
00048 {
00049 return Two_Point (scalar - p.x, scalar - p.y);
00050 }
00051
00052 Vamos_Geometry::Two_Point Vamos_Geometry::
00053 operator * (Two_Point p1, Two_Point p2)
00054 {
00055 return Two_Point (p1.x * p2.x, p1.y * p2.y);
00056 }
00057 Vamos_Geometry::Two_Point Vamos_Geometry::
00058 operator * (Two_Point p, double scalar)
00059 {
00060 return Two_Point (p.x * scalar, p.y * scalar);
00061 }
00062 Vamos_Geometry::Two_Point Vamos_Geometry::
00063 operator * (double scalar, Two_Point p)
00064 {
00065 return p * scalar;
00066 }
00067
00068 Vamos_Geometry::Two_Point Vamos_Geometry::
00069 operator / (Two_Point p1, Two_Point p2)
00070 {
00071 return Two_Point (p1.x / p2.x, p1.y / p2.y);
00072 }
00073 Vamos_Geometry::Two_Point Vamos_Geometry::
00074 operator / (double scalar, Two_Point p)
00075 {
00076 return Two_Point (scalar / p.x, scalar / p.y);
00077 }
00078 Vamos_Geometry::Two_Point Vamos_Geometry::
00079 operator / (Two_Point p, double scalar)
00080 {
00081 return Two_Point (p.x / scalar, p.y / scalar);
00082 }
00083
00084
00085 std::ostream& Vamos_Geometry::
00086 operator << (std::ostream& os, const Two_Point& point)
00087 {
00088 os << "[ " << point.x << ", " << point.y << " ]";
00089 return os;
00090 }
00091
00092 std::istream& Vamos_Geometry::
00093 operator >> (std::istream& is, Two_Point& point)
00094 {
00095 char delim;
00096 is >> delim >> point.x >> delim >> point.y >> delim;
00097 return is;
00098 }