The alpha version of Point Break is now complete. For an alpha, it is packed with features, documentation, and examples. I also expect it is more stable then most alpha software; well over 20,000 lines of unit test code have been hammering on it several times a day for months. If you're interested in trying out the alpha, contact Tom Urie at PointBreakAlpha@agi.com.
Before I provide an overview of the major features, I'll show two example projects that ship with the SDK. We’ve blogged a lot about the data structures and algorithms deep inside Point Break, but we've rarely shown it in action – these examples will change that. Since we know there's no better way to learn an API than by example, we've provided the HowTo project shown in the video below.
View the higher quality .avi (31.6 meg) if you want to be able to read the text in the video.
This example presents many of the component's capabilities organized by namespace and object. When the user clicks on a task, the 3D window is immediately updated. In addition, the code used to create the visualization is shown in the code view for easy copy and paste. The HowTo actually reads its own source code to display the code.
Those who attended last year's User Exchange may recognize the following images from the "10,000 satellites demo" - a small C# application that uses DGL's SGP4 propagator to propagate and compute access for 10,000 satellites, and uses Point Break for visualization. Besides showing something that is difficult to do in STK, the application provides an example of using DGL and Point Break together.
Now that you've seen the examples, I'll provide a brief overview of the major features: globe inlays, primitives, picking, camera control, and imaging.
Globe Inlays
Inlays are used to render and organize terrain and imagery on a globe. Inlays can be layered and turned on/off based on the viewer's altitude or current animation time. Both JPEG 2000 (.jp2) and AGI’s image format (.pdttx) are supported. For terrain, AGI's terrain format (.pdtt) is supported.
Primitives
As you may have read in an earlier blog, primitives form the building blocks of the 3D scene. Point Break provides a wide array of primitives, such as simple primitives to draw points and polylines to more advanced primitives for drawing entire models or polygons that conform to terrain. Primitives are optimized for both static and dynamic data, as primitives are commonly positioned and oriented based on computations performed with DGL that change over time. Primitives can be turned on/off based on the viewer's altitude, distance to viewer, or current animation time. Composite primitives group primitives together to create hierarchies of primitives for efficient rendering, layering, and aggregation/deaggregation.

Picking
Picking makes 3D applications interactive; allowing users to select and interact with objects in the 3D scene. In a previous blog, I described the picking algorithm we implemented for Point Break. I also described three common uses of picking that are now supported in the alpha: normal, roll-over, and drill picking.
The following video shows an example of roll-over picking; as the mouse moves across the window, the model under the cursor changes color.
Camera
Point Break's 3D control automatically provides rotating and zooming in a 3D scene using the mouse. The camera object provides full control over the viewer's position and orientation. When the camera is initialized with DGL's point or vector objects, the camera automatically moves when the point or vector change. The camera also provides higher level methods, such as the ability to view an entire central body or zoom to a rectangular extent on the globe. The camera is used to set view parameters like the field of view, near plane distance, and far plane distance.
Imaging
Point Break provides flexible image processing interfaces and built-in conditioners to dynamically perform many image processing tasks, such as adjusting brightness, contrast, and color levels, performing gamma correction, extracting and reordering components, and doing geometric transformations. More generic conditioners, such as the convolution conditioner, can be used to achieve a large number of effects, including sharpening and edge or gradient enhancement. Point Break supports reading several image formats: BMP, ECW, IMG, JP2, NTF, NITF, PNG, SID, TIF, TIFF, JPG, JPEG, PPM, PGM, CLDS, and TGA. Additionally, an image can be loaded directly from memory. Images can be conditioned and are commonly applied to primitives as textures. Both texture generation and caching, with synchronous and asynchronous reading of images from various sources, including FTP and HTTP, are supported.

Satellite imagery before conditioning

After conditioning
In Closing
If you're interested in the alpha, contact Tom Urie at PointBreakAlpha@agi.com. He doesn't bite, I swear. For those using the alpha, don't be shy with your feedback. We plan on spending significant time listening and making improvements based on your input.




Congrats.