<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://modding.kerbal.wiki/index.php?action=history&amp;feed=atom&amp;title=PatchedConicSolver</id>
	<title>PatchedConicSolver - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://modding.kerbal.wiki/index.php?action=history&amp;feed=atom&amp;title=PatchedConicSolver"/>
	<link rel="alternate" type="text/html" href="https://modding.kerbal.wiki/index.php?title=PatchedConicSolver&amp;action=history"/>
	<updated>2026-04-28T03:55:24Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://modding.kerbal.wiki/index.php?title=PatchedConicSolver&amp;diff=157&amp;oldid=prev</id>
		<title>KiwiShark: 2 revisions imported</title>
		<link rel="alternate" type="text/html" href="https://modding.kerbal.wiki/index.php?title=PatchedConicSolver&amp;diff=157&amp;oldid=prev"/>
		<updated>2024-10-09T16:46:00Z</updated>

		<summary type="html">&lt;p&gt;2 revisions imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:46, 9 October 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key web117_modding:diff:1.41:old-156:rev-157 --&gt;
&lt;/table&gt;</summary>
		<author><name>KiwiShark</name></author>
	</entry>
	<entry>
		<id>https://modding.kerbal.wiki/index.php?title=PatchedConicSolver&amp;diff=156&amp;oldid=prev</id>
		<title>Spacewarp&gt;Schlosrat: Added Called By/Used By details where available</title>
		<link rel="alternate" type="text/html" href="https://modding.kerbal.wiki/index.php?title=PatchedConicSolver&amp;diff=156&amp;oldid=prev"/>
		<updated>2023-05-26T17:10:40Z</updated>

		<summary type="html">&lt;p&gt;Added Called By/Used By details where available&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:10, 26 May 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l30&quot;&gt;Line 30:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 30:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== PatchedConicSolver.OnStart() ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== PatchedConicSolver.OnStart() ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Called by:&#039;&#039;&#039; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;TBD&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Called by:&#039;&#039;&#039; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;VesselComponent.OnStart(double)&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  The &amp;#039;&amp;#039;PatchedConicSolver.OnStart()&amp;#039;&amp;#039; method adds a new handler for the &amp;#039;&amp;#039;Orbiter.OnReferenceBodyChange&amp;#039;&amp;#039; method so that OnReferenceBodyChange will be called when necessary. It then sets the private _patchLimit to be the max of &amp;#039;&amp;#039;PersistentProfileManager.ConicPatchLimit&amp;#039;&amp;#039; and 1, adds this.Orbiter.PatchedConicsOrbit to the &amp;#039;&amp;#039;CurrentTrajectory&amp;#039;&amp;#039; list, and similarly adds any remaining patches from 1 to MaxTotalPatches.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  The &amp;#039;&amp;#039;PatchedConicSolver.OnStart()&amp;#039;&amp;#039; method adds a new handler for the &amp;#039;&amp;#039;Orbiter.OnReferenceBodyChange&amp;#039;&amp;#039; method so that OnReferenceBodyChange will be called when necessary. It then sets the private _patchLimit to be the max of &amp;#039;&amp;#039;PersistentProfileManager.ConicPatchLimit&amp;#039;&amp;#039; and 1, adds this.Orbiter.PatchedConicsOrbit to the &amp;#039;&amp;#039;CurrentTrajectory&amp;#039;&amp;#039; list, and similarly adds any remaining patches from 1 to MaxTotalPatches.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== PatchedConicSolver.OnUpdate() ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== PatchedConicSolver.OnUpdate() ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Called By:&#039;&#039;&#039; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;TBD&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Called By:&#039;&#039;&#039; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;VesselComponent.OnUpdateOrbit()&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  The &amp;#039;&amp;#039;PatchedConicSolver.OnUpdate()&amp;#039;&amp;#039; method first calls &amp;#039;&amp;#039;PatchedConicSolver.SetPatchesInactive&amp;#039;&amp;#039;, then calls private methods for &amp;#039;&amp;#039;InitializeFirstPatch()&amp;#039;&amp;#039; and &amp;#039;&amp;#039;CalculatePatchList()&amp;#039;&amp;#039; to ensure the patches are updated.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  The &amp;#039;&amp;#039;PatchedConicSolver.OnUpdate()&amp;#039;&amp;#039; method first calls &amp;#039;&amp;#039;PatchedConicSolver.SetPatchesInactive&amp;#039;&amp;#039;, then calls private methods for &amp;#039;&amp;#039;InitializeFirstPatch()&amp;#039;&amp;#039; and &amp;#039;&amp;#039;CalculatePatchList()&amp;#039;&amp;#039; to ensure the patches are updated.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &#039;&#039;&#039;NOTE:&#039;&#039;&#039; When called by &#039;&#039;VesselComponent.OnUpdateOrbit()&#039;&#039;, this method is called &#039;&#039;before&#039;&#039; calling &#039;&#039;orbiter.ManeuverPlanSolver.OnUpdate()&#039;&#039;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== PatchedConicSolver.SetPatchesInactive(List&amp;lt;PatchedConicsOrbit&amp;gt;, int) ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== PatchedConicSolver.SetPatchesInactive(List&amp;lt;PatchedConicsOrbit&amp;gt;, int) ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Called By:&#039;&#039;&#039; &#039;&#039;OnUpdate&#039;&#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Called By:&#039;&#039;&#039; &#039;&#039;OnUpdate&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;, &#039;&#039;ManeuverPlanSolver.UpdateManeuverTrajectory()&lt;/ins&gt;&#039;&#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  The &amp;#039;&amp;#039;PatchedConicSolver.SetPatchesInactive()&amp;#039;&amp;#039; method accepts a list of patches (i.e., &amp;#039;&amp;#039;CurrentTrajectory&amp;#039;&amp;#039;) and (optionally) a starting index for the list (defaults to 0). For each list member from the starting index to the end of the list, the member&amp;#039;s ActivePatch property is set to &amp;#039;&amp;#039;false&amp;#039;&amp;#039;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  The &amp;#039;&amp;#039;PatchedConicSolver.SetPatchesInactive()&amp;#039;&amp;#039; method accepts a list of patches (i.e., &amp;#039;&amp;#039;CurrentTrajectory&amp;#039;&amp;#039;) and (optionally) a starting index for the list (defaults to 0). For each list member from the starting index to the end of the list, the member&amp;#039;s ActivePatch property is set to &amp;#039;&amp;#039;false&amp;#039;&amp;#039;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &#039;&#039;&#039;NOTE:&#039;&#039;&#039; When called by &#039;&#039;ManeuverPlanSolver.UpdateManeuverTrajectory()&#039;&#039;, this method is called &#039;&#039;after&#039;&#039; calling &#039;&#039;ManeuverPlanSolver.SetPatchesInactive&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== PatchedConicSolver.SetTarget(CelestialBodyComponent) ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== PatchedConicSolver.SetTarget(CelestialBodyComponent) ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Called By:&#039;&#039;&#039; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;TBD&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Called By:&#039;&#039;&#039; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;VesselComponent.TargetObject&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  The &amp;#039;&amp;#039;PatchedConicSolver.SetTarget()&amp;#039;&amp;#039; method accepts a CelestialBodyComponent and uses that to set the private _targetBody property.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  The &amp;#039;&amp;#039;PatchedConicSolver.SetTarget()&amp;#039;&amp;#039; method accepts a CelestialBodyComponent and uses that to set the private _targetBody property.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== PatchedConicsOrbit.FindPatchContainingUT(double) ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== PatchedConicsOrbit.FindPatchContainingUT(double) ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Called By:&#039;&#039;&#039; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;TBD&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Called By:&#039;&#039;&#039; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;OrbitalReadoutInstrumentManager.Update()&#039;&#039;, &#039;&#039;ManeuverPlanComponent.IsValidNode()&#039;&#039;, &#039;&#039;ManeuverPlanComponent.UpdateNodeDetails()&#039;&#039;, &#039;&#039;ManeuverPlanComponent.GetManeuverNodeBurnDirVector()&#039;&#039;, and &#039;&#039;ManeuverPlanComponent.SolveManeuver()&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  The &amp;#039;&amp;#039;PatchedConicsOrbit FindPatchContainingUT()&amp;#039;&amp;#039; method accepts a double (the universal time of interest) and returns the &amp;#039;&amp;#039;PatchedConicOrbit&amp;#039;&amp;#039; for the patch associated with that time.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  The &amp;#039;&amp;#039;PatchedConicsOrbit FindPatchContainingUT()&amp;#039;&amp;#039; method accepts a double (the universal time of interest) and returns the &amp;#039;&amp;#039;PatchedConicOrbit&amp;#039;&amp;#039; for the patch associated with that time.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l65&quot;&gt;Line 65:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 67:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== PatchedConicsOrbit.RefreshPatchLimit() ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== PatchedConicsOrbit.RefreshPatchLimit() ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Called By:&#039;&#039;&#039; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;TBD&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Called By:&#039;&#039;&#039; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;GameplaySettingsMenuManager.ApplyConicPatchLimit()&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  The &amp;#039;&amp;#039;PatchedConicsOrbit.RefreshPatchLimit()&amp;#039;&amp;#039; method clamps the current setting of the private _pathcLimit property to be between 1 and 5 inclusively.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  The &amp;#039;&amp;#039;PatchedConicsOrbit.RefreshPatchLimit()&amp;#039;&amp;#039; method clamps the current setting of the private _pathcLimit property to be between 1 and 5 inclusively.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== PatchedConicsOrbit.SolverParameters ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== PatchedConicsOrbit.SolverParameters ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Called By:&#039;&#039;&#039; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;TBD&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Called By:&#039;&#039;&#039; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;PatchedConics.GetClosestApproach()&#039;&#039;, &#039;&#039;PatchedConics.EncountersBody()&#039;&#039;, &#039;&#039;PatchedConics.CheckEncounter()&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;Used By:&#039;&#039;&#039; &#039;&#039;ManeuverPlanSolver&#039;&#039;, &#039;&#039;PatchedConicSolver&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  The &amp;#039;&amp;#039;PatchedConicsOrbit.SolverParameters&amp;#039;&amp;#039; class defines the parameters needed for the solver with default values assigned to &amp;#039;&amp;#039;maxGeometrySolverIterations&amp;#039;&amp;#039; (25), &amp;#039;&amp;#039;maxTimeSolverIterations&amp;#039;&amp;#039; (50), and &amp;#039;&amp;#039;outerReaches&amp;#039;&amp;#039; (1E+20).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  The &amp;#039;&amp;#039;PatchedConicsOrbit.SolverParameters&amp;#039;&amp;#039; class defines the parameters needed for the solver with default values assigned to &amp;#039;&amp;#039;maxGeometrySolverIterations&amp;#039;&amp;#039; (25), &amp;#039;&amp;#039;maxTimeSolverIterations&amp;#039;&amp;#039; (50), and &amp;#039;&amp;#039;outerReaches&amp;#039;&amp;#039; (1E+20).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key web117_modding:diff:1.41:old-155:rev-156:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Spacewarp&gt;Schlosrat</name></author>
	</entry>
	<entry>
		<id>https://modding.kerbal.wiki/index.php?title=PatchedConicSolver&amp;diff=155&amp;oldid=prev</id>
		<title>Spacewarp&gt;Schlosrat: Initial documentation of the PatchedConicSolver class</title>
		<link rel="alternate" type="text/html" href="https://modding.kerbal.wiki/index.php?title=PatchedConicSolver&amp;diff=155&amp;oldid=prev"/>
		<updated>2023-05-26T16:45:50Z</updated>

		<summary type="html">&lt;p&gt;Initial documentation of the PatchedConicSolver class&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category: Orbits]]&lt;br /&gt;
