PMMPにあるAxisAlignedBBの使い方-2

AxisAlignedBBの説明はこちら

intersectsWith

範囲の中に指定した範囲が少しでも重なっていればtrue、重なってなければfalse
ただし、端だけ重なっていてもfalseになります
端だけ重なってもtrueにしたいときは $blue->intersectsWith($red, -0.00001); とすれば大丈夫です
intersectsWith

$blue->intersectsWith($red);

isVectorInside

範囲の中に指定したvector3が含まれていればtrue、含まれていなければfalse
これも端で重なっている場合はfalseになります
isVectorInside

min (1,1,1)
max (100,100,100)
$vector3 = new Vector3(10,10,10);


$aabb->inVectorInside($vector3);
// true
min (1,1,1)
max (100,100,100)
$vector3 = new Vector3(10,10,100);


$aabb->inVectorInside($vector3);
// false

isCube

正方形だったらtrue、そうじゃないならfalse
isCube

min (1,1,1)
max (100,100,100)

$aabb->isCube();
// true

isVectorIn

isVectorInsideの平面版
yz,xz,xyの三種類があり、これは端で重なってもtrueです
isVectorInYZ, isVectorInXZ, isVectorInXY

min (1,1,1)
max (100,100,100)
$vector3 = new Vector3(10,10,999999999999);


$aabb->isVectorInXY($vector3);
// true

calculateOffset

x,y,zの三種類があります
使用例を見たところエンティティから一番近い当たり判定のあるものを探すのに使われているみたいです
calculateXOffset, calculateYOffset, calculateZOffset

ree

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です