Ejemplo n.º 1
0
 public void Remove(IPhysicsObject p, IForceGenerator forceGen)
 {
     List<IForceGenerator> list;
     if (registry.ContainsKey(p))
     {
         list = registry[p];
         list.Remove(forceGen);
     }
 }
Ejemplo n.º 2
0
        public SpringSimulation()
        {
            mass = new Particle();
            Vector Anchor     = Vector.Zero();
            double k          = .1;
            double restLength = 0;

            forceGenerator = new AnchoredSpringGenerator(Anchor, k, restLength);
        }
Ejemplo n.º 3
0
 public void Add(IPhysicsObject p, IForceGenerator forceGen)
 {
     List<IForceGenerator> list;
     if (registry.ContainsKey(p))
     {
         list = registry[p];
     }
     else
     {
         registry[p] = list = new List<IForceGenerator>();
     }
     list.Add(forceGen);
 }
Ejemplo n.º 4
0
        public void UpdateForceGenerators(IPhysicsObject p, GameTime gameTime)
        {
            if (registry.ContainsKey(p))
            {
                int size = registry[p].Count;
                IForceGenerator[] list = new IForceGenerator[size];
                registry[p].CopyTo(list, 0);
                for (int i = 0; i < size; i++)
                {
                    list[i].updateForce(p, gameTime);
                }

            }
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Update semi-static potential field
 /// </summary>
 public void UpdateSemistaticPF()
 {
     semistaticPF.Clear(0);
     for (int i = semistaticGenerators.Count - 1; i >= 0; i--)
     {
         IForceGenerator gen = semistaticGenerators[i];
         if (gen != null)
         {
             gen.GenerateForce(ref semistaticPF);
         }
         else
         {
             semistaticGenerators.RemoveAt(i);
         }
     }
 }
Ejemplo n.º 6
0
        public void RemoveForceGenerator(IForceGenerator forceGenerator, Entity entity)
        {
            Monitor.Exit(ForceGeneratorRegistry);
            for (int i = 0; i < ForceGeneratorRegistry.Count; )
            {
                var registration = ForceGeneratorRegistry[i];

                if (registration.Item1 == forceGenerator && registration.Item2 == entity)
                {
                    ForceGeneratorRegistry.Remove(registration);
                }
                else
                {
                    i++;
                }
            }
            Monitor.Exit(ForceGeneratorRegistry);
        }
Ejemplo n.º 7
0
 public void AddForceGenerator(IForceGenerator forceGenerator, Entity entity)
 {
     Monitor.Enter(ForceGeneratorRegistry);
     ForceGeneratorRegistry.Add(new Tuple<IForceGenerator, Entity>(forceGenerator, entity));
     Monitor.Exit(ForceGeneratorRegistry);
 }
Ejemplo n.º 8
0
 /// <summary>
 /// Remove a semi-static force generator
 /// </summary>
 /// <param name="generator">The force generator</param>
 public void RemoveSemistaticGenerator(IForceGenerator generator)
 {
     semistaticGenerators.Remove(generator);
     UpdateResultPF();
 }
Ejemplo n.º 9
0
 /// <summary>
 /// Add a semi-static force generator
 /// </summary>
 /// <param name="generator">A force generator</param>
 public void AddSemistaticGenerator(IForceGenerator generator)
 {
     semistaticGenerators.Add(generator);
     UpdateResultPF();
 }
Ejemplo n.º 10
0
 /// <summary>
 /// Add a force generator to the physics world.
 /// </summary>
 /// <param name="generator">The generator to add.</param>
 public void Add(IForceGenerator generator)
 {
     _generators.Add(generator);
 }
Ejemplo n.º 11
0
 /// <summary>
 /// Remove a force generator from the physics world.
 /// </summary>
 /// <param name="generator">The generator to remove.</param>
 /// <returns>Returns a value indicating whether the generator was successfully removed.</returns>
 public bool Remove(IForceGenerator generator)
 {
     return _generators.Remove(generator);
 }
Ejemplo n.º 12
0
 /// <summary>
 /// Remove a force generator from the physics world.
 /// </summary>
 /// <param name="generator">The generator to remove.</param>
 /// <returns>Returns a value indicating whether the generator was successfully removed.</returns>
 public bool Remove(IForceGenerator generator)
 {
     return(_generators.Remove(generator));
 }
Ejemplo n.º 13
0
 public void RemoveGlobalForceGenerator(IForceGenerator forceGenerator)
 {
     Monitor.Enter(GlobalForces);
     GlobalForces.Remove(forceGenerator);
     Monitor.Exit(GlobalForces);
 }
Ejemplo n.º 14
0
 public ForceRegistration(IPhysicsObject component, IForceGenerator forceGenerator)
 {
     physicsComponent = component;
     fg = forceGenerator;
 }
Ejemplo n.º 15
0
 /// <summary>
 /// Add a dynamic force generator
 /// </summary>
 /// <param name="generator">A force generator</param>
 public void AddDynamicGenerator(IForceGenerator generator)
 {
     dynamicGenerators.Add(generator);
 }
Ejemplo n.º 16
0
 /// <summary>
 /// removes the force. Requrires pointer to force. This function is temporary.
 /// </summary>
 /// <param name="force"></param>
 public void deleteForce(IForceGenerator force)
 {
     forceGens.Remove(force);
 }
Ejemplo n.º 17
0
 public void addForce(IForceGenerator force)
 {
     forceGens.Add(force);
 }
Ejemplo n.º 18
0
 /// <summary>
 /// Add a dynamic force generator
 /// </summary>
 /// <param name="generator">The force generator</param>
 public void RemoveDynamicGenerator(IForceGenerator generator)
 {
     dynamicGenerators.Remove(generator);
 }
Ejemplo n.º 19
0
 public ForceRegistration()
 {
     physicsComponent = null;
     fg = null;
 }
Ejemplo n.º 20
0
 public void AddGlobalForceGenerator(IForceGenerator forceGenerator)
 {
     Monitor.Enter(GlobalForces);
     GlobalForces.Add(forceGenerator);
     Monitor.Exit(GlobalForces);
 }
Ejemplo n.º 21
0
 /// <summary>
 /// Remove the force generator from the specified object
 /// </summary>
 /// <param name="component">Componen on which remove the force generator</param>
 /// <param name="forceGenerator">Force generator to remove</param>
 public void Remove(IPhysicsObject component, IForceGenerator forceGenerator)
 {
     registrations.Remove(new ForceRegistration(component, forceGenerator));
 }
Ejemplo n.º 22
0
 /// <summary>
 /// Add a force generator to the physics world.
 /// </summary>
 /// <param name="generator">The generator to add.</param>
 public void Add(IForceGenerator generator)
 {
     _generators.Add(generator);
 }