PatchedConicSolver is a class that is part of Orbiter objects. It is used to capture, generate, update, and provide access to patched conics information relating to the Orbiter object it is associated with. The PatchedConicSolver class has the following &amp;#039;&amp;#039;&amp;#039;public&amp;#039;&amp;#039;&amp;#039; members.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Namespace:&amp;#039;&amp;#039;&amp;#039; KSP.Sim.impl&lt;br /&gt;
&lt;br /&gt;
== PatchedConicSolver.MaxTotalPatches ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Type:&amp;#039;&amp;#039;&amp;#039; int&lt;br /&gt;
&lt;br /&gt;
 The maximum limit on the number of patches. The default value = 10. This member can be get, but not set.&lt;br /&gt;
&lt;br /&gt;
== PatchedConicSolver.Orbiter ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Type:&amp;#039;&amp;#039;&amp;#039; OrbiterComponent&lt;br /&gt;
&lt;br /&gt;
 The &amp;#039;&amp;#039;ObiterComponent&amp;#039;&amp;#039; object this class is associated with. This member can be get, but not set.&lt;br /&gt;
&lt;br /&gt;
== PatchedConicSolver.CurrentTrajectory[index] ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Type:&amp;#039;&amp;#039;&amp;#039; List&amp;lt;PatchedConicsOrbit&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 A list of PatchedConicOrbits. May be given an index to obtain a particular trajectory. It’s basically a list of all the trajectories currently associated with this Orbiter object, and you can do things with it like any list. The length of the list will be no longer than MaxTotalPatches, with list members being chronologically organized from the patch that occurs first to the last patch. Unused members are null. This member can be get, but not set.&lt;br /&gt;
&lt;br /&gt;
== PatchedConicSolver.PatchesAhead ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Type: int&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 The number of patches ahead. This member can be get or set. It is set in the private method PatchedConicSolver.CalculatePatchList()&lt;br /&gt;
&lt;br /&gt;
== PatchedConicSolver.OnDestroy() ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Called by:&amp;#039;&amp;#039;&amp;#039; TBD&lt;br /&gt;
&lt;br /&gt;
 The &amp;#039;&amp;#039;PatchedConicSolver.OnDestroy()&amp;#039;&amp;#039; method first tests to see if the Orbiter object is null. If it is, then it returns immediately. Otherwise, it will remove the handler for &amp;#039;&amp;#039;OnReferenceBodyChange&amp;#039;&amp;#039; which was added by the &amp;#039;&amp;#039;OnStart&amp;#039;&amp;#039; method.&lt;br /&gt;
