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); } }
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); }