/**
*
*/
package ddddbb.comb;
import ddddbb.math.Point;
import ddddbb.math.Point3d;
public class Location extends ALocation {
protected int dim;
protected int spaceDim;
protected Point origin = null;
public boolean equals(Object o) {
Location l = (Location) o;
if (dim != l.dim) return false;
if (spaceDim!=l.spaceDim) return false;
if (origin==null && l.origin==null) return true;
return origin.equals(l.origin);
}
Location(int _spaceDim,int _dim) {
spaceDim = _spaceDim;
dim = _dim;
}
Location(int _dim, Point _o) {
spaceDim = _o.dim();
dim = _dim;
origin = _o;
}
Location(Point _o, boolean proj3d) {
spaceDim = _o.dim();
dim = 0;
origin = _o;
if (proj3d) {
p3 = (Point3d)origin;
}
}
Location(DLocation loc) {
dim = loc.dim();
spaceDim = loc.spaceDim();
if (dim==0) { origin = loc.o(); }
p3 = loc.p3;
p2l = loc.p2l;
p2r = loc.p2r;
p2AheadEye = loc.p2AheadEye;
p3AheadEye = loc.p3AheadEye;
}
/** second parameter must be true */
Location(DLocation loc, boolean proj3d) {
assert loc.spaceDim() == 4;
dim = loc.dim();
spaceDim = 3;
if (dim==0) { origin = loc.p3; }
p3 = loc.p3;
p2l = loc.p2l;
p2r = loc.p2r;
p2AheadEye = loc.p2AheadEye;
p3AheadEye = loc.p3AheadEye;
}
public void setO(Point _origin) {
assert _origin != null;
origin = _origin;
}
@Override
public int spaceDim() {
return spaceDim;
}
@Override
public int dim() {
return dim;
}
@Override
public Point o() {
return origin;
}
public String toString() {
return o().toString();
}
DLocation _src;
}