&lt;br /&gt;
== PatchedConicSolver.OnStart() ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Called by:&amp;#039;&amp;#039;&amp;#039; TBD&lt;br /&gt;
&lt;br /&gt;
 The &amp;#039;&amp;#039;PatchedConicSolver.OnStart()&amp;#039;&amp;#039; method adds a new handler for the &amp;#039;&amp;#039;Orbiter.OnReferenceBodyChange&amp;#039;&amp;#039; method so that OnReferenceBodyChange will be called when necessary. It then sets the private _patchLimit to be the max of &amp;#039;&amp;#039;PersistentProfileManager.ConicPatchLimit&amp;#039;&amp;#039; and 1, adds this.Orbiter.PatchedConicsOrbit to the &amp;#039;&amp;#039;CurrentTrajectory&amp;#039;&amp;#039; list, and similarly adds any remaining patches from 1 to MaxTotalPatches.&lt;br /&gt;
&lt;br /&gt;
== PatchedConicSolver.OnUpdate() ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Called By:&amp;#039;&amp;#039;&amp;#039; TBD&lt;br /&gt;
&lt;br /&gt;
 The &amp;#039;&amp;#039;PatchedConicSolver.OnUpdate()&amp;#039;&amp;#039; method first calls &amp;#039;&amp;#039;PatchedConicSolver.SetPatchesInactive&amp;#039;&amp;#039;, then calls private methods for &amp;#039;&amp;#039;InitializeFirstPatch()&amp;#039;&amp;#039; and &amp;#039;&amp;#039;CalculatePatchList()&amp;#039;&amp;#039; to ensure the patches are updated.&lt;br /&gt;
