public override int GetHashCode()
    {
        int hash = 1;

        if (Id != 0)
        {
            hash ^= Id.GetHashCode();
        }
        if (trackerPhysicalPosition_ != null)
        {
            hash ^= TrackerPhysicalPosition.GetHashCode();
        }
        if (trackerVRPositon_ != null)
        {
            hash ^= TrackerVRPositon.GetHashCode();
        }
        if (trackerRotation_ != null)
        {
            hash ^= TrackerRotation.GetHashCode();
        }
        if (_unknownFields != null)
        {
            hash ^= _unknownFields.GetHashCode();
        }
        return(hash);
    }
 public void MergeFrom(Tracker other)
 {
     if (other == null)
     {
         return;
     }
     if (other.Id != 0)
     {
         Id = other.Id;
     }
     if (other.trackerPhysicalPosition_ != null)
     {
         if (trackerPhysicalPosition_ == null)
         {
             trackerPhysicalPosition_ = new global::Vector();
         }
         TrackerPhysicalPosition.MergeFrom(other.TrackerPhysicalPosition);
     }
     if (other.trackerVRPositon_ != null)
     {
         if (trackerVRPositon_ == null)
         {
             trackerVRPositon_ = new global::Vector();
         }
         TrackerVRPositon.MergeFrom(other.TrackerVRPositon);
     }
     if (other.trackerRotation_ != null)
     {
         if (trackerRotation_ == null)
         {
             trackerRotation_ = new global::Quadrublet();
         }
         TrackerRotation.MergeFrom(other.TrackerRotation);
     }
     _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 }