// Token: 0x06002966 RID: 10598 RVA: 0x000AE378 File Offset: 0x000AC578
 private void UpdateVisualizers(AimThrowableBase.TrajectoryInfo trajectoryInfo)
 {
     if (this.arcVisualizerLineRenderer && this.calculateArcPointsJobHandle.IsCompleted)
     {
         this.calculateArcPointsJob.SetParameters(trajectoryInfo.finalRay.origin, trajectoryInfo.finalRay.direction * trajectoryInfo.speedOverride, trajectoryInfo.travelTime, this.arcVisualizerLineRenderer.positionCount, this.useGravity ? Physics.gravity.y : 0f);
         this.calculateArcPointsJobHandle = this.calculateArcPointsJob.Schedule(this.calculateArcPointsJob.outputPositions.Length, 32, default(JobHandle));
     }
     if (this.endpointVisualizerTransform)
     {
         this.endpointVisualizerTransform.SetPositionAndRotation(trajectoryInfo.hitPoint, Util.QuaternionSafeLookRotation(trajectoryInfo.hitNormal));
         if (!this.endpointVisualizerRadiusScale.Equals(0f))
         {
             this.endpointVisualizerTransform.localScale = new Vector3(this.endpointVisualizerRadiusScale, this.endpointVisualizerRadiusScale, this.endpointVisualizerRadiusScale);
         }
     }
 }
        // Token: 0x06002964 RID: 10596 RVA: 0x000AE168 File Offset: 0x000AC368
        protected virtual void UpdateTrajectoryInfo(out AimThrowableBase.TrajectoryInfo dest)
        {
            dest = default(AimThrowableBase.TrajectoryInfo);
            Ray        aimRay     = base.GetAimRay();
            RaycastHit raycastHit = default(RaycastHit);
            bool       flag       = false;

            if (this.rayRadius > 0f && Util.CharacterSpherecast(base.gameObject, aimRay, this.rayRadius, out raycastHit, this.maxDistance, LayerIndex.CommonMasks.bullet, QueryTriggerInteraction.UseGlobal) && raycastHit.collider.GetComponent <HurtBox>())
            {
                flag = true;
            }
            if (!flag)
            {
                flag = Util.CharacterRaycast(base.gameObject, aimRay, out raycastHit, this.maxDistance, LayerIndex.CommonMasks.bullet, QueryTriggerInteraction.UseGlobal);
            }
            if (flag)
            {
                dest.hitPoint  = raycastHit.point;
                dest.hitNormal = raycastHit.normal;
            }
            else
            {
                dest.hitPoint  = aimRay.GetPoint(this.maxDistance);
                dest.hitNormal = -aimRay.direction;
            }
            Vector3 vector = dest.hitPoint - aimRay.origin;

            if (this.useGravity)
            {
                float   num       = this.projectileBaseSpeed;
                Vector2 vector2   = new Vector2(vector.x, vector.z);
                float   magnitude = vector2.magnitude;
                float   y         = Trajectory.CalculateInitialYSpeed(magnitude / num, vector.y);
                Vector3 a         = new Vector3(vector2.x / magnitude * num, y, vector2.y / magnitude * num);
                dest.speedOverride = a.magnitude;
                dest.finalRay      = new Ray(aimRay.origin, a / dest.speedOverride);
                dest.travelTime    = Trajectory.CalculateGroundTravelTime(num, magnitude);
                return;
            }
            dest.speedOverride = this.projectileBaseSpeed;
            dest.finalRay      = aimRay;
            dest.travelTime    = this.projectileBaseSpeed / vector.magnitude;
        }