Example #1
0
 internal RigidBody(RigidBodyDescriptor descriptor, Scene scene)
 {
     WrappedActor = CreateActor(descriptor, scene);
     Configurator = new RigidBodyConfigurator(this);
     FixtureFactory = new RigidBodyFixtureFactory(this);
     Forces = new RigidBodyForces(this);
     Velocity = new RigidBodyVelocity(this);
     MassFrame = new RigidBodyMassFrame(this);
     UserData = descriptor.UserData;
 }
Example #2
0
        internal RigidBody(RigidBodyDescriptor descriptor)
        {
            WrappedRigidBody = new DR.RigidBody {AutoUpdateMass = true, MotionType = descriptor.MotionType.ToDigitalRune()};

            Configurator = new RigidBodyConfigurator(this);
            FixtureFactory = new RigidBodyFixtureFactory(this);
            Forces = new RigidBodyForces(this);
            Velocity = new RigidBodyVelocity(this);
            MassFrame = new RigidBodyMassFrame(this);
            Descriptor = descriptor;
        }
Example #3
0
        private Actor CreateActor(RigidBodyDescriptor descriptor, Scene scene)
        {
         
            var materialDesc = new MaterialDescription
            {
                DynamicFriction = 0.5f,
                StaticFriction = 0.5f,
                Restitution = 0.7f,
                FrictionCombineMode = CombineMode.Average,
                RestitutionCombineMode = CombineMode.Average
            };
            DefaultMaterial = scene.CreateMaterial(materialDesc);
            var boxDesc = new BoxShapeDescription
            {
                Material = DefaultMaterial,
                Dimensions = new Vector3(1, 1, 1)
            };
            ///////////////////////////////////////////////



            //resolve the motion type
            var rigidBodyDesc = descriptor.MotionType == MotionType.Static
                                    ? null
                                    : new BodyDescription();
            if (descriptor.MotionType == MotionType.Kinematic)
                rigidBodyDesc.BodyFlags = BodyFlag.Kinematic;

            HasDefaultShape = true;
            var actorDesc = new ActorDescription(boxDesc)
                                {
                                    BodyDescription = rigidBodyDesc,
                                    Density = 10.0f,
                                    GlobalPose = descriptor.Pose.ToPhysX(),
                                    UserData = descriptor.UserData
                                };
            return scene.CreateActor(actorDesc);
        }
     CreateRigidBody(this IFactory<IActor> factory,
                                             RigidBodyDescriptor descriptor)
 {
     return factory.Create<IRigidBody, RigidBodyDescriptor>(descriptor);
 }
Example #5
0
 public DefaultRigidBody(RigidBodyDescriptor descriptor)
 {
     _motionType = descriptor.MotionType;
 }
Example #6
0
 public DefaultRigidBody(RigidBodyDescriptor descriptor)
 {
     _motionType = descriptor.MotionType;
 }