Exemplo n.º 1
0
        public static void DestoryBody(PBody3D body, IParallelRigidbody3D rigidBody3D)
        {
            if (!initialized)
            {
                Initialize();
            }

            if (rigidBodies.Contains(rigidBody3D))
            {
                rigidBodies.Remove(rigidBody3D);
            }

            if (bodyDictionary.ContainsKey(body.BodyID))
            {
                bodyDictionary.Remove(body.BodyID);
            }

            NativeParallel3D.DestroyBody(internalWorld.IntPointer, body.IntPointer);
        }
Exemplo n.º 2
0
        //3D body
        public static PBody3D AddBody(
            int bodyType,
            Fix64Vec3 position,
            Fix64Quat orientation,
            Fix64Vec3 linearDamping,
            Fix64Vec3 angularDamping,
            Fix64Vec3 gravityScale,
            bool fixedRotationX,
            bool fixedRotationY,
            bool fixedRotationZ,
            IParallelRigidbody3D rigidBody)
        {
            if (!initialized)
            {
                Initialize();
            }

            UInt16 bodyID = 0;

            IntPtr m_NativeObject = NativeParallel3D.CreateBody(
                internalWorld.IntPointer,
                bodyType,
                position,
                orientation,
                linearDamping,
                angularDamping,
                gravityScale,
                fixedRotationX,
                fixedRotationY,
                fixedRotationZ,
                ref bodyID);

            PBody3D body = new PBody3D(m_NativeObject, bodyID, rigidBody as ParallelRigidbody3D, bodyExportSize);

            rigidBodies.Add(rigidBody);
            bodyDictionary[bodyID] = body;

            ReadNativeBody(body);

            return(body);
        }