MCPcopy Create free account
hub / github.com/ObEngine/ObEngine / to

Method to

src/Core/Transform/UnitVector.cpp:180–281  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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);

Callers 13

dumpMethod · 0.80
operator()Method · 0.80
dumpMethod · 0.80
setMethod · 0.80
addMethod · 0.80
operator+Method · 0.80
UnitVector.cppFile · 0.80
operator-Method · 0.80
operator*Method · 0.80
operator/Method · 0.80
operator==Method · 0.80

Calls 1

UnitVectorClass · 0.85

Tested by

no test coverage detected