AGI Components with Insight3D Alpha 2008 r8
Primitives

Primitives form the building blocks of a 3D scene. Primitives are initialized with information, such as position and orientation, which can then change over time. Primitives take care of all the 3D rendering and optimizations, which allows developers to focus on their application code.

Before reading about individual primitives, review the following concepts:

Topic Description
Initialization All primitive provide one or more Initialize methods that must be called before the primitive can be rendered.
Primitive Manager Once initialized, primitives are added to the primitive manager before they are rendered.
Color Most primitives provide standard properties to set their color and translucency.

Primitives are in the AGI.Graphics.Primitives namespace. Insight3D provides the following primitives:

Topic Description
Model Support for the industry standard COLLADA format and AGI's MDL format.
Marker 2D image that always faces the viewer and remains a constant pixel size. Markers are commonly used to visualize a large number of objects moving in real-time.
Polyline Renders lines on the ground or in space. Polylines are used to visualize many things including satellite orbits, country borders, and range rings.
Triangle Mesh The rendering workhorse for things such as states or countries on the globe, terrain and imagery extents, ground ellipses, and walls. It can also render arbitrary triangle meshes.
Surface Mesh A triangle mesh variant that supports textures and conforms to terrain on the globe.
Point Batch A group of points with the same pixel size but potentially different colors. The Point Batch is commonly used to visualize waypoints or locations, such as cities when the viewer is at a distance.
Text Batch A group of strings rendered with the same font. Each string can have a different position, color, horizontal origin, vertical origin, pixel offset, and eye offset.
Display Condition A property available on all primitives used to limit when a primitive is displayed. This can be based on the distance from the viewer to the primitive, the distance from the viewer to a point, the viewer's altitude, or the current time. These fine grain conditions can be combined using Boolean logic with a composite, that is, a condition of conditions.
Composite Primitive Groups primitives together to create hierarchies of primitives for efficient rendering, layering, and aggregation/deaggregation.

The following topic addresses dynamically updating primitives.

Topic Description
Dynamic Updates Use Set and SetPartial to dynamically update a primitive's position or vertices.