Archive for the 'Developer' Category

ADN Code Exchange



If you're developing using Insight3D or any of our components, I'm sure you've come across our developer network: ADN. One area of ADN that is gaining momentum is the Code Exchange, where AGI users and employees share code samples. Recently, I posted two Insight3D examples. A Point in Polygon Test example that shows how to determine if a point on the globe is inside a polygon on the globe. The other example, Drawing Shapes on the Globe, shows how to allow the user to draw polylines and polygons on the globe similar to 3D object editing in STK.

Here's a few screen shots:

Point in Polygon Test:

Drawing Shapes on the Globe:

New in AGI Components 2010 r4



We've just released AGI Components 2010 r4.  New Insight3D features include the cylinder triangulator, which computes cylinders for visualization with the solid primitive.

Download r4 from ADN.

New in AGI Components 2010 r1



The first AGI Components release for 2010 is now available on ADN.  This release includes the solid primitive:  a new primitive for visualizing solids such as ellipsoids and boxes, as shown below.

Ellipsoid

A new overview, available in our online help, explains how to use the solid primitive, including using visual cues such as the white silhouette edge and removal of back facing lines shown above.  The polyline and point batch primitive now have an optional outline with a unique size, color, and translucency.  This small feature adds a nice visual cue:

Polyline

Download AGI Components 2010 r1 from ADN and give these new features a try.

How to Orient a Model



In this entry, I'll explain how to orient a model primitive using its ReferenceFrame and Orientation properties.  We'll go through two examples.  The first one orients a launch pad model on the ground:

LaunchPadOrientation

The second example orients a satellite model in orbit:

SatelliteOrientations

More...

New in AGI Components 2009 r7: Primitives in any Reference Frame



I'm excited to announce that we just released 2009 r7, which includes the ability to define primitives in any reference frame.  Previously, primitives could only be defined in a central body's fixed or inertial frame.   Now, instead of converting from the reference frame of your data to the primitive's reference frame, you can just set the primitive's ReferenceFrame property to the same reference frame of your data.  Doing this is almost always more efficient and easier to code!  What's even better is if the reference frame varies with time, the primitive will move during animation automatically.

Facility

More...

AGI Components 2009r6 is Out



Download the latest version of Insight3D, part of AGI Components. Check out what is new and fixed.

Insight3D and Qt



Qt is a commonly used cross-platform application development framework. If you are building a Qt application for Windows, you can easily embed Insight3D in your application using the Qt Windows Forms Interop Framework.
More...

Getting Started with Insight3D on the Web



At the 2009 AGI User's Conference, we demonstrated new technology that allows Insight3D applications to be deployed over the web.  While we are rolling out the new technology, you can still get started building a web application with a version of Insight3D that is available today.  Because Insight3D is a .NET library, it is easy to develop and deploy your applications over the web so that they can be run in virtually any web browser on the Windows platform, and even in browser-enabled applications, like Google Earth. In the first part of this blog series, I’ll take you through the basics of getting started developing an Insight3D web application for deployment on your intranet.

clip_image002

More...

Favorite Features: Display Conditions



Hi, my name is Alex Rybak.  I'm currently an intern at AGI, and I have been working on the Insight3D team ever since I started here.  I've had an interest in 3D graphics for a while, and working on Insight3D has given me a lot of opportunities to explore that area.  Aside from my internship here, I am a full-time student at Drexel University, where I am studying for both a B.S. and an M.S. degree in Computer Science.

Introduction

Display conditions are a very useful Insight3D feature that allow the user to specify when a primitive, globe overlay, or screen overlay is rendered.  There are a number of different types of display conditions that can be used, and what's even better is that they can be combined and used together to create fancy rules for when to display an object.  In this article, I will show some example uses of display conditions.

To start off, let's say we want to display a circle on the Earth around New York City when the camera is at an altitude of one million meters or less.  For this, we assign the AltitudeDisplayCondition (which becomes active when the camera's altitude above the surface is within a specified interval) to a PolyLinePrimitive.   Here is the code:

CentralBody earth = CentralBodiesFacet.GetFromContext().GetByName("Earth");
Cartographic newYork = new Cartographic(Trig.DegreesToRadians(-74), Trig.DegreesToRadians(40.75), 0);
SurfaceShapesResult shape = SurfaceShapes.ComputeCircleCartographic(earth, newYork, 10000);

PolylinePrimitive line = new PolylinePrimitive(shape.PolylineType, SetHint.Infrequent);
line.Set(shape.Positions);
line.Color = Color.White;

AltitudeDisplayCondition condition = new AltitudeDisplayCondition(0, 1000000);
line.DisplayCondition = condition;

SceneManager.Primitives.Add(line);

As you can see in the images below, the circle is visible only when the camera is below this altitude.

cityclosecityfar

More...

Matlab with Insight3D



Over at the Dynamic Geometry Library Blog, Ted Driver explains how to use Insight3D and other AGI Components in Matlab.