DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ IsAreaAtDoorFree() [1/2]

bool EntityAI::IsAreaAtDoorFree ( int currentSeat,
float maxAllowedObjHeight,
inout vector extents,
out vector transform[4] )
inlineprotected

См. определение в файле Transport.c строка 479

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
505 GetGame().IsBoxColliding(position, orientation, extents, excluded, collided);
506
507 orientation.RotationMatrixFromAngles(transform);
508 transform[3] = position;
509
510 foreach (Object o : collided)
511 {
512 EntityAI e = EntityAI.Cast(o);
513 if (IsIgnoredObject(o))
514 continue;
515
516 vector minmax[2];
517 if (o.GetCollisionBox(minmax))
518 return false;
519 }
520
521 return true;
522 }
class LogManager EntityAI
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)
Определения Transport.c:439
proto void RotationMatrixFromAngles(out vector mat[3])
Creates rotation matrix from angles.
static const vector Up
Определения EnConvert.c:107
class LOD Object
proto native CGame GetGame()

Перекрестные ссылки CrewEntry(), GetGame(), CGame::IsBoxColliding(), IsIgnoredObject(), Math3D::MatrixMultiply4(), Math3D::MatrixToAngles(), vector::RotationMatrixFromAngles() и vector::Up.