<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://morakot1.spaces.live.com/mmm2008-07-24_12.50/rsspretty.aspx?rssquery=en-US;http%3a%2f%2fmorakot1.spaces.live.com%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Morakot's Space</title><description>Dynamic GIS, Simulation, 3D and Globe</description><link>http://morakot1.spaces.live.com/</link><language>en-US</language><pubDate>Mon, 02 Jun 2008 05:08:06 GMT</pubDate><lastBuildDate>Mon, 02 Jun 2008 05:08:06 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><live:identity><live:id>-6170001750764485033</live:id><live:alias>morakot1</live:alias></live:identity><image><title>Morakot's Space</title><url>http://blufiles.storage.live.com/y1pLdts29-mHLFXr_FAJRvuYIg1HB0fx9IRTzmTgJhbR5fyBrPHG7w1Lx3QdAg9sR76</url><link>http://morakot1.spaces.live.com/</link></image><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>ArcGIS 9.2 SpaceNavigator Plugin Beta 2</title><link>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!281.entry</link><description>&lt;div&gt;The &lt;a href="http://downloads.esri.com/support/TechArticles/ArcGIS3Dxware_Beta_2.zip"&gt;beta 2&lt;/a&gt; of the 3Dconnexion SpaceNavigator Plugin for ArcGIS 9.2 is now available for download from ESRI Support website in the Knowledge Base article website. Here's the URL: &lt;a href="http://downloads.esri.com/support/TechArticles/ArcGIS3Dxware_Beta_2.zip"&gt;http://downloads.esri.com/support/TechArticles/ArcGIS3Dxware_Beta_2.zip&lt;/a&gt;.&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;This version works with MapControl, GlobeControl, and SceneControl application. To enable the device, just add the SpaceNavigator command (under the 3DConnexion command category) to the Toolbar control of your application via its Properties page.&lt;/div&gt; &lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-6170001750764485033&amp;page=RSS%3a+ArcGIS+9.2+SpaceNavigator+Plugin+Beta+2&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=morakot1.spaces.live.com&amp;amp;GT1=morakot1"&gt;</description><comments>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!281.entry#comment</comments><guid isPermaLink="true">http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!281.entry</guid><pubDate>Wed, 16 Apr 2008 21:37:36 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://morakot1.spaces.live.com/blog/cns!AA5FC01906250657!281/comments/feed.rss</wfw:commentRss><wfw:comment>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!281.entry#comment</wfw:comment><dcterms:modified>2008-04-17T14:47:19Z</dcterms:modified></item><item><title>ESRI Developer Summit 2008 Presentation</title><link>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!280.entry</link><description>&lt;div&gt;Here's the link to the lates PowerPoint slides Ryan, Hanoch, and I presented at the ESRI Developer Summit 2008 at Palm Springs. The presentation title is &amp;quot;&lt;a href="http://downloads2.esri.com/EDN/downloads/other_/developing-2d_and_3d_applications_for_real-time_visualization_and_analysis.pdf"&gt;Developing 2D and 3D Applications for Real-time Visualization and Analysis&lt;/a&gt;&amp;quot;. &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;a href="http://downloads2.esri.com/EDN/downloads/other_/developing-2d_and_3d_applications_for_real-time_visualization_and_analysis.pdf"&gt;http://downloads2.esri.com/EDN/downloads/other_/developing-2d_and_3d_applications_for_real-time_visualization_and_analysis.pdf&lt;/a&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;If you didn't come to this session. Here's the abstract.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Real-time Visualization and Analysis poses serious challenges to GIS developers. This session will demonstrate bringing together various ESRI technologies to develop a custom 2D and 3D application to visualize and perform spatial analysis on moving objects in real-time (e.g. ships, airplanes, busses, satellites). Since there is no universal solution for all the challenges, developers will likely have to come up with custom solution. ESRI provides the necessary components for real-time tracking as well as 2D and 3D Dynamic Visualization. The key is using the APIs from Tracking Server, Dynamic Display, ArcGlobe, and ArcGIS Explorer for creating applications that can display large numbers (thousands) of moving objects in 2D and 3D while maintaining application performance. Various techniques for creating user-interfaces such as custom heads up display, proximity and containment analysis in real-time, and utilization of key frame animation, will also be discussed and demonstrated.&lt;br&gt;&lt;br&gt;Prerequisites: .NET, OpenGL&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-6170001750764485033&amp;page=RSS%3a+ESRI+Developer+Summit+2008+Presentation&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=morakot1.spaces.live.com&amp;amp;GT1=morakot1"&gt;</description><category>Computers and Internet</category><comments>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!280.entry#comment</comments><guid isPermaLink="true">http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!280.entry</guid><pubDate>Mon, 31 Mar 2008 17:37:48 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://morakot1.spaces.live.com/blog/cns!AA5FC01906250657!280/comments/feed.rss</wfw:commentRss><wfw:comment>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!280.entry#comment</wfw:comment><dcterms:modified>2008-03-31T17:37:48Z</dcterms:modified></item><item><title>Lenne3D Plant Rendering for ArcGlobe/ArcScene</title><link>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!276.entry</link><description>&lt;div&gt;If you want to create realistic scene as shown below in ArcScene or ArcGlobe, Lenné3D has made the realistic 3D Plant Rendering (&lt;a href="http://www.lenne3d.com/content/view/31/87/lang,en/" target="_blank"&gt;Déjàvu3D&lt;/a&gt;) plugin for ArcGIS 9.2 available for download. Here's the site: &lt;a href="http://www.lenne3d.com/content/view/31/87/lang,en/"&gt;http://www.lenne3d.com/content/view/31/87/lang,en/&lt;/a&gt;&lt;/div&gt; &lt;div&gt;There are 19 plant models for test drive. You need to download the Entrée3D to be able to connect to the 3D plant model server and to manage your account. There is also &lt;a href="http://www.lenne3d.com/content/view/33/89/lang,en/" target="_blank"&gt;Marché3D &lt;/a&gt;application for managing the 3D plant model database on your machine. The plugin works on both ArcScene and ArcGlobe with point feature class. High detailed 3D plant models will be rendered on the point locations. Different tree models can be assigned based on attributes of the point feature class, e.g. Species, Names, tree height, stem rotation. I tried it out with 30,000 tree points and ArcGlobe/ArcScene still can maintained frame rate enough for interaction. The 3D plant renderer uses multiple Levels of detail (LODs). The plants that rendered farther away from the observer point will use the simplified models while the plants that rendered closer to the observer point will use the more realistic models. This helps keeping the rendering speed up. Try it out and happy planting!&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;p align=center&gt;&lt;a href="http://tkfiles.storage.live.com/y1pRdY8aRxDHuK-E4AO_s-FUx_GNuMuY3uCjq9zxMMyzHwo6EQbZI9m85iA_AvhODs6QcUp5jiRw9o" target="_blank"&gt;&lt;img height=135 alt="20071005_1773851615_meisdorf_v2_damm_hq100_d" src="http://tkfiles.storage.live.com/y1pRdY8aRxDHuK-E4AO_s-FUx_GNuMuY3uCjq9zxMMyzHwo6EQbZI9m85iA_AvhODs6QcUp5jiRw9o" width=274&gt;&lt;/a&gt;  &lt;p align=center&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-6170001750764485033&amp;page=RSS%3a+Lenne3D+Plant+Rendering+for+ArcGlobe%2fArcScene&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=morakot1.spaces.live.com&amp;amp;GT1=morakot1"&gt;</description><category>Globe</category><comments>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!276.entry#comment</comments><guid isPermaLink="true">http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!276.entry</guid><pubDate>Wed, 13 Feb 2008 20:08:04 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://morakot1.spaces.live.com/blog/cns!AA5FC01906250657!276/comments/feed.rss</wfw:commentRss><wfw:comment>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!276.entry#comment</wfw:comment><dcterms:modified>2008-02-13T20:11:38Z</dcterms:modified></item><item><title>History of 3D GIS and Computer Graphics</title><link>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!254.entry</link><description>&lt;div&gt;Someone asked about this evolution. Here's the bits and pieces that I have in a bullet list. Please note that it is far from complete and may not be accurate. The information was extracted from a computer graphics poster (SIGGRAPH 2007) and various web sites.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;p style="margin:0in 0in 0pt 0.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;&lt;span style=""&gt;-&lt;span style="font:7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;1950s 3D in computers got started at MIT in 1949 as part of the SAGE Air Defense System&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 0.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;&lt;span style=""&gt;-&lt;span style="font:7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;1960s&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Courier New'"&gt;&lt;span style=""&gt;o&lt;span style="font:7pt 'Times New Roman'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;1963 Ivan Sutherland developed first SketchPad 3D design system marked the starting of 3D Computer Graphics.&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Courier New'"&gt;&lt;span style=""&gt;o&lt;span style="font:7pt 'Times New Roman'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;1969 ESRI founded&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 0.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;&lt;span style=""&gt;-&lt;span style="font:7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;1970s Evolution of mathematical concepts and algorithms for 3D computation and display.&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 0.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;&lt;span style=""&gt;-&lt;span style="font:7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;1980s&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Courier New'"&gt;&lt;span style=""&gt;o&lt;span style="font:7pt 'Times New Roman'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;1980 3D wireframe era and 3D arcade game on Atari&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Courier New'"&gt;&lt;span style=""&gt;o&lt;span style="font:7pt 'Times New Roman'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;1981 ESRI held its first UC in Redlands attended by 18 people&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Courier New'"&gt;&lt;span style=""&gt;o&lt;span style="font:7pt 'Times New Roman'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;1982 &lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;The first 3D motion picture, Tron&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;ESRI launched ARC/INFO&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Courier New'"&gt;&lt;span style=""&gt;o&lt;span style="font:7pt 'Times New Roman'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;1984 &lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;The Last Starfighter first motion picture to use computer generated 3D objects for special effects.&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;SGI introduced the first 3D workstation, the IRIS 1400.&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Courier New'"&gt;&lt;span style=""&gt;o&lt;span style="font:7pt 'Times New Roman'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;1986 &lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;Pixar produced its first 3D digital film&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;First 3D PC Graphic Board introduced by Matrox&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;PC-ArcInfo released&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Courier New'"&gt;&lt;span style=""&gt;o&lt;span style="font:7pt 'Times New Roman'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;1987&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;Arc/Info TIN available&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Courier New'"&gt;&lt;span style=""&gt;o&lt;span style="font:7pt 'Times New Roman'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;1988 &lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;SGI introduced IRIS 4D &lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;The first live interactive 3D animated character - Mike the talking head&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;3D CAD&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;ArcView in 2D maps, TIN with perspective view&lt;span style="font-size:10pt;color:#1f497d;font-family:'Courier New'"&gt;&lt;span style=""&gt;&lt;span style="font:7pt 'Times New Roman'"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Courier New'"&gt;&lt;span style=""&gt;&lt;span style="font:7pt 'Times New Roman'"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt; &lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 0.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;&lt;span style=""&gt;-&lt;span style="font:7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;1990s&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Courier New'"&gt;&lt;span style=""&gt;o&lt;span style="font:7pt 'Times New Roman'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;1992 The advent of 3D Realism&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;SGI Onyx Reality Engine offered texture mapping&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;Jurassic Park movie&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;Wolfenstein 3D PC game with flat-shade polygonal-based 3D characters&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;ESRI released ArcView and shipped more than 10000 copies&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;ESRI released ArcCAD made GIS tools available in the CAD environment&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Courier New'"&gt;&lt;span style=""&gt;o&lt;span style="font:7pt 'Times New Roman'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;1993&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;Nintendo N64 3D game console – Mario&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;3D GIS researches&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;Arc/Info 6.1&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Courier New'"&gt;&lt;span style=""&gt;o&lt;span style="font:7pt 'Times New Roman'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;1994&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;ESRI made ArcSDE available&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Courier New'"&gt;&lt;span style=""&gt;o&lt;span style="font:7pt 'Times New Roman'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;1995&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;Toy Story&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;Introduced characters with hair, flesh, bones, in 3D PC Game Tomb Raider – Lara Croft&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;NVIDIA launched its first Consumer 3D PC chip – NVI&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Courier New'"&gt;&lt;span style=""&gt;o&lt;span style="font:7pt 'Times New Roman'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;1996&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;3D Analyst Extension for ArcView 3 started – released in 1997-1998?&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Courier New'"&gt;&lt;span style=""&gt;o&lt;span style="font:7pt 'Times New Roman'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;1997&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;ESRI started COM-based ArcGIS 8 development&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;Arc/Info 7.1&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Courier New'"&gt;&lt;span style=""&gt;o&lt;span style="font:7pt 'Times New Roman'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;1998&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;3Dfx introduced SLI connecting two graphics cards&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;ArcScene prototype started&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Courier New'"&gt;&lt;span style=""&gt;o&lt;span style="font:7pt 'Times New Roman'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;1999&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;ArcGIS 8 released in December&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 0.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;&lt;span style=""&gt;-&lt;span style="font:7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;2000s&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Courier New'"&gt;&lt;span style=""&gt;o&lt;span style="font:7pt 'Times New Roman'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;2000 Real-time rendering&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;NVIDIA introduced GeForce 2 graphics card with programmable GPU shader&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Courier New'"&gt;&lt;span style=""&gt;o&lt;span style="font:7pt 'Times New Roman'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;2001 &lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;Final Fantasy: The Spirits Within – the first realistic feature length 3D CGI movie&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;Microsoft introduced Xbox employing multiple pipeline GPU and DirectX (8.1) 3D acceleration&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;NVIDIA introduced GeForce3 GPU with programmable vertex shaders.&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;ESRI released ArcGIS 8.1 in April with ArcScene in 3D Analyst Extension&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;GeoFusion Inc, founded&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;Keyhole Inc, founded&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Courier New'"&gt;&lt;span style=""&gt;o&lt;span style="font:7pt 'Times New Roman'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;2002-2003&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;Real-time rendering for fur and hair&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;Cube mapping&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;ArcGlobe development&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 2in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Symbol"&gt;&lt;span style=""&gt;·&lt;span style="font:7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;Cube Projection&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 2in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Symbol"&gt;&lt;span style=""&gt;·&lt;span style="font:7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;GeoFusion – GeoMatrix library&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Courier New'"&gt;&lt;span style=""&gt;o&lt;span style="font:7pt 'Times New Roman'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;2004&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;3D GPU for real-time cinematic effects &lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;Modern GPU reached Super Computer’s performance&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;ESRI released ArcGIS 9 with ArcGIS Engine and ArcGIS Server as well as ArcGlobe in 3D Analyst Extension&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;Keyhole Inc, released Keyhole 2 LT (in April)&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;Google acquired Keyhole 2 LT&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Courier New'"&gt;&lt;span style=""&gt;o&lt;span style="font:7pt 'Times New Roman'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;2005&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;Microsoft introduced Xbox 360&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;Google released the first Google Earth beta (July)&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Courier New'"&gt;&lt;span style=""&gt;o&lt;span style="font:7pt 'Times New Roman'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;2006&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;Sony PS3&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;ArcGIS 9.2 released (Nov)&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;Microsoft released the first Virtual Earth 3D beta (Nov)&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Courier New'"&gt;&lt;span style=""&gt;o&lt;span style="font:7pt 'Times New Roman'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;2007&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:Wingdings"&gt;&lt;span style=""&gt;§&lt;span style="font:7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;Nokia released N95 mobile phone with 3D Shader hardware&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt 1.5in;text-indent:-0.25in"&gt;&lt;span style="font-size:10pt;color:#1f497d;font-family:'Verdana','sans-serif'"&gt;&lt;/span&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-6170001750764485033&amp;page=RSS%3a+History+of+3D+GIS+and+Computer+Graphics&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=morakot1.spaces.live.com&amp;amp;GT1=morakot1"&gt;</description><category>Computers and Internet</category><comments>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!254.entry#comment</comments><guid isPermaLink="true">http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!254.entry</guid><pubDate>Thu, 03 Jan 2008 21:41:04 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://morakot1.spaces.live.com/blog/cns!AA5FC01906250657!254/comments/feed.rss</wfw:commentRss><wfw:comment>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!254.entry#comment</wfw:comment><dcterms:modified>2008-01-03T21:41:04Z</dcterms:modified></item><item><title>ArcGIS Explorer Now Supports SpaceNavigator Device</title><link>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!252.entry</link><description>&lt;div&gt;The new release of &lt;a href="http://resources.esri.com/arcgisexplorer/index.cfm?fa=download&amp;amp;CFID=185047&amp;amp;CFTOKEN=36026637&amp;amp;jsessionid=d130fb79060848117c35"&gt;ArcGIS Explorer (Build 440)&lt;/a&gt; now supports SpaceNavigator device out-of-the-box. It can be downloaded from ESRI website at:&lt;/div&gt;
&lt;div&gt;&lt;a href="http://resources.esri.com/arcgisexplorer/index.cfm?fa=download&amp;amp;CFID=185047&amp;amp;CFTOKEN=36026637&amp;amp;jsessionid=d130fb79060848117c35"&gt;http://resources.esri.com/arcgisexplorer/index.cfm?fa=download&amp;amp;CFID=185047&amp;amp;CFTOKEN=36026637&amp;amp;jsessionid=d130fb79060848117c35&lt;/a&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Many other enhancements have been added also.&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-6170001750764485033&amp;page=RSS%3a+ArcGIS+Explorer+Now+Supports+SpaceNavigator+Device&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=morakot1.spaces.live.com&amp;amp;GT1=morakot1"&gt;</description><category>Globe</category><comments>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!252.entry#comment</comments><guid isPermaLink="true">http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!252.entry</guid><pubDate>Thu, 20 Dec 2007 21:18:41 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://morakot1.spaces.live.com/blog/cns!AA5FC01906250657!252/comments/feed.rss</wfw:commentRss><wfw:comment>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!252.entry#comment</wfw:comment><dcterms:modified>2007-12-20T21:18:41Z</dcterms:modified></item><item><title>Book: Spatial Data Modelling for 3D GIS</title><link>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!251.entry</link><description>&lt;p&gt;Finally, this book has been published by Springer Verlag. It combined together Dr. Abdul-Rahman's and my research works in the area of 3D Spatial Modeling. The book also presents the integrated 3D spatial data model which can be used as a basis for many real-time/dynamic GIS applications. &lt;p&gt;&lt;a href="http://tkfiles.storage.msn.com/y1pRdY8aRxDHuJknpkDzKHynElCLhLMPY7DeESRVLIT7-JJWRmPqHPMDX2bdSMLNitb0UtIImDQF50"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=262 src="http://tkfiles.storage.msn.com/y1pRdY8aRxDHuJ8zendHyYN08XW84BJnb8wjFj3yZVoF5tg_9m2Xmjb-kv3U0oq218ppgZUFAdDKX4" width=190 border=0&gt;&lt;/a&gt;  &lt;p&gt;Here are some links to the book: &lt;p&gt;&lt;a title="http://www.springer.com/west/home?SGWID=4-102-22-173753619-0" href="http://www.springer.com/west/home?SGWID=4-102-22-173753619-0"&gt;http://www.springer.com/west/home?SGWID=4-102-22-173753619-0&lt;/a&gt; &lt;p&gt;&lt;a title="http://reallyusefulebooks.net/update/archives/828" href="http://reallyusefulebooks.net/update/archives/828"&gt;http://reallyusefulebooks.net/update/archives/828&lt;/a&gt; &lt;p&gt;&lt;a title="http://www.amazon.com/Spatial-Data-Modelling-3D-GIS/dp/3540741666" href="http://www.amazon.com/Spatial-Data-Modelling-3D-GIS/dp/3540741666"&gt;http://www.amazon.com/Spatial-Data-Modelling-3D-GIS/dp/3540741666&lt;/a&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-6170001750764485033&amp;page=RSS%3a+Book%3a+Spatial+Data+Modelling+for+3D+GIS&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=morakot1.spaces.live.com&amp;amp;GT1=morakot1"&gt;</description><comments>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!251.entry#comment</comments><guid isPermaLink="true">http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!251.entry</guid><pubDate>Fri, 16 Nov 2007 19:18:53 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://morakot1.spaces.live.com/blog/cns!AA5FC01906250657!251/comments/feed.rss</wfw:commentRss><wfw:comment>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!251.entry#comment</wfw:comment><dcterms:modified>2007-11-16T19:18:53Z</dcterms:modified></item><item><title>Java and .NET Interoperability</title><link>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!248.entry</link><description>&lt;p&gt;I was searching for a solution to reuse some Java classes from the C# .NET environment. I finally ran into the &lt;a title=IKVM.NET href="http://www.ikvm.net/"&gt;IKVM.NET&lt;/a&gt; which provides an excellent solution for this purpose. I took the .Jar files and used the tool provided by the IKVM.NET to generate .NET Assemblies. My Microsoft Visual Studio .NET C# project can then use these Assemblies as references. I can call Java code right from my C# and it works really well. I have not tried to evaluate performance, but for the time being my problem was solved. &lt;p&gt;Great job! The IKVM people. &lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-6170001750764485033&amp;page=RSS%3a+Java+and+.NET+Interoperability&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=morakot1.spaces.live.com&amp;amp;GT1=morakot1"&gt;</description><comments>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!248.entry#comment</comments><guid isPermaLink="true">http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!248.entry</guid><pubDate>Thu, 04 Oct 2007 01:41:50 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://morakot1.spaces.live.com/blog/cns!AA5FC01906250657!248/comments/feed.rss</wfw:commentRss><wfw:comment>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!248.entry#comment</wfw:comment><dcterms:modified>2007-10-04T01:41:50Z</dcterms:modified></item><item><title>ArcGIS 9.2 SpaceNavigator Device Support</title><link>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!247.entry</link><description>&lt;p&gt;The beta version of 3Dconnexion SpaceNavigator device plug-in for ArcGIS 9.2 is now available at the &lt;a title="HowTo: Set up 3Dconnexion SpaceNavigator Device for ArcGlobe, ArcScene, and ArcMap" href="http://support.esri.com/index.cfm?fa=knowledgebase.techarticles.articleShow&amp;amp;d=33515"&gt;ESRI Support Website&lt;/a&gt;. Here is the link: 
&lt;p&gt;&lt;a title="http://support.esri.com/index.cfm?fa=knowledgebase.techarticles.articleShow&amp;amp;d=33515" href="http://support.esri.com/index.cfm?fa=knowledgebase.techarticles.articleShow&amp;amp;d=33515"&gt;http://support.esri.com/index.cfm?fa=knowledgebase.techarticles.articleShow&amp;amp;d=33515&lt;/a&gt; 
&lt;p&gt;The plug-in supports ArcGlobe, ArcScene, ArcMap, and Dynamic Display in ArcMap. Please read the Knowledge Base Technical Article from the link provided above for more details. 
&lt;p&gt;The driver for the device can be downloaded from the &lt;a title="SpaceNavigator Driver 3.4.2" href="http://www.3dconnexion.com/support/drivers/70/3DxSoftware_v3-4-2.exe"&gt;3Dconnexion Website&lt;/a&gt;. The ArcGIS plug-in can be downloaded from &lt;a title="ArcGIS 9.2 SpaceNavigator Plug-in" href="http://downloads.esri.com/support/TechArticles/ArcGIS3Dxware_Beta_1.zip"&gt;the download location on ESRI Support Website&lt;/a&gt;.  
&lt;p align=center&gt;&lt;img alt="[O-Image]" src="http://support.esri.com/knowledgebase/techarticles/ShowImage.asp?ImageId=33571&amp;amp;ImageType=JPG"&gt; 
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-6170001750764485033&amp;page=RSS%3a+ArcGIS+9.2+SpaceNavigator+Device+Support&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=morakot1.spaces.live.com&amp;amp;GT1=morakot1"&gt;</description><category>ArcGIS Customization</category><comments>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!247.entry#comment</comments><guid isPermaLink="true">http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!247.entry</guid><pubDate>Fri, 31 Aug 2007 02:07:45 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://morakot1.spaces.live.com/blog/cns!AA5FC01906250657!247/comments/feed.rss</wfw:commentRss><wfw:comment>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!247.entry#comment</wfw:comment><dcterms:modified>2007-08-31T02:11:14Z</dcterms:modified></item><item><title>SIGGRAPH 2007 San Diego</title><link>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!246.entry</link><description>&lt;p&gt;I attended SIGGRAPH 2007 this week at the Convention Center in San Diego. The same place as ESRI User Conference 2007 just got a lot more attendees. There were nearly 25,000 attendees almost double the number at ESRI UC. This is because SIGGRAPH is about Computer Graphics technology which is part of everything ranging from cell phones to IMAX movies (see the official &lt;a href="http://www.siggraph.org/s2007"&gt;SIGGRAPH website&lt;/a&gt; for more detail). A lot of emerging technologies are worth mentioning. A particularly striking one for me this year is the E Ink Electrophoretic Displays which I can describe it as a paper-thin and flexible version of the LCD display. Yes, you can roll it (or hopefully in the near futuer fold it) to a compact size and put it in your pocket. The E Ink website also refers to it as E Ink® Imaging Film. Here's an excerp from the SIGGRAPH website. 
&lt;p&gt;&amp;quot;Electronic paper will enable us to read and see up-to-date information with a paper-like experience without the negative environmental impact of cutting down forests and disposing of thousands of tons of paper every day or the high energy wastage of conventional electronic displays. 
&lt;p&gt;... 
&lt;p&gt;E Ink electronic paper technology will surround us in the future. It will be available everywhere a thin non-breakable form factor, daylight readability, low power, light weight, and/or flexibility is desired in a changeable visual medium. Electronic books, electronic billboards, watches, memory cards, smart cards, and shelf labels are only the beginning.&amp;quot; 
&lt;p&gt;&lt;img height=80 src="http://www.eink.com/technology/images/plastic_logic5_flexpg.jpg" width=74 border=0&gt; &lt;img height=100 alt="" src="http://www.eink.com/technology/images/LG.Philips_LCD_E_E_Ink_Flex_Tablet_Display_smallest.jpg" width=87&gt; &lt;img src="http://www.eink.com/technology/images/eink_activeflex_display_smallest.jpg"&gt;  
&lt;p&gt;The black and white (gray-shade) version built into various devices (e.g. SONY Reader, Motorola cell phone, Lexar jump drive, SEIKO watch, various ebooks) were shown at SIGGRAPH. There was one with sample street map on it. One or two color displays were also there. From what I saw the texts and line works were pretty sharp. 
&lt;p&gt;There are a lot of other interesting software and hardware technologies. I will try to cover more in the next entry.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-6170001750764485033&amp;page=RSS%3a+SIGGRAPH+2007+San+Diego&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=morakot1.spaces.live.com&amp;amp;GT1=morakot1"&gt;</description><category>Computers and Internet</category><comments>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!246.entry#comment</comments><guid isPermaLink="true">http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!246.entry</guid><pubDate>Sat, 11 Aug 2007 01:22:40 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://morakot1.spaces.live.com/blog/cns!AA5FC01906250657!246/comments/feed.rss</wfw:commentRss><wfw:comment>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!246.entry#comment</wfw:comment><dcterms:modified>2007-08-15T16:18:57Z</dcterms:modified></item><item><title>ESRI International User Conference 2007</title><link>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!243.entry</link><description>&lt;p&gt;UC 2007 went by pretty quickly. It was great to meet many users and old friends. These are either users or ESRI partners that close relationships have been built up over the years through ideas exchanging, discussions, and collaborations. My main focus this year is on Dynamic and Realistic 3D and 2D Visualization and Simulation. I spent significant amount of time meeting and discussing with people from MAK Technologies, Diamond Visionics, Lenne3D, and 3Dconnexion. 
&lt;p&gt;&lt;a title="MÄK Technologies" href="http://www.mak.com/"&gt;MÄK Technologies&lt;/a&gt;. For a couple of years we have been collaborating with MAK Technologies to bring Modeling &amp;amp; Simulation into GIS. With the first release of GIS-to-SIM extension to ArcGIS 9.2 we have at least achieved the first step of our goal. 
&lt;p&gt;&lt;a title="Lenné3D GmbH" href="http://www.lenne3d.de/"&gt;Lenné3D GmbH&lt;/a&gt;. We started collaborating with Lenne3D after the UC 2006. Lenne3D specializes on 3D plant modeling and provides rendering engine as well as realistic 3D models of plants. An ArcGIS 9.2 Extension for 3D plant rendering is being built and the beta 1 release candidate has been demonstrated during the UC 2007. 
&lt;p&gt;&lt;a title="Diamond Visionics" href="http://www.diamondvisionics.com/"&gt;Diamond Visionics&lt;/a&gt;. Collaboration with Diamond Visionics started in the beginning of this year. The dynamic terrain and realistic scene rendering and environmental effects are the features of interest provided by Diamond Visionics technology. We've managed to get the GenesisRT integrated into ArcGlobe right before the UC. This allows us to demonstrate rendering in real-time, e.g. ocean waves movement, day and night time scene, fog/haze, rain and snow, clouds, etc. Some of these features have been demonstrated during the session &amp;quot;Developer's Guide to the ArcObjects 3D Visualization APIs&amp;quot; on Thursday 6/21/2007 (3:15 PM - 4:30PM). This prototype has also been demonstrated at &lt;a title="BRIDEX 2007" href="http://www.bridex.org/"&gt;BRIDEX 2007&lt;/a&gt; conference. This is a good way to maximize utilizing geo-spatial data and real-time information in dynamic 3D environment. 
&lt;p&gt;&lt;a title=3Dconnexion href="http://www.3dconnexion.com/"&gt;3Dconnexion&lt;/a&gt;. Collaboration with 3Dconnexion started way back in 2002 during the ArcGIS 8.x Release when we started working together to plug in the SpaceBall device to ArcScene and ArcMap. With the recent new product line release, we have a chance to work together again to plug in the SpaceNavigator device to ArcGIS 9.2 applications. There are many more applications to plug in this time. ArcMap, Dynamic Display, ArcScene, ArcGlobe, and ArcGIS Explorer. The beta 1 candidate for the first four applications have been demonstrated at the UC 2007 at the 3Dconnexion booth and during the technical session mentioned above. The plug-in is in the final testing stage and expected to be announced and released for public testing by next week to allow feedback and comments before going final. The work for ArcGIS Explorer is on going and update will be provided later.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-6170001750764485033&amp;page=RSS%3a+ESRI+International+User+Conference+2007&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=morakot1.spaces.live.com&amp;amp;GT1=morakot1"&gt;</description><category>Computers and Internet</category><comments>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!243.entry#comment</comments><guid isPermaLink="true">http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!243.entry</guid><pubDate>Fri, 22 Jun 2007 19:04:41 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://morakot1.spaces.live.com/blog/cns!AA5FC01906250657!243/comments/feed.rss</wfw:commentRss><wfw:comment>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!243.entry#comment</wfw:comment><dcterms:modified>2007-06-23T00:06:02Z</dcterms:modified></item><item><title>ArcGIS 9.2 SP2 Dynamic Display Caching Improvement Patch Released</title><link>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!242.entry</link><description>&lt;div&gt;This patch significantly improves the Dynamic Display performance. It can be downloaded from this &lt;a href="http://support.esri.com/index.cfm?fa=downloads.patchesServicePacks.viewPatch&amp;amp;PID=80&amp;amp;MetaID=1303"&gt;location&lt;/a&gt;.&lt;/div&gt;
&lt;div&gt;&lt;a href="http://support.esri.com/index.cfm?fa=downloads.patchesServicePacks.viewPatch&amp;amp;PID=80&amp;amp;MetaID=1303"&gt;http://support.esri.com/index.cfm?fa=downloads.patchesServicePacks.viewPatch&amp;amp;PID=80&amp;amp;MetaID=1303&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;MAK GIS-to-SIM extension for ArcGIS 9.2 running on ArcMap or MapControl application is suggested to install this patch to get better panning and zooming performance. This patch is also recommended for displaying very large image background or complex layer in Dynamic Display.  &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-6170001750764485033&amp;page=RSS%3a+ArcGIS+9.2+SP2+Dynamic+Display+Caching+Improvement+Patch+Released&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=morakot1.spaces.live.com&amp;amp;GT1=morakot1"&gt;</description><category>Dynamic Map Display</category><comments>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!242.entry#comment</comments><guid isPermaLink="true">http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!242.entry</guid><pubDate>Sat, 16 Jun 2007 00:03:36 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://morakot1.spaces.live.com/blog/cns!AA5FC01906250657!242/comments/feed.rss</wfw:commentRss><wfw:comment>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!242.entry#comment</wfw:comment><dcterms:modified>2007-06-16T04:02:17Z</dcterms:modified></item><item><title>How To Enable Dynamic Display On ArcMap</title><link>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!215.entry</link><description>&lt;p&gt;
&lt;h5&gt;Introduction&lt;/h5&gt;
&lt;p&gt;The Dynamic Display has been introduced in ArcGIS 9.2 Release. Since the Dynamic Display is part of ArcEngine, it is available to be used in ArcMap via customization. This means one need to write some code to make it work. A quick and convenient way to do this is to write the code in the Visual Basic for Application (VBA), which is provided by ArcMap. Before moving forward, make sure that the system you are running ArcMap has an OpenGL accelerated graphics card and its driver installed. Otherwise, you may not get the expected performance. 
&lt;p&gt;&lt;strong&gt;Enable Dynamic Display by VBA Code&lt;/strong&gt; 
&lt;p&gt;Let’s create a custom button to enable Dynamic Display for ArcMap. If you are not doing this very often, read from the step 1 otherwise you can skip to step 2 directly. 
&lt;h6&gt;Step 1: Adding a button to host our VBA script&lt;/h6&gt;
&lt;p&gt;In ArcMap menu, click Tools, then Customize… 
&lt;p align=center&gt;&lt;a href="http://tk3.storage.msn.com/y1pGZQEkjXgnptd8lAF1epd5FJzkM6f5X_2QDeZp6k157r-ueXxZRnLVfW1ruR2bf06_Ba73SSGfyT6U6mxEZu44g"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=314 src="http://tkfiles.storage.msn.com/y1pPxWLVkVlnyUZ4Rd1u20PU1SfMt-_aqfOeQhowV73hJfbzEdxtPUAuimcffjTqPax" width=460 border=0&gt;&lt;/a&gt; 
&lt;p&gt; The Customize dialog will pop up. Select the Commands tab, then on the left pane scroll down and select UIControls. 
&lt;p align=center&gt;&lt;a href="http://tk3.storage.msn.com/y1pGZQEkjXgnpssCCAj4jC_082Vp9WbctSG4cjK2euz9bdLK5npwkY1_r9iF7YvJy1WdrFGJjkA5tdDbLPOQ5uqVA"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=360 src="http://tk3.storage.msn.com/y1pGZQEkjXgnpt06MvwXyNMuw7vPY4eG20cN9r8sdzU6nAsd_HW0q-lNqjjf25I71V4wsvkeuO8KiElcwK627HHrA" width=462 border=0&gt;&lt;/a&gt; 
&lt;p&gt;
&lt;p&gt;Click on New UIControl button. Notice the Save in: edit box will be Normal.mxt. This means that our new button will always be available for every ArcMap session. So, leave it as it is. 
&lt;p align=center&gt;&lt;a href="http://tk3.storage.msn.com/y1pGZQEkjXgnpuF3tW-lNnCGEdf8Ur5ak7XSr-8Rk5xnXJUi24UELiiN5gzIhwD5oQTb2km29yw2qCjUBOWD8E2kg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=173 src="http://tk3.storage.msn.com/y1pGZQEkjXgnpslF6F_iyD_tsqc-jT6zYFlXywFxtnPJX9VWOguPpuh0asjTIjFgFfh1PlQ7ez_yd-72C676eJVzQ" width=319 border=0&gt;&lt;/a&gt; 
&lt;p&gt; Click on the Create button. 
&lt;p align=center&gt;&lt;a href="http://tk3.storage.msn.com/y1pGZQEkjXgnpsZpQVbBrhZiGVbbp6A3IiwYqPr0KVQP83e5r4SlUBCSPgFitGA3qsNO562Q13dFp6S_UgdvB1LEQ"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=358 src="http://tk3.storage.msn.com/y1pGZQEkjXgnpsjLAsw6tVGrZpDclD0Q-OukPFKkhKVi5DDsZLtE8fTOIoyj2Gt_2kS5N6uzebDPsv0g56MmrLh5Q" width=459 border=0&gt;&lt;/a&gt; 
&lt;p&gt;
&lt;p&gt;The Normal.UIButtonControl1 will appear on the right pane. Click on it to select and click again to rename it to ToggleDynamicDisplay. 
&lt;p align=center&gt;&lt;a href="http://tk3.storage.msn.com/y1pGZQEkjXgnpsyBGU1-ZHPtDWL866jbq7z2ljQ7mr7YeygHm_QtqUakL-yqCmqYcUaaSODwr3vafxH5wps8Lf0rw"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=362 src="http://tk3.storage.msn.com/y1pGZQEkjXgnpscvzRxL32YCywgcqZCHGD1TwdzpuUk9coMUO6DHev-LaK-ppqtXfKd-fqZkibMUJdkKfJF5Gk9xg" width=464 border=0&gt;&lt;/a&gt; 
&lt;p&gt; Drag the newly created button and drop it onto an ArcMap toolbar. Right click on the button so we can assign an image to our new button. 
&lt;p align=center&gt;&lt;a href="http://tk3.storage.msn.com/y1pGZQEkjXgnpuhG9rZUzE04pGbbFEV0S5Dci_MEjvcpjmaooJa5eG1WlHsPPgXs_IkP4GTNRY_t--U9rZ1xOsBaA"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=391 src="http://tk3.storage.msn.com/y1pGZQEkjXgnpuC1tfKz97_dzcbVO4-7eIU-S8nrDDxZypH1pbjUOZq-ApPeA_thSzwNDmgaxdCc5Ka8hWBqSEkXg" width=586 border=0&gt;&lt;/a&gt; 
&lt;p&gt;
&lt;h6&gt;Step 2: Writing the VBA script to toggle the Dynamic Display&lt;/h6&gt;
&lt;p&gt;While the Customize dialog is still shown, right click on the new button and select View Source. 
&lt;p align=center&gt;&lt;a href="http://tk3.storage.msn.com/y1pGZQEkjXgnpuHkkkmqBgNQsbWmkbiUe2pdoHHRav68GxccuYR1TUmCC4SBAr06QEFX0KB2okfnlF4CU-desAyAg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=389 src="http://tk3.storage.msn.com/y1pGZQEkjXgnpuINOCe-2Gdopi2QbTw87MElGGkoMyOjZxUjetLg01Q11bzvHPjuaY6vTanEtIvDBkvXmlU1PkqkQ" width=587 border=0&gt;&lt;/a&gt; 
&lt;p&gt; ArcMap will present the VBA editor with an empty subroutine to respond to the mouse click on the button. So, what we need to do is to write the code in this subroutine. 
&lt;p align=center&gt;&lt;a href="http://tk3.storage.msn.com/y1pGZQEkjXgnpswIHHuyE50cpznswb9sBvepvWi-mfTYWcRPzcylLYzf5o7rmwSvZs6gsbWjsfjl5W_-iru30Lf5g"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=353 src="http://tk3.storage.msn.com/y1pGZQEkjXgnpvV9RGjcEpqMov4JTUqsNxkVPH4WHXeadlb045s0KeGR5udplmMrZLsDcbxGazkAyz-2s_acwbglw" width=580 border=0&gt;&lt;/a&gt; 
&lt;p&gt;
&lt;p&gt;Add the following code into the body of the ToggleDynamicDisplay_Click() subroutine. &lt;pre&gt;Private Sub ToggleDynamicDisplay_Click()
    'Query IMxDocument from the current document
    Dim pMxDoc As IMxDocument
    Set pMxDoc = ThisDocument
    
    'Query IDynamicMap from the current map
    Dim pDynamicMap As IDynamicMap
    Set pDynamicMap = pMxDoc.ActiveView.FocusMap
    
    'Toggle the DynamicMap on/off
    pDynamicMap.DynamicMapEnabled = Not pDynamicMap.DynamicMapEnabled
