| OLD | NEW |
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #ifndef _FXCRT_COORDINATES_ | 7 #ifndef _FXCRT_COORDINATES_ |
| 8 #define _FXCRT_COORDINATES_ | 8 #define _FXCRT_COORDINATES_ |
| 9 | 9 |
| 10 #include "fx_basic.h" | 10 #include "fx_basic.h" |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 125 typedef CFX_PSVTemplate<FX_FLOAT> const * FX_LPCPOINTF; | 125 typedef CFX_PSVTemplate<FX_FLOAT> const * FX_LPCPOINTF; |
| 126 #define CFX_FloatPoint CFX_PointF | 126 #define CFX_FloatPoint CFX_PointF |
| 127 template<class baseType> | 127 template<class baseType> |
| 128 class CFX_VTemplate: public CFX_PSVTemplate<baseType> | 128 class CFX_VTemplate: public CFX_PSVTemplate<baseType> |
| 129 { | 129 { |
| 130 public: | 130 public: |
| 131 typedef CFX_PSVTemplate<baseType> FXT_PSV; | 131 typedef CFX_PSVTemplate<baseType> FXT_PSV; |
| 132 typedef CFX_PSVTemplate<baseType> FXT_POINT; | 132 typedef CFX_PSVTemplate<baseType> FXT_POINT; |
| 133 typedef CFX_PSVTemplate<baseType> FXT_SIZE; | 133 typedef CFX_PSVTemplate<baseType> FXT_SIZE; |
| 134 typedef CFX_VTemplate<baseType> FXT_VECTOR; | 134 typedef CFX_VTemplate<baseType> FXT_VECTOR; |
| 135 void» » Set(baseType x, baseType y) | 135 void» » Set(baseType newx, baseType newy) |
| 136 { | 136 { |
| 137 FXT_PSV::x = x, FXT_PSV::y = y; | 137 FXT_PSV::x = newx; |
| 138 FXT_PSV::y = newy; |
| 138 } | 139 } |
| 139 void Set(const FXT_PSV &psv) | 140 void Set(const FXT_PSV &psv) |
| 140 { | 141 { |
| 141 FXT_PSV::x = psv.x, FXT_PSV::y = psv.y; | 142 FXT_PSV::x = psv.x, FXT_PSV::y = psv.y; |
| 142 } | 143 } |
| 143 void Set(const FXT_POINT &p1, const FXT_POINT &p2) | 144 void Set(const FXT_POINT &p1, const FXT_POINT &p2) |
| 144 { | 145 { |
| 145 FXT_PSV::x = p2.x - p1.x, FXT_PSV::y = p2.y - p1.y; | 146 FXT_PSV::x = p2.x - p1.x, FXT_PSV::y = p2.y - p1.y; |
| 146 } | 147 } |
| 147 void Reset() | 148 void Reset() |
| (...skipping 10 matching lines...) Expand all Loading... |
| 158 } | 159 } |
| 159 void Normalize() | 160 void Normalize() |
| 160 { | 161 { |
| 161 FX_FLOAT fLen = FXSYS_sqrt(FXT_PSV::x * FXT_PSV::x + FXT_PSV::y * FXT_PS
V::y); | 162 FX_FLOAT fLen = FXSYS_sqrt(FXT_PSV::x * FXT_PSV::x + FXT_PSV::y * FXT_PS
V::y); |
| 162 if (fLen < 0.0001f) { | 163 if (fLen < 0.0001f) { |
| 163 return; | 164 return; |
| 164 } | 165 } |
| 165 FXT_PSV::x = ((baseType)FXT_PSV::x) / fLen; | 166 FXT_PSV::x = ((baseType)FXT_PSV::x) / fLen; |
| 166 FXT_PSV::y = ((baseType)FXT_PSV::y) / fLen; | 167 FXT_PSV::y = ((baseType)FXT_PSV::y) / fLen; |
| 167 } | 168 } |
| 168 baseType» DotProduct(baseType x, baseType y) const | 169 baseType» DotProduct(baseType otherx, baseType othery) const |
| 169 { | 170 { |
| 170 return FXT_PSV::x * x + FXT_PSV::y * y; | 171 return FXT_PSV::x * otherx + FXT_PSV::y * othery; |
| 171 } | 172 } |
| 172 baseType DotProduct(const FXT_VECTOR &v) const | 173 baseType DotProduct(const FXT_VECTOR &v) const |
| 173 { | 174 { |
| 174 return FXT_PSV::x * v.x + FXT_PSV::y * v.y; | 175 return FXT_PSV::x * v.x + FXT_PSV::y * v.y; |
| 175 } | 176 } |
| 176 FX_BOOL» » IsParallel(baseType x, baseType y) const | 177 FX_BOOL» » IsParallel(baseType otherx, baseType othery) const |
| 177 { | 178 { |
| 178 baseType t = FXT_PSV::x * y - FXT_PSV::y * x; | 179 baseType t = FXT_PSV::x * othery - FXT_PSV::y * otherx; |
| 179 return FXSYS_fabs(t) < 0x0001f; | 180 return FXSYS_fabs(t) < 0x0001f; |
| 180 } | 181 } |
| 181 FX_BOOL IsParallel(const FXT_VECTOR &v) const | 182 FX_BOOL IsParallel(const FXT_VECTOR &v) const |
| 182 { | 183 { |
| 183 return IsParallel(v.x, v.y); | 184 return IsParallel(v.x, v.y); |
| 184 } | 185 } |
| 185 FX_BOOL» » IsPerpendicular(baseType x, baseType y) const | 186 FX_BOOL» » IsPerpendicular(baseType otherx, baseType othery) const |
| 186 { | 187 { |
| 187 baseType t = DotProduct(x, y); | 188 baseType t = DotProduct(otherx, othery); |
| 188 return FXSYS_fabs(t) < 0x0001f; | 189 return FXSYS_fabs(t) < 0x0001f; |
| 189 } | 190 } |
| 190 FX_BOOL IsPerpendicular(const FXT_VECTOR &v) const | 191 FX_BOOL IsPerpendicular(const FXT_VECTOR &v) const |
| 191 { | 192 { |
| 192 return IsPerpendicular(v.x, v.y); | 193 return IsPerpendicular(v.x, v.y); |
| 193 } | 194 } |
| 194 void Translate(baseType dx, baseType dy) | 195 void Translate(baseType dx, baseType dy) |
| 195 { | 196 { |
| 196 FXT_PSV::x += dx, FXT_PSV::y += dy; | 197 FXT_PSV::x += dx, FXT_PSV::y += dy; |
| 197 } | 198 } |
| (...skipping 698 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 896 public: | 897 public: |
| 897 FX_FLOAT a; | 898 FX_FLOAT a; |
| 898 FX_FLOAT b; | 899 FX_FLOAT b; |
| 899 FX_FLOAT c; | 900 FX_FLOAT c; |
| 900 FX_FLOAT d; | 901 FX_FLOAT d; |
| 901 FX_FLOAT e; | 902 FX_FLOAT e; |
| 902 FX_FLOAT f; | 903 FX_FLOAT f; |
| 903 }; | 904 }; |
| 904 #define CFX_AffineMatrix CFX_Matrix | 905 #define CFX_AffineMatrix CFX_Matrix |
| 905 #endif | 906 #endif |
| OLD | NEW |