&lt;br /&gt;
== PatchedConicSolver.SetPatchesInactive(List&amp;lt;PatchedConicsOrbit&amp;gt;, int) ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Called By:&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;OnUpdate&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 The &amp;#039;&amp;#039;PatchedConicSolver.SetPatchesInactive()&amp;#039;&amp;#039; method accepts a list of patches (i.e., &amp;#039;&amp;#039;CurrentTrajectory&amp;#039;&amp;#039;) and (optionally) a starting index for the list (defaults to 0). For each list member from the starting index to the end of the list, the member&amp;#039;s ActivePatch property is set to &amp;#039;&amp;#039;false&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== PatchedConicSolver.SetTarget(CelestialBodyComponent) ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Called By:&amp;#039;&amp;#039;&amp;#039; TBD&lt;br /&gt;
&lt;br /&gt;
 The &amp;#039;&amp;#039;PatchedConicSolver.SetTarget()&amp;#039;&amp;#039; method accepts a CelestialBodyComponent and uses that to set the private _targetBody property.&lt;br /&gt;
&lt;br /&gt;
== PatchedConicsOrbit.FindPatchContainingUT(double) ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Called By:&amp;#039;&amp;#039;&amp;#039; TBD&lt;br /&gt;
&lt;br /&gt;
 The &amp;#039;&amp;#039;PatchedConicsOrbit FindPatchContainingUT()&amp;#039;&amp;#039; method accepts a double (the universal time of interest) and returns the &amp;#039;&amp;#039;PatchedConicOrbit&amp;#039;&amp;#039; for the patch associated with that time.&lt;br /&gt;
