MCPcopy Create free account
hub / github.com/axmolengine/axmol / getFaceDirection

Method getFaceDirection

core/3d/OBB.cpp:384–415  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

382}
383
384Vec3 OBB::getFaceDirection(int index) const
385{
386 Vec3 corners[8];
387 getCorners(corners);
388
389 Vec3 faceDirection, v0, v1;
390 switch (index)
391 {
392 case 0: // front and back
393 v0 = corners[2] - corners[1];
394 v1 = corners[0] - corners[1];
395 Vec3::cross(v0, v1, &faceDirection);
396 faceDirection.normalize();
397 break;
398 case 1: // left and right
399 v0 = corners[5] - corners[2];
400 v1 = corners[3] - corners[2];
401 Vec3::cross(v0, v1, &faceDirection);
402 faceDirection.normalize();
403 break;
404 case 2: // top and bottom
405 v0 = corners[1] - corners[2];
406 v1 = corners[5] - corners[2];
407 Vec3::cross(v0, v1, &faceDirection);
408 faceDirection.normalize();
409 break;
410 default:
411 AXASSERT(0, "Invalid index!");
412 break;
413 }
414 return faceDirection;
415}
416
417bool OBB::intersects(const OBB& box) const
418{

Callers 1

intersectsMethod · 0.80

Calls 2

crossFunction · 0.50
normalizeMethod · 0.45

Tested by

no test coverage detected