Exemple #1
0
        //Bullet calls this so I can copy bullet data to unity
        public override void SetWorldTransform(ref Matrix m)
        {
            /*
             * BulletSharp.Math.Vector3 pos = m.Origin;
             * UnityEngine.Quaternion q = new UnityEngine.Quaternion();
             * q.w = Mathf.Sqrt(Mathf.Max(0, 1 + m[0, 0] + m[1, 1] + m[2, 2])) / 2;
             * q.x = Mathf.Sqrt(Mathf.Max(0, 1 + m[0, 0] - m[1, 1] - m[2, 2])) / 2;
             * q.y = Mathf.Sqrt(Mathf.Max(0, 1 - m[0, 0] + m[1, 1] - m[2, 2])) / 2;
             * q.z = Mathf.Sqrt(Mathf.Max(0, 1 - m[0, 0] - m[1, 1] + m[2, 2])) / 2;
             * q.x *= Mathf.Sign(q.x * (m[1, 2] - m[2, 1]));
             * q.y *= Mathf.Sign(q.y * (m[2, 0] - m[0, 2]));
             * q.z *= Mathf.Sign(q.z * (m[0, 1] - m[1, 2]));
             */

            //todo not very efficient

            /*
             * Matrix4x4 mu = m.ToUnity();
             * UnityEngine.Vector3 p = BSExtensionMethods.ExtractTranslationFromMatrix(ref mu);
             * UnityEngine.Quaternion q = BSExtensionMethods.ExtractRotationFromMatrix(ref mu);
             * UnityEngine.Vector3 sc = BSExtensionMethods.ExtractScaleFromMatrix(ref mu);
             *
             * UnityEngine.Vector3 p1 = BSExtensionMethods.ExtractTranslationFromMatrix(ref m);
             * UnityEngine.Quaternion q1 = BSExtensionMethods.ExtractRotationFromMatrix(ref m);
             * UnityEngine.Vector3 sc1 = BSExtensionMethods.ExtractScaleFromMatrix(ref m);
             *
             * if (p != p1) Debug.Log("Dont match p " + p + " " + p1);
             * if (q != q1) Debug.Log("Dont match q " + q + " " + q1);
             * if (sc != sc1) Debug.Log("Dont match p " + sc + " " + sc1);
             */

            transform.position   = BSExtensionMethods2.ExtractTranslationFromMatrix(ref m);
            transform.rotation   = BSExtensionMethods2.ExtractRotationFromMatrix(ref m);
            transform.localScale = BSExtensionMethods2.ExtractScaleFromMatrix(ref m);
        }
Exemple #2
0
 public override void DrawSphere(float radius, ref Matrix trans, ref Vector3 color)
 {
     UnityEngine.Vector3    pos   = BSExtensionMethods2.ExtractTranslationFromMatrix(ref trans);
     UnityEngine.Quaternion rot   = BSExtensionMethods2.ExtractRotationFromMatrix(ref trans);
     UnityEngine.Vector3    scale = BSExtensionMethods2.ExtractScaleFromMatrix(ref trans);
     UnityEngine.Color      c     = new UnityEngine.Color(color.X, color.Y, color.Z);
     BUtility.DebugDrawSphere(pos, rot, scale, UnityEngine.Vector3.one * radius, c);
 }
Exemple #3
0
 public override void DrawPlane(ref Vector3 planeNormal, float planeConst, ref Matrix trans, ref Vector3 color)
 {
     UnityEngine.Vector3    pos   = BSExtensionMethods2.ExtractTranslationFromMatrix(ref trans);
     UnityEngine.Quaternion rot   = BSExtensionMethods2.ExtractRotationFromMatrix(ref trans);
     UnityEngine.Vector3    scale = BSExtensionMethods2.ExtractScaleFromMatrix(ref trans);
     UnityEngine.Color      c     = new UnityEngine.Color(color.X, color.Y, color.Z);
     BUtility.DebugDrawPlane(pos, rot, scale, planeNormal.ToUnity(), planeConst, c);
 }
