@Test public void testNormal() { final Triangle tri1 = new Triangle(Vector3.ZERO, Vector3.UNIT_Y, Vector3.UNIT_X, 0); assertEquals(new Vector3(0, 0, -1), tri1.getNormal()); // dirty assertEquals(new Vector3(0, 0, -1), tri1.getNormal()); // clean tri1.setB(Vector3.UNIT_Z); assertEquals(new Vector3(0, 1, 0), tri1.getNormal()); // dirty, but with existing normal } }
@Override public void resetParticleVelocity(final int i) { if (_particleType == ParticleSystem.ParticleType.GeomMesh && _useTriangleNormalEmit) { _particles[i].getVelocity().set(_particles[i].getTriangleModel().getNormal()); _particles[i].getVelocity().multiplyLocal(_emissionDirection); _particles[i].getVelocity().multiplyLocal(getInitialVelocity()); } else { super.resetParticleVelocity(i); } }
@Override public void resetParticleVelocity(final int i) { if (_particleType == ParticleSystem.ParticleType.GeomMesh && _useTriangleNormalEmit) { _particles[i].getVelocity().set(_particles[i].getTriangleModel().getNormal()); _particles[i].getVelocity().multiplyLocal(_emissionDirection); _particles[i].getVelocity().multiplyLocal(getInitialVelocity()); } else { super.resetParticleVelocity(i); } }
case GeomMesh: { final Quaternion tempQuat = Quaternion.fetchTempInstance(); final ReadOnlyVector3 norm = triModel.getNormal(); if (orient != 0) { tempQuat.fromAngleNormalAxis(orient, norm);
final ReadOnlyVector3 norm = triModel.getNormal(); if (orient != 0) { tempQuat.fromAngleNormalAxis(orient, norm);