示例#1
0
        // Create a mask given a selection of layers.
        public static uint CreateMask(params int[] collisionLayers)
        {
            uint mask = 0;

            for (var i = 0; i < collisionLayers.Length; ++i)
            {
                var layer = collisionLayers[i];
                if (layer >= 0 && layer <= 32)
                {
                    mask |= (uint)1 << layer;
                    continue;
                }

                SafetyChecks.ThrowArgumentException("Collision mask layers must be in the range 0-31.");
                return(default);
示例#2
0
        // Create a Dynamic body with the specified mass.
        public static PhysicsMass CreateDynamic(MassProperties massProperties, float mass)
        {
            if (!(mass <= 0f) && math.isfinite(mass))
            {
                return new PhysicsMass
                       {
                           InverseMass       = math.rcp(mass),
                           InverseInertia    = massProperties.MassDistribution.InverseInertia,
                           LocalCenterOfMass = massProperties.MassDistribution.LocalCenterOfMass,
                       }
            }
            ;

            SafetyChecks.ThrowArgumentException("Cannot specify less than zero or Infinite/NaN.", "mass");
            return(default);