About the Creating a toolbar of globe tools Sample
[C#]
PolygonGeometry.cs
using ESRI.ArcGIS.Geometry;
using System;
namespace GlobeGraphicsToolbar
{
public class PolygonGeometry
{
private IGeometry _geometry;
public PolygonGeometry(ISpatialReference spatialReference)
{
_geometry = GetGeometry(spatialReference);
}
private IGeometry GetGeometry(ISpatialReference spatialReference)
{
IGeometry geometry;
IPolygon polygon = new PolygonClass();
polygon.SpatialReference = spatialReference;
geometry = polygon as IGeometry;
MakeZAware(geometry);
return geometry;
}
private void MakeZAware(IGeometry geometry)
{
IZAware zAware = geometry as IZAware;
zAware.ZAware = true;
}
public void AddPoint(IPoint point)
{
IPointCollection pointCollection = _geometry as IPointCollection;
object missing = Type.Missing;
pointCollection.AddPoint(point, ref missing, ref missing);
}
public void Close()
{
IPolygon polygon = _geometry as IPolygon;
polygon.Close();
}
public IGeometry Geometry
{
get
{
return _geometry;
}
}
public int PointCount
{
get
{
int pointCount;
IPointCollection pointCollection = _geometry as IPointCollection;
pointCount = pointCollection.PointCount;
return pointCount;
}
}
}
}
[Visual Basic .NET]
PolygonGeometry.vb
Imports Microsoft.VisualBasic
Imports ESRI.ArcGIS.Geometry
Imports System
Namespace GlobeGraphicsToolbar
Public Class PolygonGeometry
Private _geometry As IGeometry
Public Sub New(ByVal spatialReference As ISpatialReference)
_geometry = GetGeometry(spatialReference)
End Sub
Private Function GetGeometry(ByVal spatialReference As ISpatialReference) As IGeometry
Dim geometry As IGeometry
Dim polygon As IPolygon = New PolygonClass()
polygon.SpatialReference = spatialReference
geometry = TryCast(polygon, IGeometry)
MakeZAware(geometry)
Return geometry
End Function
Private Sub MakeZAware(ByVal geometry As IGeometry)
Dim zAware As IZAware = TryCast(geometry, IZAware)
zAware.ZAware = True
End Sub
Public Sub AddPoint(ByVal point As IPoint)
Dim pointCollection As IPointCollection = TryCast(_geometry, IPointCollection)
Dim missing As Object = Type.Missing
pointCollection.AddPoint(point, missing, missing)
End Sub
Public Sub Close()
Dim polygon As IPolygon = TryCast(_geometry, IPolygon)
polygon.Close()
End Sub
Public ReadOnly Property Geometry() As IGeometry
Get
Return _geometry
End Get
End Property
Public ReadOnly Property PointCount() As Integer
Get
Dim numPoints As Integer
Dim pointCollection As IPointCollection = TryCast(_geometry, IPointCollection)
numPoints = pointCollection.PointCount
Return numPoints
End Get
End Property
End Class
End Namespace