public void bufferTrailerPosition(RsMotion motion){
      if(lastNode==null){
         // this will happen only if we've never set properties.
         // in such a case, there is no point to buffering a point
         return;
      }

      if(!lastNode.activationStatus || lastNode.color==null || lastNode.wTrailer<=0){
          return;
      }


      PaintBoxNode node = lastNode;

      if(node.continuityID != motion.getContinuityID()){
         // there has been a break in the motion history
         // (probably in response to a new placement event)
         node = getUnusedNodeIfAvailable();
         if(node==null)
            node = addNode();
         node.continuityID = motion.getContinuityID();
      }

      motion.transform.map(node.xTrailer, node.yTrailer, node.workPoint);
      node.addPoint(node.workPoint.x, node.workPoint.y, motion.getTime());
    }