@Override public boolean equals(final Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; RayImpl other = (RayImpl) obj; if (direction == null) { if (other.direction != null) return false; } else if (!direction.equals(other.direction)) return false; if (origin == null) { if (other.origin != null) return false; } else if (!origin.equals(other.origin)) return false; return true; }