예제 #1
0
        /// <inheritdoc/>
        public void Apply(ForceField forceField)
        {
            if (forceField == null)
            {
                throw new ArgumentNullException("forceField");
            }

            if (forceField.Simulation == null)
            {
                return;
            }

            if (CollisionObject != null && CollisionObject.Domain == forceField.Simulation.CollisionDomain)
            {
                // Get objects touching the CollisionObject.
                var affectedObjects = forceField.Simulation.CollisionDomain.GetContactObjects(CollisionObject);
                foreach (CollisionObject affectedObject in affectedObjects)
                {
                    RigidBody body = affectedObject.GeometricObject as RigidBody;
                    if (body != null && body.MotionType == MotionType.Dynamic)
                    {
                        forceField.Apply(body);
                    }
                }
            }
        }
예제 #2
0
        /// <inheritdoc/>
        public void Apply(ForceField forceField)
        {
            if (forceField == null)
            throw new ArgumentNullException("forceField");

              var simulation = forceField.Simulation;
              if (simulation != null)
              {
            int numberOfRigidBodies = simulation.RigidBodies.Count;
            if (Exclude != null)
            {
              for (int i = 0; i < numberOfRigidBodies; i++)
              {
            var body = simulation.RigidBodies[i];
            if (body.MotionType == MotionType.Dynamic && !Exclude(body))
            {
              forceField.Apply(body);
            }
              }
            }
            else
            {
              for (int i = 0; i < numberOfRigidBodies; i++)
              {
            var body = simulation.RigidBodies[i];
            if (body.MotionType == MotionType.Dynamic)
            {
              forceField.Apply(body);
            }
              }
            }
              }
        }
예제 #3
0
        /// <inheritdoc/>
        public void Apply(ForceField forceField)
        {
            if (forceField == null)
            throw new ArgumentNullException("forceField");

              if (RigidBodies != null)
              {
            int numberOfRigidBodies = RigidBodies.Count;
            for (int index = 0; index < numberOfRigidBodies; index++)
            {
              var body = RigidBodies[index];
              if (body != null && body.MotionType == MotionType.Dynamic)
              {
            forceField.Apply(body);
              }
            }
              }
        }
예제 #4
0
        /// <inheritdoc/>
        public void Apply(ForceField forceField)
        {
            if (forceField == null)
            {
                throw new ArgumentNullException("forceField");
            }

            if (RigidBodies != null)
            {
                int numberOfRigidBodies = RigidBodies.Count;
                for (int index = 0; index < numberOfRigidBodies; index++)
                {
                    var body = RigidBodies[index];
                    if (body != null && body.MotionType == MotionType.Dynamic)
                    {
                        forceField.Apply(body);
                    }
                }
            }
        }
예제 #5
0
        /// <inheritdoc/>
        public void Apply(ForceField forceField)
        {
            if (forceField == null)
            {
                throw new ArgumentNullException("forceField");
            }

            var simulation = forceField.Simulation;

            if (simulation != null)
            {
                int numberOfRigidBodies = simulation.RigidBodies.Count;
                if (Exclude != null)
                {
                    for (int i = 0; i < numberOfRigidBodies; i++)
                    {
                        var body = simulation.RigidBodies[i];
                        if (body.MotionType == MotionType.Dynamic && !Exclude(body))
                        {
                            forceField.Apply(body);
                        }
                    }
                }
                else
                {
                    for (int i = 0; i < numberOfRigidBodies; i++)
                    {
                        var body = simulation.RigidBodies[i];
                        if (body.MotionType == MotionType.Dynamic)
                        {
                            forceField.Apply(body);
                        }
                    }
                }
            }
        }
예제 #6
0
        /// <inheritdoc/>
        public void Apply(ForceField forceField)
        {
            if (forceField == null)
            throw new ArgumentNullException("forceField");

              if (forceField.Simulation == null)
            return;

              if (CollisionObject != null && CollisionObject.Domain == forceField.Simulation.CollisionDomain)
              {
            // Get objects touching the CollisionObject.
            var affectedObjects = forceField.Simulation.CollisionDomain.GetContactObjects(CollisionObject);
            foreach (CollisionObject affectedObject in affectedObjects)
            {
              RigidBody body = affectedObject.GeometricObject as RigidBody;
              if (body != null && body.MotionType == MotionType.Dynamic)
              {
            forceField.Apply(body);
              }
            }
              }
        }