if (obj1 == null && obj2 == null) {
equals = true;
} else if (obj1 != null && obj2 != null) {
boolean ktrajectoryEquals = true;
if ((obj1 instanceof ITrajectoryK) && (obj2 instanceof ITrajectoryK)) {
ITrajectoryK trajK1 = (ITrajectoryK) obj1;
ITrajectoryK trajK2 = (ITrajectoryK) obj2;
if (!ObjectUtils.sameObject(trajK1.getE0(), trajK2.getE0())
|| !ObjectUtils.sameObject(trajK1.getE1(), trajK2.getE1())
|| !ObjectUtils.sameObject(trajK1.getE2(), trajK2.getE2())
|| (trajK1.getEDeltaEdge() != trajK2.getEDeltaEdge())
|| !ObjectUtils.sameObject(trajK1.getEDeltaPreEdge(), trajK2.getEDeltaPreEdge())
|| !ObjectUtils.sameObject(trajK1.getEMin(), trajK2.getEMin())
|| !ObjectUtils.sameObject(trajK1.getKDelta(), trajK2.getKDelta())
|| !ObjectUtils.sameObject(trajK1.getKMax(), trajK2.getKMax())
|| !ObjectUtils.sameObject(trajK1.getKMin(), trajK2.getKMin())
|| !ObjectUtils.sameObject(trajK1.getM(), trajK2.getM())
|| !ObjectUtils.sameObject(trajK1.getN(), trajK2.getN())
|| !ObjectUtils.sameObject(trajK1.getTimeEdge(), trajK2.getTimeEdge())
|| !ObjectUtils.sameObject(trajK1.getTimePostEdge(), trajK2.getTimePostEdge())
|| !ObjectUtils.sameObject(trajK1.getTimePreEdge(), trajK2.getTimePreEdge())) {
ktrajectoryEquals = false;
}
}
if (ktrajectoryEquals && ObjectUtils.sameObject(obj1.getBeginPosition(), obj2.getBeginPosition())
&& ObjectUtils.sameObject(obj1.getBeginPosition(), obj2.getBeginPosition())