&lt;br /&gt;
== PatchedConicsOrbit.DecreasePatchLimit() ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Called By:&amp;#039;&amp;#039;&amp;#039; TBD&lt;br /&gt;
&lt;br /&gt;
 The &amp;#039;&amp;#039;PatchedConicsOrbit.DecreasePatchLimit()&amp;#039;&amp;#039; method decreased the current setting of the private _pathcLimit property by 1 to a value that is never less than 1.&lt;br /&gt;
&lt;br /&gt;
== PatchedConicsOrbit.IncreasePatchLimit() ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Called By:&amp;#039;&amp;#039;&amp;#039; TBD&lt;br /&gt;
&lt;br /&gt;
 The &amp;#039;&amp;#039;PatchedConicsOrbit.IncreasePatchLimit()&amp;#039;&amp;#039; method increases the current setting of the private _pathcLimit property by 1 to a value that is never more than 5.&lt;br /&gt;
&lt;br /&gt;
== PatchedConicsOrbit.RefreshPatchLimit() ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Called By:&amp;#039;&amp;#039;&amp;#039; TBD&lt;br /&gt;
&lt;br /&gt;
 The &amp;#039;&amp;#039;PatchedConicsOrbit.RefreshPatchLimit()&amp;#039;&amp;#039; method clamps the current setting of the private _pathcLimit property to be between 1 and 5 inclusively.&lt;br /&gt;
&lt;br /&gt;
== PatchedConicsOrbit.SolverParameters ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Called By:&amp;#039;&amp;#039;&amp;#039; TBD&lt;br /&gt;
&lt;br /&gt;
 The &amp;#039;&amp;#039;PatchedConicsOrbit.SolverParameters&amp;#039;&amp;#039; class defines the parameters needed for the solver with default values assigned to &amp;#039;&amp;#039;maxGeometrySolverIterations&amp;#039;&amp;#039; (25), &amp;#039;&amp;#039;maxTimeSolverIterations&amp;#039;&amp;#039; (50), and &amp;#039;&amp;#039;outerReaches&amp;#039;&amp;#039; (1E+20).&lt;/div&gt;</summary>
		<author><name>Spacewarp&gt;Schlosrat</name></author>
	</entry>
</feed>