About the Globe Fly tool Sample
[C#]
PointZ.cs
using System;
using System.Collections.Generic;
using System.Text;
namespace GlobeFlyTool
{
public class PointZ
{
public double x;
public double y;
public double z;
public PointZ()
{
x = 0;
y = 0;
z = 0;
}
public PointZ(double x, double y, double z)
{
this.x = x;
this.y = y;
this.z = z;
}
public double Norm()
{
double val = Math.Sqrt((this.x * this.x) +
(this.y * this.y) +
(this.z * this.z));
return val;
}
public static PointZ operator +(PointZ p1, PointZ p2)
{
PointZ newPoint = new PointZ();
newPoint.x = p1.x + p2.x;
newPoint.y = p1.y + p2.y;
newPoint.z = p1.z + p2.z;
return newPoint;
}
public static PointZ operator-(PointZ p1, PointZ p2)
{
PointZ newPoint = new PointZ();
newPoint.x = p1.x - p2.x;
newPoint.y = p1.y - p2.y;
newPoint.z = p1.z - p2.z;
return newPoint;
}
public static PointZ operator*(PointZ p, double factor)
{
PointZ newPoint = new PointZ(factor * p.x, factor * p.y, factor * p.z);
return newPoint;
}
}
}
[Visual Basic .NET]
PointZ.vb
Imports Microsoft.VisualBasic Imports System Imports System.Collections.Generic Imports System.Text Namespace GlobeFlyTool Public Class PointZ Public x As Double Public y As Double Public z As Double Public Sub New() x = 0 y = 0 z = 0 End Sub Public Sub New(ByVal x As Double, ByVal y As Double, ByVal z As Double) Me.x = x Me.y = y Me.z = z End Sub Public Function Norm() As Double Dim val As Double = Math.Sqrt((Me.x * Me.x) + (Me.y * Me.y) + (Me.z * Me.z)) Return val End Function Public Shared Operator +(ByVal p1 As PointZ, ByVal p2 As PointZ) As PointZ Dim newPoint As New PointZ() newPoint.x = p1.x + p2.x newPoint.y = p1.y + p2.y newPoint.z = p1.z + p2.z Return newPoint End Operator Public Shared Operator -(ByVal p1 As PointZ, ByVal p2 As PointZ) As PointZ Dim newPoint As New PointZ() newPoint.x = p1.x - p2.x newPoint.y = p1.y - p2.y newPoint.z = p1.z - p2.z Return newPoint End Operator Public Shared Operator *(ByVal p As PointZ, ByVal factor As Double) As PointZ Dim newPoint As New PointZ(factor * p.x, factor * p.y, factor * p.z) Return newPoint End Operator End Class End Namespace