Exemplo n.º 1
0
        OBB3 CreateOBB()
        {
            var rootBone    = RootTransform();
            var localBounds = LocalBounds();

            switch (targetCoordinates)
            {
            case CoordinatesEnum.World:
                return(new OBB3(rootBone.EncapsulateInWorldSpace(localBounds), Matrix4x4.identity));

            case CoordinatesEnum.Self:
                var rootToSelfMatrix = transform.worldToLocalMatrix * rootBone.localToWorldMatrix;
                return(new OBB3(localBounds.EncapsulateInTargetSpace(rootToSelfMatrix),
                                transform.localToWorldMatrix));

            default:
                return(OBB3.Create(rootBone, localBounds));
            }
        }
 void LoadIfNecessary()
 {
     if (meshFilter == null)
     {
         meshFilter = GetComponent <MeshFilter>();
     }
     if (ch2 == null)
     {
         ch2 = new ConvexHull2(new List <Vector3>());
     }
     if (obb2 == null)
     {
         obb2 = new OBB2(ch2);
     }
     if (ch3 == null)
     {
         ch3 = new ConvexHull3(new List <Vector3>());
     }
     if (obb3 == null)
     {
         obb3 = new OBB3(ch3);
     }
 }
Exemplo n.º 3
0
 public override bool UpdateConvex()
 {
     return((_obb = CreateOBB()) != null);
 }