End Sub&lt;/pre&gt;&lt;pre&gt;&lt;p align=center&gt;&lt;a href="http://tk3.storage.msn.com/y1pGZQEkjXgnptr536cuemY4ezyGBUjwo6IFLFAD0ljmmchsDhAMe9zYEXK1b5Pq9BIzM0ATZsGtUbBDSJDEl3fJg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=352 src="http://tk3.storage.msn.com/y1pGZQEkjXgnpu5K6MAK0P7bJav9Quv2_oKO2L6OZdbNO6WpprW5fg1IZAvza-XxOdC6FI4qR5LuIc5JSB1wHBXsQ" width=581 border=0&gt;&lt;/a&gt;&lt;/pre&gt;
&lt;p&gt;The new button will respond to the mouse click on itself. It is a toggle, which means the button can be used to enable or disable the Dynamic Display on ArcMap. 
&lt;p&gt;We can add a visual cue to the button to show the state of the Dynamic Display by adding some code to the function EnableDynamicDisplay_Checked() as follows. &lt;pre&gt;Private Function ToggleDynamicDisplay_Checked() As Boolean
    'Query IMxDocument from the current document
    Dim pMxDoc As IMxDocument
    Set pMxDoc = ThisDocument
    
    'Query IDynamicMap from the current map
    Dim pDynamicMap As IDynamicMap
    Set pDynamicMap = pMxDoc.ActiveView.FocusMap
    
    'Return the state of the DynamicMapEnabled
    ToggleDynamicDisplay_Checked = pDynamicMap.DynamicMapEnabled
