@Override
 public TranslationModel3D copy() {
   final TranslationModel3D m = new TranslationModel3D();
   m.translation[0] = translation[0];
   m.translation[1] = translation[1];
   m.translation[2] = translation[2];
   m.cost = cost;
   return m;
 }
  // @Override
  @Override
  public TranslationModel3D createInverse() {
    final TranslationModel3D ict = new TranslationModel3D();

    ict.translation[0] = -translation[0];
    ict.translation[1] = -translation[1];
    ict.translation[2] = -translation[2];

    ict.cost = cost;

    return ict;
  }
 @Override
 public final void set(final TranslationModel3D m) {
   translation[0] = m.translation[0];
   translation[1] = m.translation[1];
   translation[2] = m.translation[2];
   cost = m.getCost();
 }