public float computeParticleCollisionEnergy() { float sum_v2 = 0; for (int k = 0; k < m_contactCount; k++) { final ParticleContact contact = m_contactBuffer[k]; int a = contact.indexA; int b = contact.indexB; Vec2 n = contact.normal; final Vec2 va = m_velocityBuffer.data[a]; final Vec2 vb = m_velocityBuffer.data[b]; final float vx = vb.x - va.x; final float vy = vb.y - va.y; float vn = vx * n.x + vy * n.y; if (vn < 0) { sum_v2 += vn * vn; } } return 0.5f * getParticleMass() * sum_v2; }
public void updateStatistics() { if (m_timestamp != m_system.m_timestamp) { float m = m_system.getParticleMass(); m_mass = 0; m_center.setZero();
public float computeParticleCollisionEnergy() { float sum_v2 = 0; for (int k = 0; k < m_contactCount; k++) { final ParticleContact contact = m_contactBuffer[k]; int a = contact.indexA; int b = contact.indexB; Vec2 n = contact.normal; final Vec2 va = m_velocityBuffer.data[a]; final Vec2 vb = m_velocityBuffer.data[b]; final float vx = vb.x - va.x; final float vy = vb.y - va.y; float vn = vx * n.x + vy * n.y; if (vn < 0) { sum_v2 += vn * vn; } } return 0.5f * getParticleMass() * sum_v2; }
av.x = vx; av.y = vy; final float particleMass = system.getParticleMass(); final float ax = particleMass * (av.x - vx); final float ay = particleMass * (av.y - vy);
public void updateStatistics() { if (m_timestamp != m_system.m_timestamp) { float m = m_system.getParticleMass(); m_mass = 0; m_center.setZero();
public float computeParticleCollisionEnergy() { float sum_v2 = 0; for (int k = 0; k < m_contactCount; k++) { final ParticleContact contact = m_contactBuffer[k]; int a = contact.indexA; int b = contact.indexB; Vec2 n = contact.normal; final Vec2 va = m_velocityBuffer.data[a]; final Vec2 vb = m_velocityBuffer.data[b]; final float vx = vb.x - va.x; final float vy = vb.y - va.y; float vn = vx * n.x + vy * n.y; if (vn < 0) { sum_v2 += vn * vn; } } return 0.5f * getParticleMass() * sum_v2; }
public float computeParticleCollisionEnergy() { float sum_v2 = 0; for (int k = 0; k < m_contactCount; k++) { final ParticleContact contact = m_contactBuffer[k]; int a = contact.indexA; int b = contact.indexB; Vec2 n = contact.normal; final Vec2 va = m_velocityBuffer.data[a]; final Vec2 vb = m_velocityBuffer.data[b]; final float vx = vb.x - va.x; final float vy = vb.y - va.y; float vn = vx * n.x + vy * n.y; if (vn < 0) { sum_v2 += vn * vn; } } return 0.5f * getParticleMass() * sum_v2; }
av.x = vx; av.y = vy; final float particleMass = system.getParticleMass(); final float ax = particleMass * (av.x - vx); final float ay = particleMass * (av.y - vy);
public void updateStatistics() { if (m_timestamp != m_system.m_timestamp) { float m = m_system.getParticleMass(); m_mass = 0; m_center.setZero();
public void updateStatistics() { if (m_timestamp != m_system.m_timestamp) { float m = m_system.getParticleMass(); m_mass = 0; m_center.setZero();
av.x = vx; av.y = vy; final float particleMass = system.getParticleMass(); final float ax = particleMass * (av.x - vx); final float ay = particleMass * (av.y - vy);
av.x = vx; av.y = vy; final float particleMass = system.getParticleMass(); final float ax = particleMass * (av.x - vx); final float ay = particleMass * (av.y - vy);