Description
Renders a triangle mesh in the 3D scene.
Examples of triangle meshes includes polygons on the globe (e.g.
states or countries), terrain and imagery extents, ellipses, and
extrusions.
Object Model
Public Methods
Set |
Defines the triangle mesh
using an indexed triangle list specified by positions, normals, and
indices. The mesh is rendered in the primitive's Reference
Frame. |
SetTriangulator |
Defines the triangle mesh
using the specified triangulator. The mesh is rendered in the
primitive's Reference
Frame. |
SetWithOptionalParameters |
Defines the triangle mesh
using an indexed triangle list specified by positions, normals,
indices, and optionalParameters. The mesh is rendered in the
primitive's Reference
Frame. |
Public Properties
Example
Draw a filled STK
area target
[C#] |
Copy Code
|
IAgStkGraphicsSceneManager manager = ((IAgScenario)root.CurrentScenario).SceneManager;
IAgStkGraphicsSurfaceTriangulatorResult triangles =
manager.Initializers.SurfacePolygonTriangulator.Compute("Earth", ref positions);
IAgStkGraphicsTriangleMeshPrimitive mesh = manager.Initializers.TriangleMeshPrimitive.Initialize();
mesh.SetTriangulator((IAgStkGraphicsTriangulatorResult)triangles);
((IAgStkGraphicsPrimitive)mesh).Color = Color.Red;
manager.Primitives.Add((IAgStkGraphicsPrimitive)mesh);
|
|
Draw a filled circle
on the globe
[C#] |
Copy Code
|
IAgStkGraphicsSceneManager manager = ((IAgScenario)root.CurrentScenario).SceneManager;
Array center = new object[] { 39.88, -75.25, 0.0 };
IAgStkGraphicsSurfaceShapesResult shape = manager.Initializers.SurfaceShapes.ComputeCircleCartographic("Earth", ref center, 10000);
Array positions = shape.Positions;
IAgStkGraphicsSurfaceTriangulatorResult triangles = manager.Initializers.SurfacePolygonTriangulator.Compute("Earth", ref positions);
IAgStkGraphicsTriangleMeshPrimitive mesh = manager.Initializers.TriangleMeshPrimitive.Initialize();
mesh.SetTriangulator((IAgStkGraphicsTriangulatorResult)triangles);
((IAgStkGraphicsPrimitive)mesh).Color = Color.White;
((IAgStkGraphicsPrimitive)mesh).Translucency = 0.5f;
manager.Primitives.Add((IAgStkGraphicsPrimitive)mesh);
|
|
Draw a filled ellipse
on the globe
[C#] |
Copy Code
|
IAgStkGraphicsSceneManager manager = ((IAgScenario)root.CurrentScenario).SceneManager;
Array center = new object[] { 38.85, -77.04, 3000.0 };
IAgStkGraphicsSurfaceShapesResult shape = manager.Initializers.SurfaceShapes.ComputeEllipseCartographic(
"Earth", ref center, 45000, 30000, 45);
Array positions = shape.Positions;
IAgStkGraphicsSurfaceTriangulatorResult triangles = manager.Initializers.SurfacePolygonTriangulator.Compute(
"Earth", ref positions);
IAgStkGraphicsTriangleMeshPrimitive mesh = manager.Initializers.TriangleMeshPrimitive.Initialize();
mesh.SetTriangulator((IAgStkGraphicsTriangulatorResult)triangles);
((IAgStkGraphicsPrimitive)mesh).Color = Color.Cyan;
manager.Primitives.Add((IAgStkGraphicsPrimitive)mesh);
|
|
Draw a filled
rectangular extent on the globe
[C#] |
Copy Code
|
IAgStkGraphicsSceneManager manager = ((IAgScenario)root.CurrentScenario).SceneManager;
Array extent = new object[]
{
-94, 29,
-89, 33
};
IAgStkGraphicsSurfaceTriangulatorResult triangles = manager.Initializers.SurfaceExtentTriangulator.ComputeSimple(
"Earth", ref extent);
IAgStkGraphicsTriangleMeshPrimitive mesh = manager.Initializers.TriangleMeshPrimitive.Initialize();
mesh.SetTriangulator((IAgStkGraphicsTriangulatorResult)triangles);
((IAgStkGraphicsPrimitive)mesh).Color = Color.Salmon;
mesh.Lighting = false;
manager.Primitives.Add((IAgStkGraphicsPrimitive)mesh);
|
|
Draw an extrusion
around a STK area target
[C#] |
Copy Code
|
IAgStkGraphicsSceneManager manager = ((IAgScenario)root.CurrentScenario).SceneManager;
IAgStkGraphicsExtrudedPolylineTriangulatorResult triangles =
manager.Initializers.ExtrudedPolylineTriangulator.ComputeWithAltitudes(
"Earth", ref positions, 10000, 25000);
IAgStkGraphicsTriangleMeshPrimitive mesh = manager.Initializers.TriangleMeshPrimitive.Initialize();
mesh.SetTriangulator((IAgStkGraphicsTriangulatorResult)triangles);
((IAgStkGraphicsPrimitive)mesh).Color = Color.Red;
((IAgStkGraphicsPrimitive)mesh).Translucency = 0.4f;
manager.Primitives.Add((IAgStkGraphicsPrimitive)mesh);
|
|
Draw a filled polygon
with a hole on the globe
[C#] |
Copy Code
|
IAgStkGraphicsSceneManager manager = ((IAgScenario)root.CurrentScenario).SceneManager;
IAgStkGraphicsSurfaceTriangulatorResult triangles = manager.Initializers.SurfacePolygonTriangulator.ComputeWithHole(
"Earth", ref positions, ref holePositions);
IAgStkGraphicsTriangleMeshPrimitive mesh = manager.Initializers.TriangleMeshPrimitive.Initialize();
mesh.SetTriangulator((IAgStkGraphicsTriangulatorResult)triangles);
((IAgStkGraphicsPrimitive)mesh).Color = Color.Gray;
((IAgStkGraphicsPrimitive)mesh).Translucency = 0.5f;
manager.Primitives.Add((IAgStkGraphicsPrimitive)mesh);
IAgStkGraphicsPolylinePrimitive boundaryLine = manager.Initializers.PolylinePrimitive.Initialize();
Array boundaryPositionsArray = triangles.BoundaryPositions;
boundaryLine.Set(ref boundaryPositionsArray);
((IAgStkGraphicsPrimitive)boundaryLine).Color = Color.Red;
boundaryLine.Width = 2;
manager.Primitives.Add((IAgStkGraphicsPrimitive)boundaryLine);
IAgStkGraphicsPolylinePrimitive holeLine = manager.Initializers.PolylinePrimitive.Initialize();
holeLine.Set(ref holePositions);
((IAgStkGraphicsPrimitive)holeLine).Color = Color.Red;
holeLine.Width = 2;
manager.Primitives.Add((IAgStkGraphicsPrimitive)holeLine);
|
|
Draw a filled STK
area target
[Visual Basic .NET] |
Copy Code
|
Dim manager As
IAgStkGraphicsSceneManager = DirectCast(root.CurrentScenario,
IAgScenario).SceneManager
Dim triangles As IAgStkGraphicsSurfaceTriangulatorResult =
manager.Initializers.SurfacePolygonTriangulator.Compute("Earth",
positions)
Dim mesh As IAgStkGraphicsTriangleMeshPrimitive =
manager.Initializers.TriangleMeshPrimitive.Initialize()
mesh.SetTriangulator(DirectCast(triangles,
IAgStkGraphicsTriangulatorResult))
DirectCast(mesh, IAgStkGraphicsPrimitive).Color = Color.Red
manager.Primitives.Add(DirectCast(mesh,
IAgStkGraphicsPrimitive))
|
|
Draw a filled circle
on the globe
[Visual Basic .NET] |
Copy Code
|
Dim manager As
IAgStkGraphicsSceneManager = DirectCast(root.CurrentScenario,
IAgScenario).SceneManager
Dim center As Array =
New Object() {39.88, -75.25, 0.0}
Dim shape As IAgStkGraphicsSurfaceShapesResult =
manager.Initializers.SurfaceShapes.ComputeCircleCartographic("Earth",
center, 10000)
Dim positions As Array =
shape.Positions
Dim triangles As IAgStkGraphicsSurfaceTriangulatorResult =
manager.Initializers.SurfacePolygonTriangulator.Compute("Earth",
positions)
Dim mesh As IAgStkGraphicsTriangleMeshPrimitive =
manager.Initializers.TriangleMeshPrimitive.Initialize()
mesh.SetTriangulator(DirectCast(triangles,
IAgStkGraphicsTriangulatorResult))
DirectCast(mesh, IAgStkGraphicsPrimitive).Color = Color.White
DirectCast(mesh, IAgStkGraphicsPrimitive).Translucency = 0.5F
manager.Primitives.Add(DirectCast(mesh,
IAgStkGraphicsPrimitive))
|
|
Draw a filled ellipse
on the globe
[Visual Basic .NET] |
Copy Code
|
Dim manager As
IAgStkGraphicsSceneManager = DirectCast(root.CurrentScenario,
IAgScenario).SceneManager
Dim washingtonDC As Array =
New Object() {38.85, -77.04, 3000.0}
Dim shape As IAgStkGraphicsSurfaceShapesResult =
manager.Initializers.SurfaceShapes.ComputeEllipseCartographic("Earth",
washingtonDC, 45000, 30000, 45)
Dim positions As Array =
shape.Positions
Dim triangles As IAgStkGraphicsSurfaceTriangulatorResult =
manager.Initializers.SurfacePolygonTriangulator.Compute("Earth",
positions)
Dim mesh As IAgStkGraphicsTriangleMeshPrimitive =
manager.Initializers.TriangleMeshPrimitive.Initialize()
mesh.SetTriangulator(DirectCast(triangles,
IAgStkGraphicsTriangulatorResult))
DirectCast(mesh, IAgStkGraphicsPrimitive).Color = Color.Cyan
manager.Primitives.Add(DirectCast(mesh,
IAgStkGraphicsPrimitive))
|
|
Draw a filled
rectangular extent on the globe
[Visual Basic .NET] |
Copy Code
|
Dim manager As
IAgStkGraphicsSceneManager = DirectCast(root.CurrentScenario,
IAgScenario).SceneManager
Dim extent As Array =
New Object() {-94, 29, -89, 33}
Dim triangles As IAgStkGraphicsSurfaceTriangulatorResult =
manager.Initializers.SurfaceExtentTriangulator.ComputeSimple("Earth",
extent)
Dim mesh As IAgStkGraphicsTriangleMeshPrimitive =
manager.Initializers.TriangleMeshPrimitive.Initialize()
mesh.SetTriangulator(DirectCast(triangles,
IAgStkGraphicsTriangulatorResult))
DirectCast(mesh, IAgStkGraphicsPrimitive).Color = Color.Salmon
mesh.Lighting = False
manager.Primitives.Add(DirectCast(mesh,
IAgStkGraphicsPrimitive))
|
|
Draw an extrusion
around a STK area target
[Visual Basic .NET] |
Copy Code
|
Dim manager As
IAgStkGraphicsSceneManager = DirectCast(root.CurrentScenario,
IAgScenario).SceneManager
Dim triangles As
IAgStkGraphicsExtrudedPolylineTriangulatorResult =
manager.Initializers.ExtrudedPolylineTriangulator.ComputeWithAltitudes("Earth",
positions, 10000, 25000)
Dim mesh As IAgStkGraphicsTriangleMeshPrimitive =
manager.Initializers.TriangleMeshPrimitive.Initialize()
mesh.SetTriangulator(DirectCast(triangles,
IAgStkGraphicsTriangulatorResult))
DirectCast(mesh, IAgStkGraphicsPrimitive).Color = Color.Red
DirectCast(mesh, IAgStkGraphicsPrimitive).Translucency = 0.4F
manager.Primitives.Add(DirectCast(mesh,
IAgStkGraphicsPrimitive))
|
|
Draw a filled polygon
with a hole on the globe
[Visual Basic .NET] |
Copy Code
|
Dim manager As
IAgStkGraphicsSceneManager = DirectCast(root.CurrentScenario,
IAgScenario).SceneManager
Dim triangles As IAgStkGraphicsSurfaceTriangulatorResult =
manager.Initializers.SurfacePolygonTriangulator.ComputeWithHole("Earth",
positions, holePositions)
Dim mesh As IAgStkGraphicsTriangleMeshPrimitive =
manager.Initializers.TriangleMeshPrimitive.Initialize()
mesh.SetTriangulator(DirectCast(triangles,
IAgStkGraphicsTriangulatorResult))
DirectCast(mesh, IAgStkGraphicsPrimitive).Color = Color.Gray
DirectCast(mesh, IAgStkGraphicsPrimitive).Translucency = 0.5F
manager.Primitives.Add(DirectCast(mesh,
IAgStkGraphicsPrimitive))
Dim boundaryLine As IAgStkGraphicsPolylinePrimitive =
manager.Initializers.PolylinePrimitive.Initialize()
Dim boundaryPositionsArray
As Array
= triangles.BoundaryPositions
boundaryLine.Set(boundaryPositionsArray)
DirectCast(boundaryLine, IAgStkGraphicsPrimitive).Color =
Color.Red
boundaryLine.Width = 2
manager.Primitives.Add(DirectCast(boundaryLine,
IAgStkGraphicsPrimitive))
Dim holeLine As IAgStkGraphicsPolylinePrimitive =
manager.Initializers.PolylinePrimitive.Initialize()
holeLine.Set(holePositions)
DirectCast(holeLine, IAgStkGraphicsPrimitive).Color = Color.Red
holeLine.Width = 2
manager.Primitives.Add(DirectCast(holeLine,
IAgStkGraphicsPrimitive))
|
|
See Also
CoClasses that Implement
IAgStkGraphicsTriangleMeshPrimitive