End Function&lt;/pre&gt;
&lt;p&gt;The VBA editor should now look like this. 
&lt;p&gt;
&lt;p align=center&gt;&lt;a href="http://tk3.storage.msn.com/y1pGZQEkjXgnpsjWGt2XZQ5WYdG8Dc5W_ER7l_RVPOFWCa8ESepr3EYjiLEObkONF1hKMpDwRnyZaREbGTTWzZHkw"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=351 src="http://tk3.storage.msn.com/y1pGZQEkjXgnpshEhvShgSAie4kgqiZBRhiahj0UQ6e-izo3YBZkDT_NgMDArmHefSsweqEERJZKjFWVi-2WcOtNg" width=582 border=0&gt;&lt;/a&gt;   
&lt;p&gt;After finished the coding, switch back to ArcMap, click on the newly added button. Notice the ‘push’ state of the button indicates that the Dynamic Display is enabled. Zoom in on the map and use the Pan tool to pan around. Notice the continuous panning with no typical ‘white box’ effect.&lt;br&gt;&lt;br&gt;
&lt;h5&gt;Adding the map roaming tool to ArcMap&lt;/h5&gt;
&lt;p&gt;The map roaming tool makes use of the Dynamic Display. The ArcEngine team has already implemented this tool and it is available as part of the ArcEngine Controls library. We can add this tool for use in ArcMap through customization. 
&lt;p&gt;First, get the Customization dialog up as shown in Step 1. Click on Add from file… button. In the Open dialog, navigate to the Com folder under ArcGIS installation directory (e.g. C:\Program Files\ArcGIS\Com). Select esriControls.olb, click Open. 
&lt;p&gt;
&lt;p align=center&gt;&lt;a href="http://tk3.storage.msn.com/y1pGZQEkjXgnptFw0oQs9WgKmGeDT9pJAzEu4Y7EjmCXgrd_pbwnxii2pydNGq2dm7OfiMD3u-2LIZ9ejVgPh4muA"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=423 src="http://tk3.storage.msn.com/y1pGZQEkjXgnptUlp54fQzK0r9F5UvAAJlVypQkOSJPOUg0_AfyoafV4kb_gnjgLOp_jxRKaFrtTSwy4m4BhJ3uRg" width=570 border=0&gt;&lt;/a&gt;   
&lt;p&gt;ArcMap may spend a few minutes to load up all the commands and tools. An Added objects… dialog will pop up when this is done. 
&lt;p&gt;
&lt;p align=center&gt;&lt;a href="http://tk3.storage.msn.com/y1pGZQEkjXgnptD1DKR3PJ5SM-mS_YVnAKNZOqZm0eYFv_T6EcV34zItzin42b4qtxGD8Oe_Os9UZIJgMchQQJm9Q"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=209 src="http://tk3.storage.msn.com/y1pGZQEkjXgnpuMXMF3DbYer5ZQgfMq18nKXmKU_bVwrRpTO1XI_2A7-w67nNTUYOninazHBwJZCXwVSKWzN7W0Xw" width=293 border=0&gt;&lt;/a&gt;   
&lt;p&gt;Hit OK to dismiss the dialog. On the left pane of the Customize dialog, scroll down to select the Map Navigation entry, scroll down on the right pane to select the Roam. Drag and drop it on a toolbar on ArcMap. 
&lt;p&gt;
&lt;p align=center&gt;&lt;a href="http://tk3.storage.msn.com/y1pGZQEkjXgnpvs-E4vEvCKy0MKvtEEw65QawidkRs8V_q82BSrnLcRO-yS6c4_LGQSxc2TuM0wBZrkvgAbCc9wjQ"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=387 src="http://tk3.storage.msn.com/y1pGZQEkjXgnpsoD6SJlgbIaAelLTKHHywcKhNGWI2Fc2G3fLguNzRn1KcngBNSdG2ttnGO7sYjGB43xi3uXd2Adg" width=581 border=0&gt;&lt;/a&gt;   
&lt;p&gt;Close the Customize dialog and click on the Roam tool. Click anywhere on the map to start roaming and click again to stop. 
&lt;p&gt;Although this seems to be a long elaboration, it was done to make the document self-contained. The actual process usually takes just a few minutes.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-6170001750764485033&amp;page=RSS%3a+How+To+Enable+Dynamic+Display+On+ArcMap&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=morakot1.spaces.live.com&amp;amp;GT1=morakot1"&gt;</description><category>Dynamic Map Display</category><comments>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!215.entry#comment</comments><guid isPermaLink="true">http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!215.entry</guid><pubDate>Fri, 08 Jun 2007 23:07:42 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://morakot1.spaces.live.com/blog/cns!AA5FC01906250657!215/comments/feed.rss</wfw:commentRss><wfw:comment>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!215.entry#comment</wfw:comment><dcterms:modified>2007-06-23T00:05:25Z</dcterms:modified></item><item><title>Implementing a Tool or Command for various ArcGIS Applications</title><link>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!196.entry</link><description>&lt;p&gt;There are times that you may want to make a Tool or Command work for different ArcGIS applications such as ArcMap, ArcScene, and ArcGlobe. In general, this can simply be done by register it to each specific application component category. However, this may not be enough at the detailed implementation. The code may need to know the specific type of application in order to provide correct behavior accordingly. The C# code below shows and example of how one can accomplish this: 
&lt;p&gt;&lt;font color="#004040"&gt;...&lt;/font&gt;&lt;pre&gt;&lt;span style="color:rgb(0,0,255)"&gt;using&lt;/span&gt; ESRI.ArcGIS.Framework;
&lt;span style="color:rgb(0,0,255)"&gt;using&lt;/span&gt; ESRI.ArcGIS.ArcGlobe;
&lt;span style="color:rgb(0,0,255)"&gt;using&lt;/span&gt; ESRI.ArcGIS.ArcScene;
&lt;span style="color:rgb(0,0,255)"&gt;using&lt;/span&gt; ESRI.ArcGIS.ArcMapUI;
&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;pre&gt;&lt;span style="color:rgb(0,0,255)"&gt;namespace&lt;/span&gt; MyNameSpace
{&lt;br&gt;  ...
  &lt;span style="color:rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;sealed&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;class&lt;/span&gt; &lt;span style="color:rgb(0,128,128)"&gt;MyCmd&lt;/span&gt; : &lt;span style="color:rgb(0,128,128)"&gt;BaseCommand&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;
&lt;/span&gt;  {&lt;br&gt;    ...
    &lt;span style="color:rgb(0,0,255)"&gt;private&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;enum&lt;/span&gt; &lt;span style="color:rgb(0,128,128)"&gt;AppType&lt;/span&gt; { Unknown = -1, ArcMap = 0, DynamicDisplay = 1, ArcScene = 2, ArcGlobe = 3 };
    &lt;span style="color:rgb(0,0,255)"&gt;private&lt;/span&gt; &lt;span style="color:rgb(0,128,128)"&gt;AppType&lt;/span&gt; m_appType = &lt;span style="color:rgb(0,128,128)"&gt;AppType&lt;/span&gt;.Unknown;

    &lt;span style="color:rgb(0,0,255)"&gt;private&lt;/span&gt; &lt;span style="color:rgb(0,128,128)"&gt;IGlobeHookHelper&lt;/span&gt; m_globeHookHelper = &lt;span style="color:rgb(0,0,255)"&gt;null&lt;/span&gt;;
    &lt;span style="color:rgb(0,0,255)"&gt;private&lt;/span&gt; &lt;span style="color:rgb(0,128,128)"&gt;ISceneHookHelper&lt;/span&gt; m_sceneHookHelper = &lt;span style="color:rgb(0,0,255)"&gt;null&lt;/span&gt;;
    &lt;span style="color:rgb(0,0,255)"&gt;private&lt;/span&gt; &lt;span style="color:rgb(0,128,128)"&gt;IHookHelper&lt;/span&gt; m_hookHelper = &lt;span style="color:rgb(0,0,255)"&gt;null&lt;/span&gt;;&lt;br&gt;    ...

    &lt;span style="color:rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;override&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;void&lt;/span&gt; OnCreate(&lt;span style="color:rgb(0,0,255)"&gt;object&lt;/span&gt; hook)
    {
      &lt;span style="color:rgb(0,0,255)"&gt;if&lt;/span&gt; (hook == &lt;span style="color:rgb(0,0,255)"&gt;null&lt;/span&gt;)
        &lt;span style="color:rgb(0,0,255)"&gt;return&lt;/span&gt;;

      &lt;span style="color:rgb(0,128,0)"&gt;// Inspect the hook for the type of application
&lt;/span&gt;      &lt;span style="color:rgb(0,0,255)"&gt;if&lt;/span&gt; (hook &lt;span style="color:rgb(0,0,255)"&gt;is&lt;/span&gt; &lt;span style="color:rgb(0,128,128)"&gt;IGMxApplication&lt;/span&gt; || hook &lt;span style="color:rgb(0,0,255)"&gt;is&lt;/span&gt; &lt;span style="color:rgb(0,128,128)"&gt;IGlobeControl&lt;/span&gt;)
      {
        m_globeHookHelper = &lt;span style="color:rgb(0,0,255)"&gt;new&lt;/span&gt; &lt;span style="color:rgb(0,128,128)"&gt;GlobeHookHelperClass&lt;/span&gt;();
        m_globeHookHelper.Hook = hook;
        m_appType = &lt;span style="color:rgb(0,128,128)"&gt;AppType&lt;/span&gt;.ArcGlobe;
      }
      &lt;span style="color:rgb(0,0,255)"&gt;else&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;if&lt;/span&gt; (hook &lt;span style="color:rgb(0,0,255)"&gt;is&lt;/span&gt; &lt;span style="color:rgb(0,128,128)"&gt;ISxApplication&lt;/span&gt; || hook &lt;span style="color:rgb(0,0,255)"&gt;is&lt;/span&gt; &lt;span style="color:rgb(0,128,128)"&gt;ISceneControl&lt;/span&gt;)
      {
        m_sceneHookHelper = &lt;span style="color:rgb(0,0,255)"&gt;new&lt;/span&gt; &lt;span style="color:rgb(0,128,128)"&gt;SceneHookHelperClass&lt;/span&gt;();
        m_sceneHookHelper.Hook = hook;
        m_appType = &lt;span style="color:rgb(0,128,128)"&gt;AppType&lt;/span&gt;.ArcScene;
      }
      &lt;span style="color:rgb(0,0,255)"&gt;else&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;if&lt;/span&gt; (hook &lt;span style="color:rgb(0,0,255)"&gt;is&lt;/span&gt; &lt;span style="color:rgb(0,128,128)"&gt;IMxApplication&lt;/span&gt; || hook &lt;span style="color:rgb(0,0,255)"&gt;is&lt;/span&gt; &lt;span style="color:rgb(0,128,128)"&gt;IMapControl2&lt;/span&gt;)
      {
        m_hookHelper = &lt;span style="color:rgb(0,0,255)"&gt;new&lt;/span&gt; &lt;span style="color:rgb(0,128,128)"&gt;HookHelperClass&lt;/span&gt;();
        m_hookHelper.Hook = hook;
        m_appType = &lt;span style="color:rgb(0,128,128)"&gt;AppType&lt;/span&gt;.ArcMap;
      }&lt;br&gt;      &lt;span style="color:rgb(0,0,255)"&gt;else&lt;/span&gt; 
        m_appType = &lt;span style="color:rgb(0,128,128)"&gt;AppType&lt;/span&gt;.Unknown;
    }&lt;br&gt;
    &lt;span style="color:rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;override&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;void&lt;/span&gt; OnClick()
    {
      &lt;span style="color:rgb(0,0,255)"&gt;switch&lt;/span&gt; (m_appType)
      {
        &lt;span style="color:rgb(0,0,255)"&gt;case&lt;/span&gt; &lt;span style="color:rgb(0,128,128)"&gt;AppType&lt;/span&gt;.ArcGlobe:
          {
            &lt;span style="color:rgb(0,128,0)"&gt;// Do ArcGlobe operation&lt;br&gt;&lt;/span&gt;          }
          &lt;span style="color:rgb(0,0,255)"&gt;break&lt;/span&gt;;
        &lt;span style="color:rgb(0,0,255)"&gt;case&lt;/span&gt; &lt;span style="color:rgb(0,128,128)"&gt;AppType&lt;/span&gt;.DynamicDisplay:
          {
            &lt;span style="color:rgb(0,128,0)"&gt;// Do Operation in ArcMap Dynamic Display mode&lt;br&gt;&lt;/span&gt;          }
          &lt;span style="color:rgb(0,0,255)"&gt;break&lt;/span&gt;;
        &lt;span style="color:rgb(0,0,255)"&gt;case&lt;/span&gt; &lt;span style="color:rgb(0,128,128)"&gt;AppType&lt;/span&gt;.ArcMap:
          {
            &lt;span style="color:rgb(0,128,0)"&gt;// Do Operation in ArcMap regular display mode&lt;br&gt;&lt;/span&gt;          }
          &lt;span style="color:rgb(0,0,255)"&gt;break&lt;/span&gt;;
        &lt;span style="color:rgb(0,0,255)"&gt;case&lt;/span&gt; &lt;span style="color:rgb(0,128,128)"&gt;AppType&lt;/span&gt;.ArcScene:
          {&lt;br&gt;            &lt;span style="color:rgb(0,128,0)"&gt;// Do ArcScene Operation&lt;br&gt;&lt;/span&gt;          }
          &lt;span style="color:rgb(0,0,255)"&gt;break&lt;/span&gt;;
      }
    }&lt;br&gt;  }
}&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;You will need to pull in various references for ArcGIS Desktop .NET Assemblies such as Framework, ArcMapUI, ArcScene, and ArcGlobe for the above example.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-6170001750764485033&amp;page=RSS%3a+Implementing+a+Tool+or+Command+for+various+ArcGIS+Applications&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=morakot1.spaces.live.com&amp;amp;GT1=morakot1"&gt;</description><category>ArcGIS Customization</category><comments>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!196.entry#comment</comments><guid isPermaLink="true">http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!196.entry</guid><pubDate>Tue, 05 Jun 2007 17:35:18 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://morakot1.spaces.live.com/blog/cns!AA5FC01906250657!196/comments/feed.rss</wfw:commentRss><wfw:comment>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!196.entry#comment</wfw:comment><dcterms:modified>2007-06-05T17:35:18Z</dcterms:modified></item><item><title>MAK GIS-to-SIM 1.0 Officially Released</title><link>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!194.entry</link><description>&lt;div&gt;&lt;a href="http://www.mak.com"&gt;MAK Technologies &lt;/a&gt;have just released the GIS-to-SIM extension for ArcGIS 9.2. This is a great news for users in Modeling and Simulation community to be able to perform distributed real-time simulation on spatial data sets supported by ArcGIS.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-6170001750764485033&amp;page=RSS%3a+MAK+GIS-to-SIM+1.0+Officially+Released&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=morakot1.spaces.live.com&amp;amp;GT1=morakot1"&gt;</description><category>Computers and Internet</category><comments>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!194.entry#comment</comments><guid isPermaLink="true">http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!194.entry</guid><pubDate>Mon, 21 May 2007 17:02:17 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://morakot1.spaces.live.com/blog/cns!AA5FC01906250657!194/comments/feed.rss</wfw:commentRss><wfw:comment>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!194.entry#comment</wfw:comment><dcterms:modified>2007-05-21T17:02:17Z</dcterms:modified></item><item><title>Understanding Globe Coordinate Systems</title><link>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!134.entry</link><description>&lt;div&gt; &lt;h3&gt; &lt;/h3&gt; &lt;p&gt;Before start developing with the Globe API, it is a good idea to better understand how globe works. Among various concepts, a quick look into the concept of the globe coordinate system and the Cube projection may be a good place to start especially when one wants to place 3D objects with the correct location and orientation on the globe.  &lt;h4&gt;&lt;br&gt;The Cube Projection&lt;/h4&gt; &lt;p&gt;Conceptually, the Cube projection can be said to be derived from the World Geodetic System 1984 (WGS 84). The origin of this system is the center of mass of the earth (see Figure 1).  &lt;p align=center&gt;&lt;a href="http://tkfiles.storage.msn.com/y1pPxWLVkVlnyVMYCELyj1T0CwDkPpdu3pjP3fjmDVkQQt-buFIJTl6tAUZDkznqj-W"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=262 src="http://tkfiles.storage.msn.com/y1pPxWLVkVlnyV_xUL94QFbY43mru38IdnHYptMMh_tUZa6mRxmphAbJFKPTdJW9xUf" width=287 border=0&gt;&lt;/a&gt;   &lt;p align=center&gt;&lt;b&gt;Figure 1:&lt;/b&gt; &lt;i&gt;World geocentric coordinate system -- the coordinate origin is at the center of the earth&lt;/i&gt;  &lt;p&gt;Figure 2 shows an image of the world after projected into the WGS 84. Notice the expansion of the north and the south poles from points into straight lines. In the vertical direction, the world image is divided into 4 zones, 0-45N, 45N-90N, 0-45S, 45S-90S. In the horizontal direction, the world image is also divided into 4 zones, 0-90W, 90W-180W, 0-90E, 90E-180E. Keep in mind that the 180W and 180E are actually the same line.  &lt;p align=center&gt;&lt;a href="http://tkfiles.storage.msn.com/y1pPxWLVkVlnyWh00spK6HdCIWI4xwdxd1CrGkQ_EZT99gnvTB9gl_G52LlDCFAt8KZ"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=228 src="http://tkfiles.storage.msn.com/y1pPxWLVkVlnyWpKq8XTK5HUJdi-DG9_H4NowrkVZLcbUuchzmw0S0Z3XxI7WBk7PMa" width=436 border=0&gt;&lt;/a&gt;   &lt;p align=center&gt;&lt;b&gt;Figure 2:&lt;/b&gt; &lt;i&gt;A world image projected into the World Geodetic System 1984 (WGS 84)&lt;/i&gt;  &lt;p&gt;Deriving the Cube projection involves a process to degenerate the 90N and 90S lines. Conceptually, this is achievable by linearly warping each horizontal zone above 45N and below 45S. Notice the splitting of the longitudes above and below the 45N and 45S.  &lt;p align=center&gt;&lt;a href="http://tkfiles.storage.msn.com/y1pPxWLVkVlnyVDrG-aaXqgy7Zi-bptjpyLCWKO_c65MeP98WlQXT2N_oqMe_V5r8Zc"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=218 src="http://tkfiles.storage.msn.com/y1pPxWLVkVlnyXYrDVhPpPHj6rTcXW6zuzsAXmOwpGjff4eMp8PnGIyfzjKCnuB21gv" width=436 border=0&gt;&lt;/a&gt;   &lt;p align=center&gt;&lt;b&gt;Figure 3:&lt;/b&gt; &lt;i&gt;The world image in WGS 84 after warped at both poles before transforming into the Cube Coordinate System&lt;/i&gt;  &lt;p&gt;If necessary, some of the warped zones are translated and rotated to form the polar caps.  &lt;p align=center&gt;&lt;a href="http://tkfiles.storage.msn.com/y1pPxWLVkVlnyVnNiiGDAGOd2XDG5viLmFBG1cDFqwrNZJO70jMQZnMr4kHjrOfL7Uo"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=330 src="http://tkfiles.storage.msn.com/y1pPxWLVkVlnyWmSRdM2M_JfrnSSZZuK5PAc-Ad3BdpMTGBf0jbmlycoSQ7t2F27Nly" width=436 border=0&gt;&lt;/a&gt;   &lt;p align=center&gt; &lt;b&gt;Figure 4:&lt;/b&gt; &lt;i&gt;The world image in Cube Coordinate System. The region between 45 S and 45 N remained the same as in WGS 84.&lt;/i&gt;  &lt;p&gt;The cube projected image can be seen as an unfolded box (Figure 4), therefore, it can be folded back into a box (see Figure 5).  &lt;p align=center&gt;&lt;a href="http://tkfiles.storage.msn.com/y1pPxWLVkVlnyURy2KQKu0OR1Cqq9BbPb8-1nzku4lnDGILZqMorFt960WmdjLrQdcf"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=143 src="http://tkfiles.storage.msn.com/y1pPxWLVkVlnyU_XAxC2k8lIgQiTxb4ntX9Zm48pqA_1xIS0hEbEA7XN2yPfVrwzXFq" width=341 border=0&gt;&lt;/a&gt;   &lt;p align=center&gt;  &lt;b&gt;Figure 5:&lt;/b&gt; &lt;i&gt;The world image in Figure 4 folded into a box (being viewed from two different directions)&lt;/i&gt;  &lt;p&gt; &lt;p&gt; &lt;h4&gt;From Cube to Globe&lt;/h4&gt; &lt;p&gt;The globe display engine projects the cube onto a sphere in the next step. A sphere with unit radius is chosen for this purpose (see Figure 6). This sphere is formed by a tessellated geometry. Triangulated surface is used for ease of subdivision (see Figure 7). The end result is shown in Figure 8.  &lt;p align=center&gt;&lt;a href="http://tkfiles.storage.msn.com/y1pPxWLVkVlnyU-rnE8d9kWN5KJbIcjnQOkIleIgKpjvvKto_iG5b14dDzfKyAkwEwC"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=292 src="http://tkfiles.storage.msn.com/y1pPxWLVkVlnyVQcI8FE1ypVKAauRT9yNfzB8Dt0ZFBGkCqqRIAqsd6L1SXRj8IZT4h" width=299 border=0&gt;&lt;/a&gt;   &lt;p align=center&gt; &lt;b&gt;Figure 6:&lt;/b&gt; &lt;i&gt;Projecting the cube surfaces onto the sphere with unit radius&lt;/i&gt;  &lt;p&gt; &lt;p align=center&gt;&lt;a href="http://tk3.storage.msn.com/y1pGZQEkjXgnpvr8rhz7XvkYNVci31P6IokBRufaSDrFv9T4-OxW4cwb_wRqhWrCqhZFSozdUNjm74wKh5bOmOEEA"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=254 src="http://tk3.storage.msn.com/y1pGZQEkjXgnpt0iS9d_zwDMuJnrDLq5p-l7reSxC31M_WBx6ZIFNH1tLYnTSkl9rsYX3nSY0rU2TUK-_SJOTP-Pg" width=303 border=0&gt;&lt;/a&gt;   &lt;p align=center&gt; &lt;b&gt;Figure 7:&lt;/b&gt; &lt;i&gt;The spherical mesh of triangles using as a basis for draping the world image&lt;/i&gt;  &lt;p align=center&gt;&lt;a href="http://tk3.storage.msn.com/y1pGZQEkjXgnpvRgDpX_sRgBfHsfo4DEuHyWOOiYOMGJPPxWF8GOBShA0gR_qRBBwhO7NcEuANv-SPGaG7YmgjAng"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=270 src="http://tk3.storage.msn.com/y1pGZQEkjXgnpvWgttewUDFKV4e8yO3SDOxzG4PiPtZGxWUYrWlGPti9wnuFOQDa1XiY6TSOq426Jxjfxa8W4oosw" width=307 border=0&gt;&lt;/a&gt;   &lt;p align=center&gt; &lt;b&gt;Figure 8:&lt;/b&gt; &lt;i&gt;The world image draped on a sphere of triangle mesh&lt;/i&gt;  &lt;p&gt; &lt;h4&gt;Object’s Local Coordinate System&lt;/h4&gt; &lt;p&gt;In order to create a consistent way to place various objects on the globe surface, the globe display applies a local coordinate system using the right-hand rule as shown in the Figure 9.  &lt;p&gt;It is possible that other programs used to create the 3D model of the object may have applied different coordinate system. In this case, the model must be rotated to align with the coordinate system defined in the Figure 9 first.  &lt;p align=center&gt;&lt;a href="http://tk3.storage.msn.com/y1pGZQEkjXgnptbLu1rk_SZEDFc0lHePvbdpM-_CK-cKd6FU7tCjd76h_fTKKjTVvuO7u2dEFyxdliNhlvlP_WScw"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=184 src="http://tk3.storage.msn.com/y1pGZQEkjXgnpvQ8nwTAZ6HNblkP6hQia_PVeH4Mj0DA6b5tII0FVG9J-zy_hUV2_VoqX-YvrKM57MfnoiqQlE-Pw" width=466 border=0&gt;&lt;/a&gt;   &lt;p align=center&gt;&lt;b&gt;Figure 9:&lt;/b&gt; &lt;i&gt;Object's local coordinate system&lt;/i&gt;  &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;h4&gt;Placing Objects on the Globe&lt;/h4&gt; &lt;p&gt;Objects can be placed on or over the globe surface, however, they must be oriented to mimic situations in the real world. Each object will be placed according to its real world location, e.g., based on latitude, longitude, and altitude in WGS 84 coordinate system. Typically, the up direction of the object must be aligned with the globe radius vector at the specified location (see Figure 10).  &lt;p align=center&gt;&lt;a href="http://tk3.storage.msn.com/y1pGZQEkjXgnpvDNt_5LAvOTBa_WG0Uj9QHJ6Qv06uiTC-mresB4jhx8E86O5EfPnpzmrwXOkZW4dJUR1vnOE7aFQ"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=269 src="http://tk3.storage.msn.com/y1pGZQEkjXgnpspgNf9FA2txnm5zJT_y8Vj4COwlbYlzE1Fi_6miz_U_WLH45kyV1NDzTe0RdFKEQDuKp5IHsZnHQ" width=467 border=0&gt;&lt;/a&gt;   &lt;p align=center&gt; &lt;b&gt;Figure 10:&lt;/b&gt; &lt;i&gt;Aligning the object's up direction to the globe radius vector at each location&lt;/i&gt;  &lt;p&gt;In addition to this, each object may need to be oriented according to its heading (yaw), roll, and pitch, e.g., an in-flight airplane may have all the three orientations in some instance while a bus parking on a flat terrain may only have the heading orientation.  &lt;p&gt; &lt;h4&gt;Scaling the Objects&lt;/h4&gt; &lt;p&gt;Objects need to be scaled according to the intended representation. Similar to the 2D cartography, different representations and details can be used. Objects can be exaggerated for visual enhancement if needed. The globe with unit radius must be used as the scaling basis. For the data layer known to globe, this is done internally by the globe display engine. However, this task is left to the developer in case of the custom globe layer.  &lt;p&gt;ArcGIS 9.2 has added many significant functions to support customization with 3D graphics. A lot of functions have been provided to help accomplishing developing tasks easier. Dynamic contents can be rendered more efficiently and easily. These will be covered in the upcoming articles.&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-6170001750764485033&amp;page=RSS%3a+Understanding+Globe+Coordinate+Systems&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=morakot1.spaces.live.com&amp;amp;GT1=morakot1"&gt;</description><category>Globe</category><comments>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!134.entry#comment</comments><guid isPermaLink="true">http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!134.entry</guid><pubDate>Fri, 18 May 2007 22:24:16 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://morakot1.spaces.live.com/blog/cns!AA5FC01906250657!134/comments/feed.rss</wfw:commentRss><wfw:comment>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!134.entry#comment</wfw:comment><dcterms:modified>2007-06-05T17:37:29Z</dcterms:modified></item><item><title>VBA Script to Toggle Dynamic Display Mode in ArcMap</title><link>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!133.entry</link><description>&lt;div&gt;In ArcGIS 9.2 Dynamic Display was shipped as part of the ArcGIS Engine only. However, one can easily enable it in ArcMap using the VBA script shown below:&lt;/div&gt;
&lt;div&gt;
&lt;hr&gt;
 Private Sub ToggleDynamicDisplay_Click()&lt;br&gt;    'Query IMxDocument from the current document&lt;br&gt;    Dim pMxDoc As IMxDocument&lt;br&gt;    Set pMxDoc = ThisDocument&lt;br&gt;    &lt;br&gt;    'Query IDynamicMap from the current map&lt;br&gt;    Dim pDynamicMap As IDynamicMap&lt;br&gt;    Set pDynamicMap = pMxDoc.ActiveView.FocusMap&lt;br&gt;    &lt;br&gt;    'Toggle the DynamicMap on/off&lt;br&gt;    pDynamicMap.DynamicMapEnabled = Not pDynamicMap.DynamicMapEnabled&lt;br&gt;End Sub&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Private Function ToggleDynamicDisplay_Checked() As Boolean&lt;br&gt;    'Query IMxDocument from the current document&lt;br&gt;    Dim pMxDoc As IMxDocument&lt;br&gt;    Set pMxDoc = ThisDocument&lt;br&gt;    &lt;br&gt;    'Query IDynamicMap from the current map&lt;br&gt;    Dim pDynamicMap As IDynamicMap&lt;br&gt;    Set pDynamicMap = pMxDoc.ActiveView.FocusMap&lt;br&gt;    &lt;br&gt;    'Return the state of the DynamicMapEnabled&lt;br&gt;    ToggleDynamicDisplay_Checked = pDynamicMap.DynamicMapEnabled&lt;br&gt;End Function&lt;/div&gt;
&lt;div&gt;
&lt;hr&gt;
 &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-6170001750764485033&amp;page=RSS%3a+VBA+Script+to+Toggle+Dynamic+Display+Mode+in+ArcMap&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=morakot1.spaces.live.com&amp;amp;GT1=morakot1"&gt;</description><category>Dynamic Map Display</category><comments>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!133.entry#comment</comments><guid isPermaLink="true">http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!133.entry</guid><pubDate>Fri, 18 May 2007 19:14:08 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://morakot1.spaces.live.com/blog/cns!AA5FC01906250657!133/comments/feed.rss</wfw:commentRss><wfw:comment>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!133.entry#comment</wfw:comment><dcterms:modified>2007-05-18T23:32:27Z</dcterms:modified></item><item><title>Calling Java OpenGL Functions from ArcGIS Dynamic Map Display</title><link>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!123.entry</link><description>&lt;div&gt; &lt;p&gt;ArcGIS 2D Map Display also support OpenGL calls. This functionality called Dynamic Map Display has been added to ArcGIS 9.2. This article will show how one can use Java OpenGL to do some custom drawing. Read the previous article &amp;quot;Enable OpenGL for Java Development&amp;quot; in this blog if you want to know how to set up the JOGL development environment for this.  &lt;p&gt;OpenGL functions can be called directly when the Dynamic Display is enabled. A typical place to do this is within the DrawDynamicLayer() method of the IDynamicLayer interface. Calling from BeforeDynamicDraw() or AfterDynamicDraw() method is also possible from the IDynamicMapEvents.  &lt;p&gt;The Java code sample below shows how to call OpenGL and GLU library to draw some graphics and texture using JOGL Java Binding. &lt;pre&gt;public class CompassCmd extends BaseCommand {

  HookHelper hookHelper;
 
  public CompassCmd() {
    //Set various protected properties specified by BaseTool
    name = &amp;quot;CustomCommands_Compass&amp;quot;;
    caption = &amp;quot;Compass&amp;quot;;
    toolTip = &amp;quot;Compass&amp;quot;;
    message = &amp;quot;Compass&amp;quot;;
    category = &amp;quot;CustomCommands&amp;quot;; 
    enabled = true;
  }

  public void onCreate(Object obj) {
    try {
      hookHelper = new HookHelper();
      hookHelper.setHookByRef( obj );
      try {
 Map map = (Map)hookHelper.getFocusMap();
          
 DynamicMapListener dmListener = new DynamicMapListener();
 map.addIDynamicMapEventsListener(dmListener);
      } catch (Exception e) {
 e.printStackTrace();
      }
    } catch (IOException ex) {
      System.out.println(&amp;quot;Exception caught inside AddDateTool.onCreate().  Throwing as new RuntimeException.&amp;quot;);
      throw new RuntimeException(ex);
    }
  }
 
  public void onClick() {
    try {
      Map map = (Map)hookHelper.getFocusMap();
      IDynamicMap dynamicMap = (IDynamicMap)map;
      if (!dynamicMap.isDynamicMapEnabled())
        dynamicMap.setDynamicMapEnabled(true);
      else
        dynamicMap.setDynamicMapEnabled(false);
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }

  public void onMouseDown(int button, int shift, int x, int y) {
     try {
 boolean bTest = false;
 if (bTest == false) {
   bTest = true;
 }
   
 Map map = (Map)hookHelper.getFocusMap();
     } catch (IOException ex) {
 System.out.println(&amp;quot;Exception caught inside AddDateTool.onCreate().  Throwing as new RuntimeException.&amp;quot;);
 throw new RuntimeException(ex);
     }
  }
 
} // end CompassCmd class

class DynamicMapListener extends IDynamicMapEventsAdapter {
  private GL gl = null;
  private GLUquadric qObj = null;
  private boolean bDisplayListCreated = false;
  private int displayList = 0;
  private GLU glu = null;
  private GLContext context = null;
  private int compassList = 0;
  private Texture tex = null;
  private tagRECT rect = new tagRECT();
  private boolean first = true;
 
  class DeviceFrameListener extends ITransformEventsAdapter {
    public void deviceFrameUpdated(ITransformEventsDeviceFrameUpdatedEvent theEvent) {
      try {
        IDisplayTransformation displayTrans = theEvent.getSender();
 rect = displayTrans.getDeviceFrame();
      } catch (Exception ex) {
 ex.printStackTrace();
      }
    }
  }
 
  private void CreateDisplayList() {
    displayList = gl.glGenLists(1);
    gl.glNewList(displayList, GL.GL_COMPILE);
      gl.glBegin(GL.GL_LINES);
        gl.glColor3d(1.0, 0.0, 0.0);
        gl.glVertex2d(-100.0,0.0);
        gl.glVertex3d(100.0,0.0,0.0);
        gl.glColor3d(0.0, 1.0, 0.0);          
        gl.glVertex3d(0.0, -100.0, 0.0);
        gl.glVertex3d(0.0, 100.0, 0.0);
        gl.glColor3d(0.0, 0.0, 1.0);          
        gl.glVertex3d(0.0,0.0,-100.0);
        gl.glVertex3d(0.0,0.0,100.0);
      gl.glEnd();
   gl.glEndList();

   //create the display list for the animated icons
   //the quad size is set to 1 unit. Therefor you will have to scale it 
   //each time before drawing.

   //open the compass image
   File gifFile = new File(&amp;quot;compass.png&amp;quot;);
   TextureData texData = null;
   try {
     texData = TextureIO.newTextureData(gifFile, false, null);
     tex = TextureIO.newTexture(texData);
   } catch (IOException ioEx) {
     ioEx.printStackTrace();
   }

   //create the texture for the bitmap
   compassList = gl.glGenLists(1);
   gl.glNewList(compassList, GL.GL_COMPILE);
     gl.glPushMatrix();
     //shift the item 1/2 unit to the middle so that it'll get drawn around the center
     gl.glTranslatef(-0.5f, -0.5f, 0.0f);
     //enable texture in order to allow for texture binding
     tex.setTexParameteri(GL.GL_TEXTURE_MAG_FILTER, GL.GL_LINEAR);
     tex.setTexParameteri(GL.GL_TEXTURE_MIN_FILTER, GL.GL_LINEAR);

     gl.glTexEnvi(GL.GL_TEXTURE_ENV, GL.GL_TEXTURE_ENV_MODE, (int)GL.GL_MODULATE);

     //bind the texture
     gl.glEnable(GL.GL_TEXTURE_2D);
     tex.bind();

     //create the geometry (quad) and specify the texture coordinates
     gl.glBegin(GL.GL_QUADS);
       gl.glTexCoord2f(0.0f, 0.0f); gl.glVertex2f(0.0f, 0.0f);
       gl.glTexCoord2f(0.0f, 1.0f); gl.glVertex2f(0.0f, 1.0f);
       gl.glTexCoord2f(1.0f, 1.0f); gl.glVertex2f(1.0f, 1.0f);
       gl.glTexCoord2f(1.0f, 0.0f); gl.glVertex2f(1.0f, 0.0f);
     gl.glEnd();
     gl.glPopMatrix();
   gl.glEndList();
     
   bDisplayListCreated = true;
  }

  public void beforeDynamicDraw(IDynamicMapEventsBeforeDynamicDrawEvent e) {
    try {
     int dynamicMapDrawPhase = e.getDynamicMapDrawPhase();
     if (esriDynamicMapDrawPhase.esriDMDPDynamicLayers != dynamicMapDrawPhase) //???
       return;
   
     if (context == null) {
       context = GLDrawableFactory.getFactory().createExternalGLContext();
     }

     context.makeCurrent();
     gl = context.getGL();
     
     if (glu == null) {
       glu = new GLU();
     }

     if (qObj == null) {
       qObj = glu.gluNewQuadric();
     }
     //System.out.println(&amp;quot;BeforeDraw&amp;quot;);
     if (bDisplayListCreated == false) {
       CreateDisplayList();
     }

     context.release();
    } catch (Exception ee) {
      ee.printStackTrace();
    }
  }
 
  public void afterDynamicDraw(IDynamicMapEventsAfterDynamicDrawEvent e) {
    try {
      //System.out.println(&amp;quot;AfterDraw&amp;quot;);
      int dynamicMapDrawPhase = e.getDynamicMapDrawPhase();
      if (esriDynamicMapDrawPhase.esriDMDPDynamicLayers != dynamicMapDrawPhase) //???
        return;
         
      IDisplay display = e.getDisplay();
      if (first == true) {
        rect = display.getDisplayTransformation().getDeviceFrame();
      first = false;
      }
    
      if (context == null) {
 context = GLDrawableFactory.getFactory().createExternalGLContext();
      }

      context.makeCurrent();
      gl = context.getGL();
      
      gl.glDisable(GL.GL_TEXTURE_2D); 
      gl.glPushMatrix();
      // Draw the x-y-z axis at the globe center
      gl.glTranslated(0.0, 0.0, 0.0);
      gl.glCallList(displayList);
      gl.glPopMatrix();
       
      gl.glPushMatrix();
      gl.glTranslated(50.0, 50.0, 0.0);

      // Set the ring color to blue;
      gl.glColor3f(0.0f, 0.0f, 1.0f);
      glu.gluDisk(qObj, 10.0, 20.0, 20, 2);
      gl.glPopMatrix();
         
      gl.glPushMatrix();
      gl.glTranslated(-50.0, -50.0, 0.0);
      // Rotate the axis and draw it
      gl.glRotated(45, 0.0, 0.0, 1.0);
      // Scale the axis down to half the original size
      gl.glScaled(0.5, 0.5, 0.5);
      gl.glCallList(displayList);
      gl.glPopMatrix();
         
      gl.glPushMatrix();
      gl.glLoadIdentity();

      //draw the compass list
      gl.glDisable(GL.GL_TEXTURE_2D);
      gl.glPushMatrix();
      gl.glTranslatef((float)rect.left + 70.0f, (float)rect.top + 70.0f, 0.0f);
      gl.glScalef(90.0f, 90.0f, 0.0f);
      gl.glRotatef((float)display.getDisplayTransformation().getRotation(), 0.0f, 0.0f, 1.0f);
      gl.glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
      gl.glCallList(compassList);
      gl.glPopMatrix();

      gl.glPopMatrix();
      context.release();
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
}
&lt;/pre&gt;&lt;pre&gt;&lt;font face="Verdana, Geneva, Arial, Sans-serif"&gt;The screenshots below shows an ArcEngine Java application that uses Dynamic 
Display, OpenGL and GLU library to draw compass and other graphics.&lt;/font&gt;
&lt;/pre&gt;&lt;pre&gt;&lt;p align=center&gt;&lt;a href="http://tkfiles.storage.msn.com/y1pPxWLVkVlnyXXOJxyda-fzhDnH0YKYR5jvYP8ezto6H5TsLxdeKUtKUczF1qBpzuk"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=256 src="http://tkfiles.storage.msn.com/y1pPxWLVkVlnyWLGnNV-WEUtvZ_hcg0GtJdtq4N8I1200I_dKa5Dp8gPCmtg9Z0whVp" width=393 border=0&gt;&lt;/a&gt; &lt;p&gt; &lt;p align=center&gt;&lt;a href="http://tkfiles.storage.msn.com/y1pPxWLVkVlnyUeIfWI0FptVoS2LaRdjUqlydGE9xda7n6NA4wy6d2mGNozjijc99FY"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=258 src="http://tkfiles.storage.msn.com/y1pPxWLVkVlnyWNaTKiysJVhvGpn2ow4CQ6lYNfSc8IhoROrv0rC4Azx7b9w8gi1DJM" width=393 border=0&gt;&lt;/a&gt; &lt;p&gt;  &lt;/pre&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-6170001750764485033&amp;page=RSS%3a+Calling+Java+OpenGL+Functions+from+ArcGIS+Dynamic+Map+Display&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=morakot1.spaces.live.com&amp;amp;GT1=morakot1"&gt;</description><category>Dynamic Map Display</category><comments>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!123.entry#comment</comments><guid isPermaLink="true">http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!123.entry</guid><pubDate>Thu, 17 May 2007 22:25:31 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://morakot1.spaces.live.com/blog/cns!AA5FC01906250657!123/comments/feed.rss</wfw:commentRss><wfw:comment>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!123.entry#comment</wfw:comment><dcterms:modified>2007-05-19T00:47:30Z</dcterms:modified></item><item><title>Enable OpenGL for Java Development</title><link>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!122.entry</link><description>&lt;div&gt;A number of people who are interested in customizing ArcGIS Globe using Java develpment environment have asked me to make this article available. So, here it is.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;h3&gt;OpenGL for Java&lt;/h3&gt;
&lt;p&gt;There are a few OpenSource API OpenGL JAVA binding projects that allow calling OpenGL from JAVA. The currently active one is JOGL available from &lt;a href="https://jogl.dev.java.net/"&gt;&lt;strong&gt;&lt;font color="#5788af"&gt;https://jogl.dev.java.net/&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;font color="#5788af"&gt;&lt;/font&gt;&lt;/strong&gt; and is likely become a standard in the near future. 
&lt;p&gt;Based on some information on the web, JOGL has been evolved from &lt;a href="http://gl4java.sourceforge.net/"&gt;&lt;strong&gt;&lt;font color="#5788af"&gt;GL4JAVA&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;font color="#5788af"&gt;&lt;/font&gt;&lt;/strong&gt;. For more information, read the overview document at &lt;a href="http://gl4java.sourceforge.net/docs/overview/purpose.html"&gt;&lt;strong&gt;&lt;font color="#5788af"&gt;http://gl4java.sourceforge.net/docs/overview/purpose.html&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;&lt;font color="#5788af"&gt;&lt;/font&gt;&lt;/strong&gt;. If you would like to try GL4JAVA, its packages information and the setup steps are available at &lt;a href="http://morakot1.spaces.live.com/wiki/Wiki.jsp?page=GL4JAVA"&gt;&lt;strong&gt;&lt;font color="#5788af"&gt;GL4JAVA&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt; page. 
&lt;p&gt;JOGL provides full access to OpenGL 2.0 APIs. Its availability is based on the Berkeley Software Distribution (BSD) License. 
&lt;h4&gt;Setting up JOGL&lt;/h4&gt;For Windows: 
&lt;ul&gt;
&lt;li&gt;Download &lt;a href="http://download.java.net/media/jogl/builds/nightly/jogl.jar"&gt;&lt;strong&gt;&lt;font color="#5788af"&gt;jogl.jar&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;font color="#5788af"&gt;&lt;/font&gt;&lt;/strong&gt; and &lt;a href="http://download.java.net/media/jogl/builds/nightly/jogl-natives-windows-i586.jar"&gt;&lt;strong&gt;&lt;font color="#5788af"&gt;jogl-natives-windows-i586.jar&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;font color="#5788af"&gt;&lt;/font&gt;&lt;/strong&gt; from &lt;a href="https://jogl.dev.java.net/"&gt;&lt;strong&gt;&lt;font color="#5788af"&gt;https://jogl.dev.java.net/&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;font color="#5788af"&gt;&lt;/font&gt;&lt;/strong&gt;. 
&lt;li&gt;Unpack jogl-natives-windows-i586.zip and put all the DLLs into the bin folder of the current Java runtime (JRE) folder (e.g. C:\Program Files\Java\jre1.5.0_07\bin). 
&lt;li&gt;Import the jogl.zip as an external archive to the current Java project. &lt;/ul&gt;It is recommended that at least the &lt;a href="https://jogl.dev.java.net/servlets/ProjectDocumentList?folderID=5178&amp;amp;expandFolder=5178&amp;amp;folderID=4649"&gt;&lt;strong&gt;&lt;font color="#5788af"&gt;JSR-231 beta 04&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;font color="#5788af"&gt;&lt;/font&gt;&lt;/strong&gt; Release should be used. The web version of the JOGL document can be accessed from &lt;a href="http://download.java.net/media/jogl/builds/nightly/javadoc_public/"&gt;&lt;strong&gt;&lt;font color="#5788af"&gt;here&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;font color="#5788af"&gt;&lt;/font&gt;&lt;/strong&gt;. 
&lt;h4&gt;A Jumpstart Code: Creating a GlobeControl Button Command to Test OpenGL Drawing&lt;/h4&gt;The code below show an implementation of a button command for the globe control. The GlobeDisplayEventsListener is added in the onCreate() to be able to call OpenGL. &lt;pre&gt;import java.io.IOException;

import com.esri.arcgis.geometry.IPoint;
import com.esri.arcgis.controls.BaseTool;
import com.esri.arcgis.controls.GlobeHookHelper;
import com.esri.arcgis.analyst3d.*;
import com.esri.arcgis.globecore.*;
import com.esri.arcgis.globecore.IGlobeDisplayEventsAdapter;
import com.esri.arcgis.globecore.IGlobeDisplayEventsBeforeDrawEvent;
import com.esri.arcgis.globecore.IGlobeDisplay;
import com.esri.arcgis.util.*;

import javax.media.opengl.GL;
import javax.media.opengl.glu.GLU;
import javax.media.opengl.GLDrawableFactory;
import javax.media.opengl.GLContext;

public class OGLDrawTool extends BaseTool {

  GlobeHookHelper hookHelper;

  // Default constructor
  public OGLDrawTool() {
    // Set various protected properties specified by BaseTool
    name = &amp;quot;CustomCommands_OGLDraw&amp;quot;;
    caption = &amp;quot;OGL Draw&amp;quot;;
    toolTip = &amp;quot;OGL Draw&amp;quot;;
    message = &amp;quot;OGL Draw&amp;quot;;
    category = &amp;quot;CustomCommands&amp;quot;; 
    enabled = true;
  }

  public void onCreate(Object obj) {
    try {
	hookHelper = new GlobeHookHelper();
	hookHelper.setHookByRef( obj );
	try {
          GlobeDisplay globeDisplay = (GlobeDisplay)hookHelper.getGlobeDisplay();
	  
          // Add the globe display events listener to be able to call OpenGL  		
          GlobeDisplayListener gdListener = new GlobeDisplayListener();
          globeDisplay.addIGlobeDisplayEventsListener(gdListener);
        } catch (Exception e) {
          e.printStackTrace();
        }
    } catch (IOException ex) {
	System.out.println(&amp;quot;Exception caught inside onCreate().&amp;quot;);
	throw new RuntimeException(ex);
    }
  }	
}
&lt;/pre&gt;
&lt;h4&gt;Implementing the IGlobeDisplayEvents and Calling OpenGL to Draw 3D Graphics on the GlobeControl&lt;/h4&gt;One can create a button command or a tool to draw some graphics on the globe. This can be done by implementing a listener for the IGlobeDisplayEvents. OpenGL functions can be called from the BeforeDraw() and AfterDraw() event handlers. JOGL provides classes that provide access to OpenGL commands. The class GLCanvas can be instatiated and the interface GL can be obained from an instance of the GLCanvas, which provides an OpenGL Context for rendering 3D graphics. The interface GL provides OpenGL functions similar to the OpenGL C-API. This approach is suitable in case one wants to create a JAVA canvas from scratch. In our case, ArcGIS Engine for JAVA provides the GlobeBean that wraps around the GlobeControl. The GlobeBean already provides a canvas and the GlobeControl provides OpenGL context. Creating another canvas from GLCanvas is unfavorable because this will introduce another canvas with another OpenGL context. JOGL provides a way to workaround this by using the GLDrawableFactory to create an external OpenGL context. See the sample code in the function beforeDraw() below. &lt;pre&gt;class GlobeDisplayListener extends IGlobeDisplayEventsAdapter {
  private GL gl = null;
  private GLUquadric qObj = null;
  private boolean bDisplayListCreated = false;
  private int displayList = 0;
  private GLU glu = null;
  private GLContext context = null;

  private void CreateDisplayList() {
    displayList = gl.glGenLists(1);
    gl.glNewList(displayList, GL.GL_COMPILE);
      gl.glBegin(GL.GL_LINES);
        gl.glColor3d(1.0, 0.0, 0.0);
        gl.glVertex3d(-1.2,0.0,0.0);
        gl.glVertex3d(1.2,0.0,0.0);
        gl.glColor3d(0.0, 1.0, 0.0);          
        gl.glVertex3d(0.0, -1.2, 0.0);
        gl.glVertex3d(0.0, 1.2, 0.0);
        gl.glColor3d(0.0, 0.0, 1.0);          
        gl.glVertex3d(0.0,0.0,-1.2);
        gl.glVertex3d(0.0,0.0,1.2);
      gl.glEnd();
    gl.glEndList();
    	
    bDisplayListCreated = true;
  }

  public boolean beforeDraw(IGlobeDisplayEventsBeforeDrawEvent e) {
    try {
      if (context == null) {
        // Tell JOGL that we are going to use our own OpenGL Context
        context = GLDrawableFactory.getFactory().createExternalGLContext();
      }
      context.makeCurrent();
      gl = context.getGL();
      if (glu == null) {
        glu = new GLU();
      }
      if (qObj == null) {
        qObj = glu.gluNewQuadric();
      }
      if (bDisplayListCreated == false) {
        CreateDisplayList();
      }
      gl.glPushMatrix();
        // Draw the x-y-z axis at the globe center
        gl.glTranslated(0.0, 0.0, 0.0);
        gl.glCallList(displayList);
      gl.glPopMatrix();
       
      gl.glPushMatrix();
        gl.glTranslated(0.7, 0.7, 0.7);
        // Set the sphere color to blue;
        gl.glColor3f(0.0f, 0.0f, 1.0f);
        glu.gluSphere(qObj, 0.10, 20, 20);
        // Rotate the axis and draw it at the center of the blue sphere
        gl.glRotated(45, 1.0, 0.0, 0.0);
        // Scale the axis down to half the original size
        gl.glScaled(0.5, 0.5, 0.5);
        gl.glCallList(displayList);
      gl.glPopMatrix();

      context.release();

    } catch (Exception e) {
      e.printStackTrace();
    }
    return false;
  }
}
&lt;/pre&gt;
&lt;h4&gt; &lt;/h4&gt;
&lt;p&gt;That's it for today. Hope this helps you get started with Java OpenGL and Globe Customization.&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-6170001750764485033&amp;page=RSS%3a+Enable+OpenGL+for+Java+Development&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=morakot1.spaces.live.com&amp;amp;GT1=morakot1"&gt;</description><category>Globe</category><comments>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!122.entry#comment</comments><guid isPermaLink="true">http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!122.entry</guid><pubDate>Thu, 17 May 2007 22:00:42 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://morakot1.spaces.live.com/blog/cns!AA5FC01906250657!122/comments/feed.rss</wfw:commentRss><wfw:comment>http://morakot1.spaces.live.com/Blog/cns!AA5FC01906250657!122.entry#comment</wfw:comment><dcterms:modified>2007-05-18T22:54:40Z</dcterms:modified></item><item><title>Custom List: Custom List</title><link>http://morakot1.spaces.live.com/Lists/cns!AA5FC01906250657!102</link><description>&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://mrrichie.spaces.live.com"&gt;Richie&amp;#39;s Space&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Richie&amp;#39;s Blog&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://www.mak.com&amp;#47;products&amp;#47;gis-to-sim.php"&gt;MAK GIS-to-SIM&lt;/a&gt;&lt;/p&gt;&lt;p&gt;M&amp;#196;K is developing GIS-to-SIM extension for ArcGIS for working with distributed simulation environments using protocols like DIS, HLA, TENA.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-6170001750764485033&amp;page=RSS%3a+Custom+List%3a+Custom+List&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=morakot1.spaces.live.com&amp;amp;GT1=morakot1"&gt;</description><guid isPermaLink="false">cns!AA5FC01906250657!102</guid><pubDate>Fri, 18 May 2007 04:33:03 GMT</pubDate><msn:type>list</msn:type><live:type>list</live:type><live:typelabel>List</live:typelabel><cf:itemRSS>http://morakot1.spaces.live.com/Lists/cns!AA5FC01906250657!102/feed.rss</cf:itemRSS><dcterms:modified>2007-05-18T04:33:03Z</dcterms:modified></item></channel></rss>