protected Term formTrackOfBlob(TrackSegment segment) {
   long beginningTime = segment.beginningTime;
   int[][] rectangles = segment.rectangles;
   double[] windowedR2ReferentValues = segment.getWindowedR2ReferentValues();
   Term list3 = PrologEmptyList.instance;
   for (int n = rectangles.length - 1; n >= 0; n--) {
     int[] currentRectangle = rectangles[n];
     long currentForegroundArea = segment.foregroundAreaValues[n];
     double currentCharacteristicLength = segment.characteristicLengthValues[n];
     long currentContourLength = segment.contourLengthValues[n];
     double currentR2 = windowedR2ReferentValues[n];
     double currentVelocity = segment.velocityValues[n];
     Term prologFrameN = new PrologInteger(beginningTime + currentRectangle[0]);
     Term prologXn =
         new PrologInteger(StrictMath.round((currentRectangle[1] + currentRectangle[2]) / 2.0));
     Term prologYn =
         new PrologInteger(StrictMath.round((currentRectangle[3] + currentRectangle[4]) / 2.0));
     Term prologWidthN = new PrologInteger(currentRectangle[2] - currentRectangle[1]);
     Term prologHeightN = new PrologInteger(currentRectangle[4] - currentRectangle[3]);
     Term prologForegroundAreaN = new PrologInteger(currentForegroundArea);
     Term prologCharacteristicLengthN = new PrologReal(currentCharacteristicLength);
     Term prologContourLengthN = new PrologInteger(currentContourLength);
     Term prologR2N = new PrologReal(currentR2);
     Term prologVelocityN = new PrologReal(currentVelocity);
     Term prologRectangle =
         new PrologSet(
             -SymbolCodes.symbolCode_E_frame,
             prologFrameN,
             new PrologSet(
                 -SymbolCodes.symbolCode_E_x,
                 prologXn,
                 new PrologSet(
                     -SymbolCodes.symbolCode_E_y,
                     prologYn,
                     new PrologSet(
                         -SymbolCodes.symbolCode_E_width,
                         prologWidthN,
                         new PrologSet(
                             -SymbolCodes.symbolCode_E_height,
                             prologHeightN,
                             new PrologSet(
                                 -SymbolCodes.symbolCode_E_foreground_area,
                                 prologForegroundAreaN,
                                 new PrologSet(
                                     -SymbolCodes.symbolCode_E_characteristic_length,
                                     prologCharacteristicLengthN,
                                     new PrologSet(
                                         -SymbolCodes.symbolCode_E_contour_length,
                                         prologContourLengthN,
                                         new PrologSet(
                                             -SymbolCodes.symbolCode_E_r2,
                                             prologR2N,
                                             new PrologSet(
                                                 -SymbolCodes.symbolCode_E_velocity,
                                                 prologVelocityN,
                                                 PrologEmptySet.instance))))))))));
     list3 = new PrologList(prologRectangle, list3);
   }
   ;
   return list3;
 }