Line3 extends Line3Base implements ReadOnlyLine3, Poolable { public static boolean isValid(final ReadOnlyLine3 line) { if (line == null) { return false; } return Vector3.isValid(line.getDirection()) && Vector3.isValid(line.getOrigin()); } Line3();  Line3(final ReadOnlyVector3 origin, final ReadOnlyVector3 direction);  Line3(final ReadOnlyLine3 source); Line3 set(final ReadOnlyLine3 source); @Override double distanceSquared(final ReadOnlyVector3 point, final Vector3 store); static boolean isValid(final ReadOnlyLine3 line); @Override String toString(); @Override boolean equals(final Object o); @Override Line3 clone(); final static Line3 fetchTempInstance(); final static void releaseTempInstance(final Line3 line);  }
@Test public void testValid() { final Line3 line1 = new Line3(); final Line3 line2 = new Line3(new Vector3(Double.NaN, 0, 0), Vector3.UNIT_Z); final Line3 line3 = new Line3(Vector3.ZERO, new Vector3(Double.NaN, 0, 0)); assertTrue(Line3.isValid(line1)); assertFalse(Line3.isValid(line2)); assertFalse(Line3.isValid(line3)); line2.setOrigin(Vector3.ZERO); assertTrue(Line3.isValid(line2)); assertFalse(Line3.isValid(null)); }