Beispiel #1
0
 /// <summary>
 /// Adjust the goal's parameters while the solver is running.
 /// </summary>
 /// <param name="onLineGoal"></param>
 /// <param name="targetLineOrigin"></param>
 /// <param name="targetLineDirection"></param>
 /// <param name="weight"></param>
 /// <returns></returns>
 public static OnLineGoal OnLineGoal_Change(
     OnLineGoal onLineGoal,
     [DefaultArgument("null")] Point targetLineOrigin,
     [DefaultArgument("null")] Vector targetLineDirection,
     [DefaultArgument("-1.0")] double weight)
 {
     if (targetLineOrigin != null) onLineGoal.TargetLineOrigin = targetLineOrigin.ToTriple();
     if (targetLineDirection != null) onLineGoal.TargetLineDirection = targetLineDirection.ToTriple();
     if (weight >= 0.0) onLineGoal.Weight = (float)weight;
     return onLineGoal;
 }
Beispiel #2
0
        /// <summary>
        /// Adjust the goal's parameters while the solver is running.
        /// </summary>
        /// <param name="onLineGoal"></param>
        /// <param name="targetLine"></param>
        /// <param name="weight"></param>
        /// <returns></returns>
        public static OnLineGoal OnLineGoal_Change(
            OnLineGoal onLineGoal,
            [DefaultArgument("null")] Line targetLine,
            [DefaultArgument("-1.0")] double weight)
        {
            if (targetLine != null)
            {
                onLineGoal.TargetLineOrigin = targetLine.StartPoint.ToTriple();
                onLineGoal.TargetLineDirection =
                    (targetLine.EndPoint.ToTriple() - targetLine.StartPoint.ToTriple()).Normalise();
            }

            if (weight >= 0.0) onLineGoal.Weight = (float)weight;
            return onLineGoal;
        }