Esempio n. 1
0
 private void DeactivateConstraintsWithInactiveParticles(IObiConstraints constraints, List <int> particles)
 {
     foreach (var batch in constraints.GetBatchInterfaces())
     {
         for (int i = batch.activeConstraintCount - 1; i >= 0; --i)
         {
             particles.Clear();
             batch.GetParticlesInvolved(i, particles);
             for (int k = 0; k < particles.Count; ++k)
             {
                 if (!IsParticleActive(particles[k]))
                 {
                     batch.DeactivateConstraint(i);
                     break;
                 }
             }
         }
     }
 }
Esempio n. 2
0
        private bool DoesParticleShareConstraints(IObiConstraints constraints, int index, List <int> particles, bool[] selected)
        {
            bool shared = false;

            foreach (var batch in constraints.GetBatchInterfaces())
            {
                for (int j = 0; j < batch.activeConstraintCount; ++j)
                {
                    particles.Clear();
                    batch.GetParticlesInvolved(j, particles);

                    if (shared |= IsParticleSharedInConstraint(index, particles, selected))
                    {
                        break;
                    }
                }

                if (shared)
                {
                    break;
                }
            }
            return(shared);
        }