/** * set coords to origin O and vector (I-O). If I (or O) is infinite, I is used as direction * vector. * * @param O origin point * @param I unit point */ public void setCoord(GeoPointND O, GeoPointND I) { startPoint = O; endPoint = I; if (I.isInfinite()) if (O.isInfinite()) setUndefined(); // TODO infinite line else setCoord(O.getCoordsInD(3), I.getCoordsInD(3)); else if (O.isInfinite()) setCoord(I.getCoordsInD(3), O.getCoordsInD(3)); else setCoord(O.getCoordsInD(3), I.getCoordsInD(3).sub(O.getCoordsInD(3))); }