content: package com.gamatechno.vrlib.model;
  
  import com.gamatechno.vrlib.plugins.hotspot.IMDHotspot;
  
  import java.util.Queue;
  import java.util.concurrent.LinkedBlockingQueue;
  
  /**
   * Created by hzqiujiadi on 2017/4/20.
   * hzqiujiadi ashqalcn@gmail.com
   */
  
  public class MDHitEvent {
  
      private IMDHotspot hotspot;
  
      private long timestamp;
  
      private MDRay ray;
  
      private MDHitPoint hitPoint;
  
      public IMDHotspot getHotspot() {
          return hotspot;
      }
  
      public void setHotspot(IMDHotspot hotspot) {
          this.hotspot = hotspot;
      }
  
      public long getTimestamp() {
          return timestamp;
      }
  
      public void setTimestamp(long timestamp) {
          this.timestamp = timestamp;
      }
  
      public MDRay getRay() {
          return ray;
      }
  
      public void setRay(MDRay ray) {
          this.ray = ray;
      }
  
      public MDHitPoint getHitPoint() {
          return hitPoint;
      }
  
      public void setHitPoint(MDHitPoint hitPoint) {
          this.hitPoint = hitPoint;
      }
  
      // pool
  
      public static MDHitEvent obtain(){
          MDHitEvent event = sPool.poll();
          if (event == null){
              event = new MDHitEvent();
          }
          return event;
      }
  
      public static void recycle(MDHitEvent event){
          event.hotspot = null;
          event.timestamp = 0;
          event.ray = null;
          event.hitPoint = null;
          sPool.add(event);
      }
  
      private static final Queue<MDHitEvent> sPool = new LinkedBlockingQueue<>();
  }
  