public static Aabb TransformAabb(float4x4 transform, float3 center, float3 extents) { float3 worldCenter = math.transform(transform, center); float3 worldExtents = LatiosMath.RotateExtents(extents, transform.c0.xyz, transform.c1.xyz, transform.c2.xyz); return(new Aabb(worldCenter - worldExtents, worldCenter + worldExtents)); }
public static Aabb CalculateAabb(CompoundCollider compound, RigidTransform transform) { var local = compound.compoundColliderBlob.Value.localAabb; float3 c = (local.min + local.max) / 2f; //BoxCollider box = new BoxCollider(c, local.max - c); //return CalculateAabb(box, transform); float3 extents = local.max - c; var rotMatrix = new float3x3(transform.rot); var worldExtents = LatiosMath.RotateExtents(extents, rotMatrix); var worldCenter = math.transform(transform, c); return new Aabb(worldCenter - worldExtents, worldCenter + worldExtents); }