<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AGI Dynamic Geometry Library Blog</title>
	<atom:link href="http://blogs.agi.com/dynamicGeometry/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blogs.agi.com/dynamicGeometry</link>
	<description></description>
	<lastBuildDate>Tue, 03 Jan 2012 19:08:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>We&#8217;ve Moved!</title>
		<link>http://blogs.agi.com/dynamicGeometry/?p=290</link>
		<comments>http://blogs.agi.com/dynamicGeometry/?p=290#comments</comments>
		<pubDate>Thu, 21 Oct 2010 17:16:29 +0000</pubDate>
		<dc:creator>Kevin Ring</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.agi.com/dynamicGeometry/?p=290</guid>
		<description><![CDATA[The Dynamic Geometry Library blog is being retired.  You can now find all your favorite AGI bloggers in one place: The AGI Blogs.  Check out the AGI Components category for all of your Components-specific blog needs!
 ]]></description>
			<content:encoded><![CDATA[<p>The Dynamic Geometry Library blog is being retired.  You can now find all your favorite AGI bloggers in one place: <a href="http://blogs.agi.com/agi">The AGI Blogs</a>.  Check out the <a href="http://blogs.agi.com/agi/?cat=17">AGI Components category</a> for all of your Components-specific blog needs!</p>
 <img src="http://blogs.agi.com/dynamicGeometry/wp-content/plugins/feed-statistics.php?view=1&post_id=290" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blogs.agi.com/dynamicGeometry/?feed=rss2&amp;p=290</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Release: AGI Components 2010 r8</title>
		<link>http://blogs.agi.com/dynamicGeometry/?p=284</link>
		<comments>http://blogs.agi.com/dynamicGeometry/?p=284#comments</comments>
		<pubDate>Fri, 17 Sep 2010 14:41:32 +0000</pubDate>
		<dc:creator>Kevin Ring</dc:creator>
				<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://blogs.agi.com/dynamicGeometry/?p=284</guid>
		<description><![CDATA[AGI Components 2010 r8 has been released!  Here are the links:

AGI Components for .NET (What's New) (Download)
AGI Components for Java (What's New) (Download)
*NEW* AGI Components for Silveright (BETA) (What's New) (Download)

This release finally brings Insight3D to AGI Components for Java!  Scott Hunter has the details over at the Insight3D blog.
This release also includes [...]]]></description>
			<content:encoded><![CDATA[<p>AGI Components 2010 r8 has been released!  Here are the links:</p>
<ul>
<li><strong>AGI Components for .NET</strong> (<a href="http://www.agi.com/resources/help/online/AGIComponents/index.aspx?page=source%2FWhatsNew.html">What's New</a>) (<a href="http://adn.agi.com/detailedView.cfm?resourceId=240">Download</a>)</li>
<li><strong>AGI Components for Java</strong> (<a href="http://www.agi.com/resources/help/online/AGIComponentsJava/index.aspx?page=source%2FWhatsNewJava.html">What's New</a>) (<a href="http://adn.agi.com/detailedView.cfm?resourceId=381">Download</a>)</li>
<li><strong>*NEW* AGI Components for Silveright (BETA)</strong> (<a href="http://www.agi.com/resources/help/online/AGIComponentsSilverlight/index.aspx?page=source%2FWhatsNew.html">What's New</a>) (<a href="http://adn.agi.com/detailedView.cfm?resourceId=411">Download</a>)</li>
</ul>
<p>This release finally brings <strong>Insight3D</strong> to AGI Components for <strong>Java</strong>!  Scott Hunter has the <a href="http://blogs.agi.com/insight3d/index.php/2010/09/17/insight3d-now-available-for-java/">details over at the Insight3D blog</a>.</p>
<p>This release also includes a huge number of features, improvements, and important bug fixes.  Check out the "What's New" links above for the full list.</p>
 <img src="http://blogs.agi.com/dynamicGeometry/wp-content/plugins/feed-statistics.php?view=1&post_id=284" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blogs.agi.com/dynamicGeometry/?feed=rss2&amp;p=284</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Release: AGI Components 2010 r7</title>
		<link>http://blogs.agi.com/dynamicGeometry/?p=279</link>
		<comments>http://blogs.agi.com/dynamicGeometry/?p=279#comments</comments>
		<pubDate>Mon, 09 Aug 2010 19:28:38 +0000</pubDate>
		<dc:creator>Kevin Ring</dc:creator>
				<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://blogs.agi.com/dynamicGeometry/?p=279</guid>
		<description><![CDATA[AGI Components 2010 r7 is now available!  Here are the links:

AGI Components for .NET (What's New) (Download)
AGI Components for Java (What's New) (Download)
*NEW* AGI Components for Silveright (BETA) (What's New) (Download)

One exciting thing about this release is that we've officially made the Silverlight version of AGI Components available as a public beta.  We [...]]]></description>
			<content:encoded><![CDATA[<p>AGI Components 2010 r7 is now available!  Here are the links:</p>
<ul>
<li><strong>AGI Components for .NET</strong> (<a href="http://www.agi.com/resources/help/online/AGIComponents/index.aspx?page=source%2FWhatsNew.html">What's New</a>) (<a href="http://adn.agi.com/detailedView.cfm?resourceId=240">Download</a>)</li>
<li><strong>AGI Components for Java</strong> (<a href="http://www.agi.com/resources/help/online/AGIComponentsJava/index.aspx?page=source%2FWhatsNewJava.html">What's New</a>) (<a href="http://adn.agi.com/detailedView.cfm?resourceId=381">Download</a>)</li>
<li><strong>*NEW* AGI Components for Silveright (BETA)</strong> (<a href="http://www.agi.com/resources/help/online/AGIComponentsSilverlight/index.aspx?page=source%2FWhatsNew.html">What's New</a>) (<a href="http://adn.agi.com/detailedView.cfm?resourceId=411">Download</a>)</li>
</ul>
<p>One exciting thing about this release is that we've officially made the Silverlight version of AGI Components available as a public beta.  We consider it a beta because the documentation is incomplete, and it hasn't been as well-tested as our official releases.  Check it out and less us known what you think!</p>
<p>This release also includes a number of important bug fixes for Insight3D, and a few smaller features.</p>
<p>Oh, and of course this release includes the big features added in AGI Components 2010 r6.  I didn't announce that release on this blog, but I really should have.  Insight3D gained the ability to load and display KML documents.  We also added a new library that makes it really easy to visualize Platforms, Links, and other service providers in Insight3D.  Please take a look at the "What's New" pages above for the complete list of what was changed in both 2010 r6 and 2010 r7.</p>
 <img src="http://blogs.agi.com/dynamicGeometry/wp-content/plugins/feed-statistics.php?view=1&post_id=279" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blogs.agi.com/dynamicGeometry/?feed=rss2&amp;p=279</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New! Route Design Library</title>
		<link>http://blogs.agi.com/dynamicGeometry/?p=243</link>
		<comments>http://blogs.agi.com/dynamicGeometry/?p=243#comments</comments>
		<pubDate>Tue, 08 Jun 2010 15:13:31 +0000</pubDate>
		<dc:creator>Richard Page</dc:creator>
				<category><![CDATA[Releases]]></category>
		<category><![CDATA[Aircraft]]></category>
		<category><![CDATA[Ground Vehicles]]></category>
		<category><![CDATA[Route]]></category>
		<category><![CDATA[Routing]]></category>

		<guid isPermaLink="false">http://blogs.agi.com/dynamicGeometry/?p=243</guid>
		<description><![CDATA[Route Design Library will be available with the AGI Components 2010 r5 release (also available in Java)!   Go to the ADN Download Center for more information and to view the Route Design Library Documentation Overview.  Now, users have a new way to specify trajectories for aircraft, ground vehicles, and ships for use with our other libraries.  Route [...]]]></description>
			<content:encoded><![CDATA[<p>Route Design Library will be available with the <a href="http://adn.agi.com/detailedView.cfm?resourceId=240">AGI Components 2010 r5 release</a> (also <a href="http://adn.agi.com/detailedView.cfm?resourceId=381">available in Java</a>)!   Go to the <a href="http://adn.agi.com/downloadCenter/">ADN Download Center</a> for more information and to view the <a href="http://www.agi.com/resources/help/online/AGIComponents/Index.aspx?page=Programmer's%20Guide%2FOverview%2FRouteDesign%2FRouteDesign.html">Route Design Library Documentation Overview</a>.  Now, users have a new way to specify trajectories for aircraft, ground vehicles, and ships for use with our other libraries.  Route Design Library provides various pieces such as waypoints, holding patterns, and raster search procedures to use in order to define routes.</p>
<p><a href="http://blogs.agi.com/dynamicGeometry/wp-content/uploads/2010/06/Route1.png"><img title="Route" src="http://blogs.agi.com/dynamicGeometry/wp-content/uploads/2010/06/Route1.png" alt="" width="494" height="325" /></a></p>
<p><span id="more-243"></span></p>
<p><strong> </strong> We've received a number of questions and comments on how to represent aircraft and ground vehicle trajectories for use with mission analysis.  Route Design Library makes it a lot easier to create and analyze these kinds of trajectories.  Now, users will be able to specify waypoints, heights, and speeds to define a route and generate a trajectory over the surface of the Earth or other Central Body.  Previously, the <em>WaypointPropagator </em>(still available in DGL) provided a way of specifying waypoints and creating a <em>Point</em>.  However, many users have found it difficult to use in certain cases since it requires careful handling to make sure the properties on each waypoint are consistent with the surrounding waypoints in order to avoid exceptions during propagation.  With Route Design Library, that process has been simplified, allowing for a looser definition of waypoints to make it easier to specify a valid route.  I will discuss a few of the key features and paradigms here.</p>
<p><strong>Procedures and Profiles</strong></p>
<p>The key features of Route Design Library are its "procedures" and "profiles".  "Procedures" define the behavior of the route around certain locations or areas of interest.  In general, most users will only need to use the different waypoint types to specify how to execute a turn at a given waypoint.  However, we also provide other procedures such as takeoff, landing, circular and racetrack holding patterns, and a raster search pattern useful for covering a search area.  Likewise, there are three different "profiles" provided to specify the vertical and temporal behavior along the surface route.  Some procedures include their profiles implicitly, as is the case with takeoff and landing.  Often, the procedures will require using a profile such as a <em>ConstantHeightProfile </em>or <em>TerrainAvoidanceProfile </em>which I will talk about in the section below.  The other profile <em>StandardTransitionProfile</em> is primarily intended for the connection segments which glue the user's procedures together.</p>
<p><strong>Geometry: Points, Axes, and Scalars</strong></p>
<p>Of course, the primary output of the library is a DGL <em>Point</em> object which can be used with <em>Platform</em>s in the rest of the library.  However, we also provide a number of <em>Scalar</em> objects for various analysis properties along the route such as ground or total speed and height with respect to a reference surface like <em>MeanSeaLevel</em>.  Lastly, there are two <em>Axes</em> types: <em>AxesAlongTerrain</em> and <em>AxesFromBankAngle. </em>The former provides a simple way of representing the orientation of a ground vehicle as it traverses over a terrain with its z axis aligned with the local terrain normal.  The latter provides a simple way of representing an aircraft as it 'banks' around turns, balancing gravity and centripetal forces.</p>
<p><strong>Overdefined Hassle vs. Underdefined Configuration</strong></p>
<p>One of the things we looked at when creating Route Design Library was the problem of creating "overdefined" design spaces.  When a system is overdefined, it is often unclear to users how to specify all of the parameters in a way that won't cause problems.  An overdefined system places the burden on the user to ensure that all of the inputs are consistent and valid, often creating a lot of hassle early in the design process as users keep running into exceptions as they try to determine how to create valid inputs.  In Route Design Library, the user's input can be underdefined, meaning that there are a number of heuristics in place which allow the system to create a valid route based on just a few user inputs.  Primarily, the system revolves around the users specifying behavior at the "procedures" and then allowing the propagator to create "connections" to combine the procedures together into a complete route.  This allows users to focus on those parameters which they want and let the system connect the rest in order to create <strong><em>a</em></strong> valid route, instead of having to fuss in order to finally create <strong><em>the</em></strong> valid route.</p>
<p>Since the specific performance characteristics of aircraft are often not available during the initial mission design, it doesn't make a lot of sense to create a highly detailed route which is inevitably <em>inaccurate</em> compared to the real-life flight path.  Instead, the goal is to allow users to simply create a reference trajectory from which they can analyze the wireless communications, asset coverage, and scheduling feasibility of a given route before working on developing the final flight path.  If some of the flight characteristics are available, users should be able to use them to determine the inputs needed to create a fair approximation of the final route.</p>
<p>Route Design Library also has the ability to include analytical terrain for use with profiles.  By specifying a terrain surface, the <em>TerrainAvoidanceHeightProfile</em> can aid in designing a route by providing a simple way for users to specify aircraft routes which maintain a given height above mountainous or rapidly changing terrain.  The system will reconfigure the user's input to attempt to avoid the terrain by reconfiguring the surrounding procedures until the system either creates a valid route or encounters an error which prevents the route from avoiding the terrain (e.g. If the user has fixed the surrounding heights below the terrain and the system can't update them).  However, if there is an error, it <em>will not throw an exception! </em>(except of course in cases where there are NaNs in the user's input).  Instead, the propagator will return the invalid or discontinuous route with meta-data in the form of <em>ProcedureConfigurationResult</em> objects indicating what the error was and where it occurred in the route.  This way, the user has the chance to visualize the discontinuity in order to see what went wrong, rather than throwing an unrecoverable exception.</p>
<p><a href="http://blogs.agi.com/dynamicGeometry/wp-content/uploads/2010/06/RoutingProfiles.jpg"><img title="RouteProfiles" src="http://blogs.agi.com/dynamicGeometry/wp-content/uploads/2010/06/RoutingProfiles.jpg" alt="Profiles over Terrain" width="428" height="188" /></a></p>
<p><strong>Non-Euclidean Geometry Hidden from the User</strong></p>
<p>Anything that moves over the ground (or water) requires some special handling.   When dealing with satellites, the dynamics for Newtonian gravity are well defined and the only use for the 'ground' is as a projection surface onto which to plot the "ground track" for the satellite.  When thinking in terms of aircraft or even ground vehicles on cross country shipping routes, most people don't tend to think of the 'ground' as being curved and may overlook the relationship between the 'flat' map projections used in navigation and the three dimensional reference frames used by satellites.  Aircraft manuals and documentation will often refer to "ground speed" and "true speed", but what do these really mean in terms of the Fixed Frame of the Earth?  One of the things we decided was that, when defining a 'route', users do not want to have to calculate the coriolis accelerations and other effects of moving over a rotating curved surface.  As such, users specify the speeds at waypoints as if they were the 'local' or 'flat' dynamics and Route Design Library takes care of accounting for the additional dynamics observed by satellites communicating with vehicles along the route.</p>
<p><a href="http://blogs.agi.com/dynamicGeometry/wp-content/uploads/2010/06/FlatEarth1.jpg"><img title="FlatEarth" src="http://blogs.agi.com/dynamicGeometry/wp-content/uploads/2010/06/FlatEarth1.jpg" alt="Non-Euclidean vs &quot;Flat&quot; Geometry" width="366" height="155" /></a><a href="http://blogs.agi.com/dynamicGeometry/wp-content/uploads/2010/06/FlatEarth.jpg"></a></p>
<p>As mentioned before, the Route Design Library makes use of analytical terrain surfaces for the <em>TerrainAvoidanceProfile</em>.  In addition, the library uses terrain surfaces to specify the reference from which the "height" is measured for a given profile.  So, instead of just dealing with <em>Cartographic</em> values which are by default referenced to the <em>WorldGeodeticSystem1984</em> <em>Ellipsoid</em>, Route Design Library can create routes which have their heights referenced to <em>MeanSeaLevel</em> or in the case of ground vehicles referenced to the mountainous terrain over which they are driving.  It is also possible to transition from one to the other.  So, in the case of an aircraft taxiing on a runway before takeoff, it is possible to transition from having the height referenced to the runway surface to an <em>Ellipsoid</em> height or height above <em>MeanSeaLevel</em>.  The library takes care of any additional dynamics needed to transition between the local dynamics and the dynamics in the Fixed Frame as seen by a satellite.</p>
<p><strong>Remarks and Future Development</strong></p>
<p>In the end, we hope Route Design Library is easy to use programmatically so that users can design their own systems which can iterate when designing scheduling and mission analysis programs.  It also makes it much easier to use with Insight3D, since it is much simpler to visualize the route itself and identify the location of any errors in the route.  For now, the library focuses mainly on heuristic and approximate routes intended for creating simple routes quickly and easily.  In the future, new procedures and connections may be added to allow trajectories based on performance characteristics and numerical flight mechanics.  As always, it is also possible for users to extend our types to create their own as well.  If you or someone else on your team has any questions about Route Design Library, how to extend it to implement custom functionality, or if you have a feature request, please feel free to post on our <a href="http://adn.agi.com/forum/viewtopics.cfm?Forum=27">ADN discussion forums</a>.</p>
<p><a href="http://blogs.agi.com/dynamicGeometry/wp-content/uploads/2010/06/Route1.png"></a></p>
 <img src="http://blogs.agi.com/dynamicGeometry/wp-content/plugins/feed-statistics.php?view=1&post_id=243" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blogs.agi.com/dynamicGeometry/?feed=rss2&amp;p=243</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>New Release: AGI Components 2010 r5</title>
		<link>http://blogs.agi.com/dynamicGeometry/?p=257</link>
		<comments>http://blogs.agi.com/dynamicGeometry/?p=257#comments</comments>
		<pubDate>Mon, 07 Jun 2010 23:26:52 +0000</pubDate>
		<dc:creator>Kevin Ring</dc:creator>
				<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://blogs.agi.com/dynamicGeometry/?p=257</guid>
		<description><![CDATA[AGI Components 2010 r5 is now available!  Here are the links:

AGI Components for .NET (What's New) (Download)
AGI Components for Java (What's New) (Download)

There's a bunch of exciting new stuff in this release.  First and foremost: Route Design Library.  Route Design Library makes it easy to define an aircraft, ship, or ground vehicle [...]]]></description>
			<content:encoded><![CDATA[<p>AGI Components 2010 r5 is now available!  Here are the links:</p>
<ul>
<li><strong>AGI Components for .NET</strong> (<a href="http://www.agi.com/resources/help/online/AGIComponents/index.aspx?page=source%2FWhatsNew.html">What's New</a>) (<a href="http://adn.agi.com/detailedView.cfm?resourceId=240">Download</a>)</li>
<li><strong>AGI Components for Java</strong> (<a href="http://www.agi.com/resources/help/online/AGIComponentsJava/index.aspx?page=source%2FWhatsNewJava.html">What's New</a>) (<a href="http://adn.agi.com/detailedView.cfm?resourceId=381">Download</a>)</li>
</ul>
<p>There's a bunch of exciting new stuff in this release.  First and foremost: <a href="http://www.agi.com/resources/help/online/AGIComponents/Index.aspx?page=Programmer's%20Guide%2FOverview%2FRouteDesign%2FRouteDesign.html">Route Design Library</a>.  <strong>Route Design Library</strong> makes it easy to define an aircraft, ship, or ground vehicle route using waypoints, holding patterns, and more.  It is a huge usability improvement over the <a href="http://www.agi.com/resources/help/online/AGIComponents/Index.aspx?page=html%2FT_AGI_Foundation_Propagators_WaypointPropagator.htm">WaypointPropagator</a>.</p>
<p>Also in this release are two long-awaited <a href="http://www.insight3d.com/">Insight3D</a> features.  The new <a href="http://www.agi.com/resources/help/online/AGIComponents/Index.aspx?page=html%2FT_AGI_Foundation_Graphics_BingMapsForEnterpriseImageGlobeOverlay.htm">BingMapsForEnterpriseImageGlobeOverlay</a> class makes it easy to show detailed Microsoft Bing Maps (formerly Microsoft Virtual Earth) imagery on the Insight3D globe.</p>
<p><img src="http://www.agi.com/resources/help/online/AGIComponents/Programmer%27s%20Guide/Overview/Graphics/GlobeOverlays/Images/BingMaps1.jpg" alt="Microsoft Bing Maps for Enterprise" /></p>
<p>Second, this release introduces per-item picking, which makes it much easier to determine which individual item in a primitive batch was picked.</p>
<p>AGI Components 2010 r5 includes many more features than I've mentioned here, and some important bug fixes.  Please take a look at the complete list of what's new (linked above) and upgrade as soon as you're able!</p>
 <img src="http://blogs.agi.com/dynamicGeometry/wp-content/plugins/feed-statistics.php?view=1&post_id=257" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blogs.agi.com/dynamicGeometry/?feed=rss2&amp;p=257</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Release: AGI Components 2010 r3</title>
		<link>http://blogs.agi.com/dynamicGeometry/?p=219</link>
		<comments>http://blogs.agi.com/dynamicGeometry/?p=219#comments</comments>
		<pubDate>Fri, 16 Apr 2010 14:52:57 +0000</pubDate>
		<dc:creator>Kevin Ring</dc:creator>
				<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://blogs.agi.com/dynamicGeometry/?p=219</guid>
		<description><![CDATA[AGI Components 2010 r3 is now available!  It has some nice improvements to our interpolators and to Insight3D.  Also available in this release: a beta version of AGI Components for Silverlight!  Please contact us if you want to try out the Silverlight beta.
Here are the details for AGI Components 2010 r3:

AGI Components [...]]]></description>
			<content:encoded><![CDATA[<p>AGI Components 2010 r3 is now available!  It has some nice improvements to our interpolators and to Insight3D.  Also available in this release: a beta version of AGI Components for Silverlight!  Please <a href="http://blogs.agi.com/dynamicGeometry/?page_id=186">contact us</a> if you want to try out the Silverlight beta.</p>
<p>Here are the details for AGI Components 2010 r3:</p>
<ul>
<li><strong>AGI Components for .NET</strong> (<a href="http://www.agi.com/resources/help/online/AGIComponents/index.aspx?page=source%2FWhatsNew.html">What's New</a>) (<a href="http://adn.agi.com/detailedView.cfm?resourceId=240">Download</a>)</li>
<li><strong>AGI Components for Java</strong> (<a href="http://www.agi.com/resources/help/online/AGIComponentsJava/index.aspx?page=source%2FWhatsNewJava.html">What's New</a>) (<a href="http://adn.agi.com/detailedView.cfm?resourceId=381">Download</a>)</li>
</ul>
 <img src="http://blogs.agi.com/dynamicGeometry/wp-content/plugins/feed-statistics.php?view=1&post_id=219" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blogs.agi.com/dynamicGeometry/?feed=rss2&amp;p=219</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Release: AGI Components 2010 r2</title>
		<link>http://blogs.agi.com/dynamicGeometry/?p=209</link>
		<comments>http://blogs.agi.com/dynamicGeometry/?p=209#comments</comments>
		<pubDate>Mon, 15 Mar 2010 13:28:48 +0000</pubDate>
		<dc:creator>Kevin Ring</dc:creator>
				<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://blogs.agi.com/dynamicGeometry/?p=209</guid>
		<description><![CDATA[We released AGI Components 2010 r2 last Thursday, March 11.  It includes a brand new component, Tracking Library, which is described thusly on the AGI Components product page:

The Tracking Library enables developers to build online data analysis or tracking applications which integrate live and simulated data for situational awareness and decision support.

To learn more [...]]]></description>
			<content:encoded><![CDATA[<p>We released AGI Components 2010 r2 last Thursday, March 11.  It includes a brand new component, <a href="http://www.agi.com/products/components/TrackingLibrary/">Tracking Library</a>, which is described thusly on the AGI Components <a href="http://www.agi.com/products/components/">product page</a>:</p>
<blockquote><p>
The Tracking Library enables developers to build online data analysis or tracking applications which integrate live and simulated data for situational awareness and decision support.
</p></blockquote>
<p>To learn more about Tracking Library, go <a href="http://www.agi.com/products/components/TrackingLibrary/">here</a>.  To learn if "thusly" is a real word and if I used it correctly, go <a href="http://en.wiktionary.org/wiki/thusly">here</a>.</p>
<p>As usual, AGI Components 2010 r2 is available for both .NET and Java.</p>
<ul>
<li><strong>AGI Components for .NET</strong> (<a href="http://www.agi.com/resources/help/online/AGIComponents/index.aspx?page=source%2FWhatsNew.html">What's New</a>) (<a href="http://adn.agi.com/detailedView.cfm?resourceId=240">Download</a>)</li>
<li><strong>AGI Components for Java</strong> (<a href="http://www.agi.com/resources/help/online/AGIComponentsJava/index.aspx?page=source%2FWhatsNewJava.html">What's New</a>) (<a href="http://adn.agi.com/detailedView.cfm?resourceId=381">Download</a>)</li>
</ul>
 <img src="http://blogs.agi.com/dynamicGeometry/wp-content/plugins/feed-statistics.php?view=1&post_id=209" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blogs.agi.com/dynamicGeometry/?feed=rss2&amp;p=209</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To: Compute Intervisibility (Access)</title>
		<link>http://blogs.agi.com/dynamicGeometry/?p=187</link>
		<comments>http://blogs.agi.com/dynamicGeometry/?p=187#comments</comments>
		<pubDate>Wed, 10 Mar 2010 16:03:09 +0000</pubDate>
		<dc:creator>Kevin Ring</dc:creator>
				<category><![CDATA[How To]]></category>

		<guid isPermaLink="false">http://blogs.agi.com/dynamicGeometry/?p=187</guid>
		<description><![CDATA[In this article, I will show how to use Dynamic Geometry Library to determine when one object, such as a satellite, aircraft, or ground vehicle, can "see" another object.  We call this "access," and we can determine access according to many different criteria using the AccessQuery system.

Before we get started, we need to define [...]]]></description>
			<content:encoded><![CDATA[<p>In this article, I will show how to use <a href="http://www.agi.com/products/components/">Dynamic Geometry Library</a> to determine when one object, such as a satellite, aircraft, or ground vehicle, can "see" another object.  We call this "access," and we can determine access according to many different criteria using the <a href="http://www.agi.com/resources/help/online/AGIComponents/index.aspx?page=source%2FProgrammer's%20Guide%2FOverview%2FAccess%2FAccessQueries.html">AccessQuery</a> system.</p>
<p><span id="more-187"></span></p>
<p>Before we get started, we need to define exactly what we mean for one object to "see" another object.  In the simplest case, we might just require that the Earth not lie between the two objects, and we might model the Earth as a simple <a href="http://en.wikipedia.org/wiki/World_Geodetic_System">WGS84</a> oblate spheroid.  In more complicated cases, we might require that the other object lie within the field of view of a sensor attached to one object or that the line-of-sight between the objects not be obstructed by terrain.  All of these requirements are represented in AGI Components as access constraints.  The complete list of constraints that come with AGI Components can be found in the documentation for the <a href="http://www.agi.com/resources/help/online/AGIComponents/index.aspx?page=source%2Fhtml%2FN_AGI_Foundation_Access_Constraints.htm">AGI.Foundation.Access.Constraints</a> namespace.  It is also possible to define your own access constraints, but that is a topic for another blog.</p>
<p>For this How To, we'll build a simple access query that determines when the line-of-sight between two objects is not obscured by the WGS84 ellipsoidal model of the Earth and one object lies inside the field-of-view of the other's sensor.</p>
<p>For this example, we'll need the following using declarations:</p>
<pre class="brush: csharp;">
using AGI.Foundation;
using AGI.Foundation.Access;
using AGI.Foundation.Access.Constraints;
using AGI.Foundation.Celestial;
using AGI.Foundation.Coordinates;
using AGI.Foundation.Geometry;
using AGI.Foundation.Geometry.Shapes;
using AGI.Foundation.Platforms;
using AGI.Foundation.Propagators;
using AGI.Foundation.Time;
</pre>
<p>We'll also need the Earth instance, which can be obtained from the <a href="http://www.agi.com/resources/help/online/AGIComponents/index.aspx?page=source%2FProgrammer's%20Guide%2FOverview%2FCalculationContext.html">CalculationContext</a>:</p>
<pre class="brush: plain;">
EarthCentralBody earth = CentralBodiesFacet.GetFromContext().Earth;
</pre>
<p>With the preliminaries out the way, let's define the two objects.  For our example, one will be the International Space Station, propagated from a <a href="http://celestrak.com/NORAD/elements/">TLE</a>:</p>
<pre class="brush: csharp;">
string tleString = &quot;ISS (ZARYA)             &quot; +
            &quot;1 25544U 98067A   10067.86878632  .00013253  00000-0  96217-4 0  7319&quot; +
            &quot;2 25544  51.6483  25.6247 0007782  28.7411  11.9386 15.73741103647672&quot;;
TwoLineElementSet tle = new TwoLineElementSet(tleString);
Sgp4Propagator issPropagator = new Sgp4Propagator(tle);

Platform iss = new Platform();
iss.LocationPoint = issPropagator.CreatePoint();
iss.OrientationAxes = new AxesVehicleVelocityLocalHorizontal(earth.InertialFrame, iss.LocationPoint);
</pre>
<p>The other will be AGI's headquarters in Exton, Pennsylvania.</p>
<pre class="brush: csharp;">
Cartographic agiHQPosition =
    new Cartographic(
        Trig.DegreesToRadians(-75.59677),
        Trig.DegreesToRadians(40.03883),
        0.0);

Platform agiHQ = new Platform();
agiHQ.LocationPoint = new PointCartographic(earth, agiHQPosition);
agiHQ.OrientationAxes = new AxesNorthEastDown(earth, agiHQ.LocationPoint);
</pre>
<p>We also need to create a sensor field-of-view and attach it to the International Space Station.  Please note that the sensor below is completely made up - it does not represent any actual sensors on the ISS.</p>
<pre class="brush: csharp;">
RectangularPyramid sensorFOV = new RectangularPyramid();
sensorFOV.XHalfAngle = Trig.DegreesToRadians(20.0);
sensorFOV.YHalfAngle = Trig.DegreesToRadians(20.0);

FieldOfViewExtension fovExtension = new FieldOfViewExtension(sensorFOV);
iss.Extensions.Add(fovExtension);
</pre>
<p>Next, we create a link between the ISS and AGI's headquarters.  The link allows us to control how the two platforms communicate.</p>
<pre class="brush: csharp;">
LinkInstantaneous link = new LinkInstantaneous(agiHQ, iss);
</pre>
<p>In this example, we use a <a href="http://www.agi.com/resources/help/online/AGIComponents/index.aspx?page=source%2Fhtml%2FT_AGI_Foundation_Access_LinkInstantaneous.htm">LinkInstantaneous</a>, which assumes that the light or other signal transmitted from AGI's HQ to the ISS arrives instantly.  This is not strictly true - light travels at a finite speed.  However, because light moves pretty fast and because the ISS is pretty close to Earth, correctly modeling the speed of light will not significantly impact the results, and using <code>LinkInstantaneous</code> results in better computation performance.  For satellites in higher orbit (or, say, orbiting Mars!), modeling light travel time can be extremely important.  In that case, <a href="http://www.agi.com/resources/help/online/AGIComponents/index.aspx?page=source%2Fhtml%2FT_AGI_Foundation_Access_LinkSpeedOfLight.htm">LinkSpeedOfLight</a> should be used instead of LinkInstantaneous.</p>
<p>Now we create the two constraints that we're going to use to constrain access:</p>
<pre class="brush: csharp;">
CentralBodyObstructionConstraint cboConstraint = new CentralBodyObstructionConstraint();
cboConstraint.ConstrainedLink = link;
cboConstraint.ConstrainedLinkEnd = LinkRole.Receiver;

SensorVolumeConstraint sensorFOVConstraint = new SensorVolumeConstraint();
sensorFOVConstraint.ConstrainedLink = link;
sensorFOVConstraint.ConstrainedLinkEnd = LinkRole.Receiver;
</pre>
<p>Note that we've specified the link created above as the "constrained link" and in both cases the "constrained link end" is the link's Receiver, which is the International Space Station.</p>
<p>The next step is to construct an access query that is satisfied whenever <em>both</em> constraints are satisfied.  We do so succinctly by using the overloaded <em>&</em> operator:</p>
<pre class="brush: csharp;">
AccessQuery query = cboConstraint &amp; sensorFOVConstraint;
</pre>
<p>We can then obtain an evaluator with which to determine the intervals when the query is satisfied.</p>
<pre class="brush: csharp;">
AccessEvaluator evaluator = query.GetEvaluator(iss);
</pre>
<p>We must specify a time observer in the call to <code>GetEvaluator</code>, and for this example we chose the ISS.  With the <code>LinkInstantaneous</code> that we're using in this example, the choice is arbitrary.  However, with a <code>LinkSpeedOfLight</code>, events such as the beginning or end of access occur at different times when observed by different participants in the access computation.  The time observer is the object that is observing the event times.</p>
<p>Finally, we can evaluate the intervals when our access query is satisfied:</p>
<pre class="brush: csharp;">
JulianDate start = new JulianDate(new DateTime(2010, 3, 10, 12, 0, 0, DateTimeKind.Utc));
JulianDate stop = start.AddDays(1.0);

AccessQueryResult result = evaluator.Evaluate(start, stop);

foreach (TimeInterval interval in result.SatisfactionIntervals)
{
    Console.WriteLine(interval.Start.ToGregorianDate() + &quot; - &quot; + interval.Stop.ToGregorianDate());
}
</pre>
<p>This example only scratches the surface of what access queries can do.  The constraints in the query need not use the same link or be between the same objects.  In addition to <em>And</em> shown above, queries can be built from any combination of <em>Or</em>, <em>Not</em>, <em>AtLeastN</em>, <em>AtMostN</em>, and <em>ExactlyN</em>.  In short, access queries can be used to solve the kinds of problems that can be solved with STK/Chains, plus many more!  See the <a href="http://www.agi.com/resources/help/online/AGIComponents/index.aspx?page=source%2FProgrammer's%20Guide%2FOverview%2FAccess%2FAccessQueries.html">Access Queries</a> topic in the AGI Components documentation for more information.</p>
 <img src="http://blogs.agi.com/dynamicGeometry/wp-content/plugins/feed-statistics.php?view=1&post_id=187" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blogs.agi.com/dynamicGeometry/?feed=rss2&amp;p=187</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AGI Components for Silverlight?</title>
		<link>http://blogs.agi.com/dynamicGeometry/?p=162</link>
		<comments>http://blogs.agi.com/dynamicGeometry/?p=162#comments</comments>
		<pubDate>Thu, 18 Feb 2010 14:22:03 +0000</pubDate>
		<dc:creator>Kevin Ring</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.agi.com/dynamicGeometry/?p=162</guid>
		<description><![CDATA[I recently created a build of AGI Components for the Microsoft Silverlight platform and showed it to a few folks internally.  We're considering turning it into a product.  It would be a great complement to the Bing Maps Silverlight Control:

Or the ArcGIS API for Silverlight:

If this is exciting to you, I want to [...]]]></description>
			<content:encoded><![CDATA[<p>I recently created a build of AGI Components for the <a href="http://silverlight.net/">Microsoft Silverlight</a> platform and showed it to a few folks internally.  We're considering turning it into a product.  It would be a great complement to the <a href="http://msdn.microsoft.com/en-us/library/ee681890.aspx">Bing Maps Silverlight Control</a>:</p>
<p><a href="http://blogs.agi.com/dynamicGeometry/wp-content/uploads/2010/02/BingMapsSilverlight1.jpg"><img src="http://blogs.agi.com/dynamicGeometry/wp-content/uploads/2010/02/BingMapsSilverlight1.jpg" alt="" title="Bing Maps for Silverlight" width="462" height="355" class="aligncenter size-full wp-image-182" /></a></p>
<p>Or the <a href="http://resources.esri.com/arcgisserver/apis/silverlight/">ArcGIS API for Silverlight</a>:</p>
<p><a href="http://blogs.agi.com/dynamicGeometry/wp-content/uploads/2010/02/ArcGISForSilverlight.jpg"><img src="http://blogs.agi.com/dynamicGeometry/wp-content/uploads/2010/02/ArcGISForSilverlight.jpg" alt="" title="ArcGIS API for Silverlight" width="468" height="314" class="aligncenter size-full wp-image-165" /></a></p>
<p>If this is exciting to you, I want to hear from you!</p>
<p>The list of platforms where you can use the analysis capabilities of AGI Components is growing to be quite impressive: <a href="http://adn.agi.com/detailedView.cfm?resourceId=240">.NET</a>, <a href="http://adn.agi.com/detailedView.cfm?resourceId=381">Java</a>, and <a href="http://www.agi.com/resources/help/online/AGIComponents/index.aspx?page=source%2FProgrammer's%20Guide%2FMatlab.html">MATLAB</a> for starters.  Both the .NET and Java versions can be used on Windows, Linux, and Solaris.</p>
<p>AGI Components for .NET can also be used on the Apple <a href="http://www.apple.com/iphone/">iPhone</a> and <a href="http://www.apple.com/ipad/">iPad</a> via <a href="http://monotouch.net/">MonoTouch</a>.  The rumor is that MonoTouch will be available for <a href="http://www.android.com/">Android</a> soon, at which point AGI Components should run there, too!  If you're interested in using AGI Components with MonoTouch, please drop me a line.</p>
<p>AGI Components for .NET can run on <a href="http://msdn.microsoft.com/en-us/windowsmobile/default.aspx">Windows Mobile</a> as well.  And because the recently announced <a href="http://www.windowsphone7series.com/">Windows Phone 7 Series</a> is likely to be based on Silverlight, there's a good chance AGI Components will run there, too.</p>
<p>No matter what your target platform, operating system, or device, there's probably an AGI Components for you!</p>
 <img src="http://blogs.agi.com/dynamicGeometry/wp-content/plugins/feed-statistics.php?view=1&post_id=162" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blogs.agi.com/dynamicGeometry/?feed=rss2&amp;p=162</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Release: AGI Components 2010 r1</title>
		<link>http://blogs.agi.com/dynamicGeometry/?p=156</link>
		<comments>http://blogs.agi.com/dynamicGeometry/?p=156#comments</comments>
		<pubDate>Sun, 24 Jan 2010 21:11:05 +0000</pubDate>
		<dc:creator>Kevin Ring</dc:creator>
				<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://blogs.agi.com/dynamicGeometry/?p=156</guid>
		<description><![CDATA[We just released the first version of AGI Components of the new decade, AGI Components 2010 r1!
Check it out:

AGI Components for .NET (What's New) (Download)
AGI Components for Java (What's New) (Download)

This release is a big deal because this is the first release that is available simultaneously for both .NET and Java!  And in case [...]]]></description>
			<content:encoded><![CDATA[<p>We just released the first version of AGI Components of the new decade, AGI Components 2010 r1!</p>
<p>Check it out:</p>
<ul>
<li><strong>AGI Components for .NET</strong> (<a href="http://www.agi.com/resources/help/online/AGIComponents/index.aspx?page=source%2FWhatsNew.html">What's New</a>) (<a href="http://adn.agi.com/detailedView.cfm?resourceId=240">Download</a>)</li>
<li><strong>AGI Components for Java</strong> (<a href="http://www.agi.com/resources/help/online/AGIComponentsJava/index.aspx?page=source%2FWhatsNewJava.html">What's New</a>) (<a href="http://adn.agi.com/detailedView.cfm?resourceId=381">Download</a>)</li>
</ul>
<p>This release is a big deal because this is the first release that is available simultaneously for both .NET and Java!  And in case you're wondering, yes, this is the start of a trend.  We intend to release new versions for both platforms simultaneously from now on.  If you're curious how we're doing it, check out Scott's post on the subject: <a href="http://blogs.agi.com/dynamicGeometry/?p=113">AGI Components for Java: How it Works</a>.</p>
 <img src="http://blogs.agi.com/dynamicGeometry/wp-content/plugins/feed-statistics.php?view=1&post_id=156" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blogs.agi.com/dynamicGeometry/?feed=rss2&amp;p=156</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
