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

◆ IsAreaAtDoorFree() [1/2]

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

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

574 {
575 GetTransform(transform);
576
577 vector crewPos;
578 vector crewDir;
579 CrewEntry( currentSeat, crewPos, crewDir );
580
581 vector entry[4];
582 entry[2] = crewDir;
583 entry[0] = vector.Up * crewDir;
584 entry[1] = entry[2] * entry[0];
585 entry[3] = crewPos;
586
587 Math3D.MatrixMultiply4( transform, entry, transform );
588
589 vector position = transform[3];
590 vector orientation = Math3D.MatrixToAngles(transform);
591
592 position[1] = position[1] + maxAllowedObjHeight + (extents[1] * 0.5);
593
594 array<Object> excluded = new array<Object>;
595 array<Object> collided = new array<Object>;
596
597 excluded.Insert(this);
598
599 GetGame().IsBoxColliding(position, orientation, extents, excluded, collided);
600
601 orientation.RotationMatrixFromAngles(transform);
602 transform[3] = position;
603
604 foreach (Object o : collided)
605 {
606 EntityAI e = EntityAI.Cast(o);
607 if (IsIgnoredObject(o))
608 continue;
609
610 vector minmax[2];
611 if (o.GetCollisionBox(minmax))
612 return false;
613 }
614
615 return true;
616 }
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:491
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.