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

            if (TotalPathLength != 0D)
            {
                hash ^= TotalPathLength.GetHashCode();
            }
            if (TotalTime != 0D)
            {
                hash ^= TotalTime.GetHashCode();
            }
            if (PreferredAccel != 0D)
            {
                hash ^= PreferredAccel.GetHashCode();
            }
            if (PreferredDecel != 0D)
            {
                hash ^= PreferredDecel.GetHashCode();
            }
            if (MaxAccel != 0D)
            {
                hash ^= MaxAccel.GetHashCode();
            }
            if (MinDecel != 0D)
            {
                hash ^= MinDecel.GetHashCode();
            }
            if (SpeedLimitBuffer != 0D)
            {
                hash ^= SpeedLimitBuffer.GetHashCode();
            }
            if (SpeedWeight != 0D)
            {
                hash ^= SpeedWeight.GetHashCode();
            }
            if (JerkWeight != 0D)
            {
                hash ^= JerkWeight.GetHashCode();
            }
            if (ObstacleWeight != 0D)
            {
                hash ^= ObstacleWeight.GetHashCode();
            }
            if (UnblockingObstacleCost != 0D)
            {
                hash ^= UnblockingObstacleCost.GetHashCode();
            }
            if (stBoundaryConfig_ != null)
            {
                hash ^= StBoundaryConfig.GetHashCode();
            }
            return(hash);
        }
        public override int GetHashCode()
        {
            int hash = 1;

            if (PreferredAccel != 0D)
            {
                hash ^= PreferredAccel.GetHashCode();
            }
            if (PreferredDecel != 0D)
            {
                hash ^= PreferredDecel.GetHashCode();
            }
            if (PreferredJerk != 0D)
            {
                hash ^= PreferredJerk.GetHashCode();
            }
            if (MaxAccel != 0D)
            {
                hash ^= MaxAccel.GetHashCode();
            }
            if (MaxDecel != 0D)
            {
                hash ^= MaxDecel.GetHashCode();
            }
            if (ObstacleBuffer != 0D)
            {
                hash ^= ObstacleBuffer.GetHashCode();
            }
            if (SafeDistanceBase != 0D)
            {
                hash ^= SafeDistanceBase.GetHashCode();
            }
            if (SafeDistanceRatio != 0D)
            {
                hash ^= SafeDistanceRatio.GetHashCode();
            }
            if (FollowingAccelRatio != 0D)
            {
                hash ^= FollowingAccelRatio.GetHashCode();
            }
            if (SoftCentricAccelLimit != 0D)
            {
                hash ^= SoftCentricAccelLimit.GetHashCode();
            }
            if (HardCentricAccelLimit != 0D)
            {
                hash ^= HardCentricAccelLimit.GetHashCode();
            }
            if (HardSpeedLimit != 0D)
            {
                hash ^= HardSpeedLimit.GetHashCode();
            }
            if (HardAccelLimit != 0D)
            {
                hash ^= HardAccelLimit.GetHashCode();
            }
            if (EnableSafePath != false)
            {
                hash ^= EnableSafePath.GetHashCode();
            }
            if (EnablePlanningStartPoint != false)
            {
                hash ^= EnablePlanningStartPoint.GetHashCode();
            }
            if (EnableAccelAutoCompensation != false)
            {
                hash ^= EnableAccelAutoCompensation.GetHashCode();
            }
            if (KappaPreview != 0D)
            {
                hash ^= KappaPreview.GetHashCode();
            }
            if (KappaThreshold != 0D)
            {
                hash ^= KappaThreshold.GetHashCode();
            }
            return(hash);
        }