Exemple #4
0
 public override void DrawCylinder(float radius, float halfHeight, int upAxis, ref Matrix trans, ref Vector3 color)
 {
     UnityEngine.Vector3    pos   = BSExtensionMethods2.ExtractTranslationFromMatrix(ref trans);
     UnityEngine.Quaternion rot   = BSExtensionMethods2.ExtractRotationFromMatrix(ref trans);
     UnityEngine.Vector3    scale = BSExtensionMethods2.ExtractScaleFromMatrix(ref trans);
     UnityEngine.Color      c     = new UnityEngine.Color(color.X, color.Y, color.Z);
     BUtility.DebugDrawCylinder(pos, rot, scale, radius, halfHeight, upAxis, c);
 }
Exemple #5
0
 public void FixedUpdate()
 {
     BulletSharp.Math.Matrix trans;
     m_collisionObject.GetWorldTransform(out trans);
     transform.position   = BSExtensionMethods2.ExtractTranslationFromMatrix(ref trans);
     transform.rotation   = BSExtensionMethods2.ExtractRotationFromMatrix(ref trans);
     transform.localScale = BSExtensionMethods2.ExtractScaleFromMatrix(ref trans);
 }
Exemple #6
0
 public override void DrawBox(ref Vector3 bbMin, ref Vector3 bbMax, ref Matrix trans, ref Vector3 color)
 {
     UnityEngine.Vector3    pos   = BSExtensionMethods2.ExtractTranslationFromMatrix(ref trans);
     UnityEngine.Quaternion rot   = BSExtensionMethods2.ExtractRotationFromMatrix(ref trans);
     UnityEngine.Vector3    scale = BSExtensionMethods2.ExtractScaleFromMatrix(ref trans);
     UnityEngine.Vector3    size  = (bbMax - bbMin).ToUnity();
     UnityEngine.Color      c     = new UnityEngine.Color(color.X, color.Y, color.Z);
     BUtility.DebugDrawBox(pos, rot, scale, size, c);
 }
        public override void DrawSphere(float radius, ref BM.Matrix trans, ref BM.Vector3 color)
        {
            Vector3    pos   = BSExtensionMethods2.ExtractTranslationFromMatrix(ref trans);
            Quaternion rot   = BSExtensionMethods2.ExtractRotationFromMatrix(ref trans);
            Vector3    scale = BSExtensionMethods2.ExtractScaleFromMatrix(ref trans);
            Color      c     = new Color(color.X, color.Y, color.Z);

            BUtility.DebugDrawSphere(pos, rot, scale, radius, c);
        }
Exemple #8
0
 public override void DrawTransform(ref Matrix trans, float orthoLen)
 {
     UnityEngine.Vector3    pos   = BSExtensionMethods2.ExtractTranslationFromMatrix(ref trans);
     UnityEngine.Quaternion rot   = BSExtensionMethods2.ExtractRotationFromMatrix(ref trans);
     UnityEngine.Vector3    scale = BSExtensionMethods2.ExtractScaleFromMatrix(ref trans);
     UnityEngine.Vector3    p1    = pos + rot * UnityEngine.Vector3.up * orthoLen;
     UnityEngine.Vector3    p2    = pos - rot * UnityEngine.Vector3.up * orthoLen;
     UnityEngine.Gizmos.DrawLine(p1, p2);
     p1 = pos + rot * UnityEngine.Vector3.right * orthoLen;
     p2 = pos - rot * UnityEngine.Vector3.right * orthoLen;
     UnityEngine.Gizmos.DrawLine(p1, p2);
     p1 = pos + rot * UnityEngine.Vector3.forward * orthoLen;
     p2 = pos - rot * UnityEngine.Vector3.forward * orthoLen;
     UnityEngine.Gizmos.DrawLine(p1, p2);
 }
 //Bullet calls this so I can copy bullet data to unity
 public override void SetWorldTransform(ref BM.Matrix m)
 {
     transform.position   = BSExtensionMethods2.ExtractTranslationFromMatrix(ref m);
     transform.rotation   = BSExtensionMethods2.ExtractRotationFromMatrix(ref m);
     transform.localScale = BSExtensionMethods2.ExtractScaleFromMatrix(ref m);
 }