480 {
481 GetTransform(transform);
482
483 vector crewPos;
484 vector crewDir;
485 CrewEntry( currentSeat, crewPos, crewDir );
486
487 vector entry[4];
488 entry[2] = crewDir;
489 entry[0] = vector.
Up * crewDir;
490 entry[1] = entry[2] * entry[0];
491 entry[3] = crewPos;
492
493 Math3D.MatrixMultiply4( transform, entry, transform );
494
495 vector position = transform[3];
496 vector orientation = Math3D.MatrixToAngles(transform);
497
498 position[1] = position[1] + maxAllowedObjHeight + (extents[1] * 0.5);
499
500 array<Object> excluded = new array<Object>;
501 array<Object> collided = new array<Object>;
502
503 excluded.Insert(this);
504
506
508 transform[3] = position;
509
510 foreach (
Object o : collided)
511 {
514 continue;
515
516 vector minmax[2];
517 if (o.GetCollisionBox(minmax))
518 return false;
519 }
520
521 return true;
522 }
proto native bool IsBoxColliding(vector center, vector orientation, vector edgeLength, array< Object > excludeObjects, array< Object > collidedObjects=NULL)
Finds all objects that are in choosen oriented bounding box (OBB)
proto void CrewEntry(int posIdx, out vector pos, out vector dir)
Reads entry point and direction into vehicle on given position in model space.
bool IsIgnoredObject(Object o)
proto void RotationMatrixFromAngles(out vector mat[3])
Creates rotation matrix from angles.
proto native CGame GetGame()