Example #1
0
        void InstalizeRigitBody(RigidContainer[] rigits)
        {
            rigitBodies = new RigidBodyBone[rigits.Length];
            for (int i = 0; i < rigits.Length; i++)
            {
                rigitBodies[i] = new RigidBodyBone(rigits[i]);
                //skipping bone binding for no index riggs (ushort indexes only)
                if (rigits[i].BoneIndex < bones.GetBones.Length && rigits[i].BoneIndex >= 0)
                {
                    rigitBodies[i].BoneID         = rigits[i].BoneIndex;
                    rigitBodies[i].BoneController = bones;
                    if (rigits[i].Phys == PhysType.FollowBone)
                    {
                        prePhysics += rigitBodies[i].SyncBone2Body;
                    }

                    if (rigits[i].Phys == PhysType.Gravity)
                    {
                        postPhysics += rigitBodies[i].SyncBody2Bone;
                    }

                    if (rigits[i].Phys == PhysType.GravityBone)
                    {
                        postPhysics += rigitBodies[i].SyncBody2BoneRot;
                    }

                    rigitBodies[i].Body.UserIndex2 = i;
                }
                World.AddRigidBody(rigitBodies[i].Body, (int)Math.Pow(2, rigits[i].GroupId), rigits[i].NonCollisionGroup);
            }
        }
Example #2
0
 public PhysicsManager(RigidContainer[] rigits, JointContainer[] jcons, BoneController bons)
 {
     //setup world physics
     bones = bons;
     //instalize delegates
     prePhysics  = (m) => { };
     postPhysics = (m) => { };
     Rigits      = rigits;
     Jcons       = jcons;
     //CreateGeneric6DofSpringConstraint();
     Type = typeof(PhysicsManager);
 }