271272273274275276277278279280281
public TriangleMesh faceOutwards() { computeCentroid(); for (Face f : faces) { Vec3D n = f.getCentroid().sub(centroid); float dot = n.dot(f.normal); if (dot < 0) { f.flipVertexOrder(); } } return this;
5556575859606162636465
if (det > -EPS && det < EPS) { return -1; } float invDet = 1f / det; Vec3D tvec = ro.sub(a); float u = tvec.dot(pvec) * invDet; if (u < 0.0 || u > 1.0) { return -1; } Vec3D qvec = tvec.cross(e1); float v = dir.dot(qvec) * invDet;