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; }