| 178 | } |
| 179 | |
| 180 | UnitVector UnitVector::to(Units pUnit) const |
| 181 | { |
| 182 | switch (pUnit) |
| 183 | { |
| 184 | case Units::ViewPercentage: |
| 185 | switch (unit) |
| 186 | { |
| 187 | case Units::ViewPercentage: |
| 188 | return UnitVector(x, y, Units::ViewPercentage); |
| 189 | case Units::ViewPixels: |
| 190 | return UnitVector(x / Screen.w, y / Screen.h, Units::ViewPercentage); |
| 191 | case Units::ViewUnits: |
| 192 | return UnitVector(x / View.w, y / View.h, Units::ViewPercentage); |
| 193 | case Units::ScenePixels: |
| 194 | return UnitVector(x / Screen.w - View.x / View.w, |
| 195 | y / Screen.h - View.y / View.h, Units::ViewPercentage); |
| 196 | case Units::SceneUnits: |
| 197 | return UnitVector( |
| 198 | (x - View.x) / View.w, (y - View.y) / View.h, Units::ViewPercentage); |
| 199 | default: |
| 200 | return UnitVector(0, 0); |
| 201 | } |
| 202 | case Units::ViewPixels: |
| 203 | switch (unit) |
| 204 | { |
| 205 | case Units::ViewPercentage: |
| 206 | return UnitVector(x * Screen.w, y * Screen.h, Units::ViewPixels); |
| 207 | case Units::ViewPixels: |
| 208 | return UnitVector(x, y, Units::ViewPixels); |
| 209 | case Units::ViewUnits: |
| 210 | return UnitVector( |
| 211 | x * Screen.w / View.w, y * Screen.h / View.h, Units::ViewPixels); |
| 212 | case Units::ScenePixels: |
| 213 | return UnitVector(x - (View.x * Screen.w / View.w), |
| 214 | y - (View.y * Screen.h / View.h), Units::ViewPixels); |
| 215 | case Units::SceneUnits: |
| 216 | return UnitVector((x - View.x) / View.w * Screen.w, |
| 217 | (y - View.y) / View.h * Screen.h, Units::ViewPixels); |
| 218 | default: |
| 219 | return UnitVector(0, 0); |
| 220 | } |
| 221 | case Units::ViewUnits: |
| 222 | switch (unit) |
| 223 | { |
| 224 | case Units::ViewPercentage: |
| 225 | return UnitVector(x * View.w, y * View.h, Units::ViewUnits); |
| 226 | case Units::ViewPixels: |
| 227 | return UnitVector( |
| 228 | x / Screen.w * View.w, y / Screen.h * View.h, Units::ViewUnits); |
| 229 | case Units::ViewUnits: |
| 230 | return UnitVector(x, y, Units::ViewUnits); |
| 231 | case Units::ScenePixels: |
| 232 | return UnitVector(x / (Screen.w / View.w) - View.x, |
| 233 | y / (Screen.h / View.h) - View.y, Units::ViewUnits); |
| 234 | case Units::SceneUnits: |
| 235 | return UnitVector(x - View.x, y - View.y, Units::ViewUnits); |
| 236 | default: |
| 237 | return UnitVector(0, 0); |
no test coverage detected