public MTBImage createProgressionImage(boolean pseudocolor) throws ALDOperatorException { MTBImage trajectoryImg; if (pseudocolor) { trajectoryImg = MTBImage.createMTBImage(sizeX, sizeY, 1, sizeT, 1, MTBImage.MTBImageType.MTB_RGB); } else { trajectoryImg = MTBImage.createMTBImage(sizeX, sizeY, 1, sizeT, 1, MTBImage.MTBImageType.MTB_BYTE); } trajectoryImg.fillBlack(); trajectoryImg.setTitle("trajectories"); Random r = new Random(); for (int i = 0; i < trajectories.size(); i++) { Trajectory2D trajectory = trajectories.elementAt(i); int color = trajectory.getID(); if (pseudocolor) { color = r.nextInt((int) Math.pow(2, 32)); } Vector<Point2D.Double> points = trajectory.getPoints(); int startFrame = trajectory.getStartFrame(); for (int j = 0; j < points.size(); j++) { MTBImage currSlice = trajectoryImg.getSlice(0, startFrame + j, 0); // TODO: draw point in starting frame for (int k = 1; k <= j; k++) { Point2D.Double start = points.elementAt(k - 1); Point2D.Double end = points.elementAt(k); currSlice.drawLine2D((int) start.x, (int) start.y, (int) end.x, (int) end.y, color); } trajectoryImg.setCurrentSliceIndex(startFrame + j); trajectoryImg.setCurrentSlice(currSlice); } } return trajectoryImg; }