AGI STK Objects 11 Send comments on this topic.
Isolate Method (IAgStkObjectRoot)
See Also  Example





Description

Mutually isolates unit preference settings in the current instance from those in other instances of the root.

Syntax

[Visual Basic .NET]
Public Sub Isolate() 

[C#]
public void Isolate();

[Managed C++]
public: void Isolate();

[Java]
public  isolate();

[Unmanaged C++]
public: HRESULT Isolate();

Example

Isolate Unit Preferences when using multiple IAgStkObjectRoot objects
[C#] Copy Code
// First root configured to use km 
IAgStkObjectRoot root1 = new AgStkObjectRootClass(); 
root1.UnitPreferences.SetCurrentUnit("Distance""km"); 
 
// Second root configured to use miles 
IAgStkObjectRoot root2 = new AgStkObjectRootClass(); 
root2.Isolate(); 
root2.UnitPreferences.SetCurrentUnit("Distance""mi"); 
 
// Create new scenario and ship object 
// Close current scenario 
if (root1.CurrentScenario != null

    root1.CloseScenario(); 

root1.NewScenario("Test"); 
root1.CurrentScenario.Children.New(AgESTKObjectType.eShip, "Ship1"); 
 
// Obtain references to the ship object from each root 
IAgShip shipFromRoot1 = root1.GetObjectFromPath("Ship/Ship1"as IAgShip; 
IAgShip shipFromRoot2 = root2.GetObjectFromPath("Ship/Ship1"as IAgShip; 
 
shipFromRoot1.SetRouteType(AgEVePropagatorType.ePropagatorGreatArc); 
 
IAgVePropagatorGreatArc greatArcFromRoot1 = shipFromRoot1.Route as IAgVePropagatorGreatArc; 
IAgVePropagatorGreatArc greatArcFromRoot2 = shipFromRoot2.Route as IAgVePropagatorGreatArc; 
 
IAgVeWaypointsElement waypointsFromRoot1 = greatArcFromRoot1.Waypoints.Add(); 
 
waypointsFromRoot1.Altitude = 1// 1 km 
 
IAgVeWaypointsElement waypointsFromRoot2 = greatArcFromRoot2.Waypoints.Add(); 
 
waypointsFromRoot2.Altitude = 1// 1 mile 
 
greatArcFromRoot1.Propagate(); 
 
int i = 1
foreach (IAgVeWaypointsElement wpt in greatArcFromRoot1.Waypoints) 

    Console.WriteLine("Point #{0} Altitude {1} {2}", i, wpt.Altitude, root1.UnitPreferences.GetCurrentUnitAbbrv("Distance")); 
    ++i; 

Console.WriteLine(); 
 
//Sample Output 
//Point #1 Altitude 1 km 
//Point #2 Altitude 1.609344 km 
 
i = 1
foreach (IAgVeWaypointsElement wpt in greatArcFromRoot2.Waypoints) 

    Console.WriteLine("Point #{0} Altitude {1} {2}", i, wpt.Altitude, root2.UnitPreferences.GetCurrentUnitAbbrv("Distance")); 
    ++i; 

 
//Sample Output 
//Point #1 Altitude 0.621371192237334 mi 
//Point #2 Altitude 1 mi 
 
root1.CloseScenario(); 
 

Isolate Unit Preferences when using multiple IAgStkObjectRoot objects
[Visual Basic .NET] Copy Code
' First root configured to use km
Dim root1 As IAgStkObjectRoot = New AgStkObjectRootClass()
root1.UnitPreferences.SetCurrentUnit("Distance", "km")

' Second root configured to use miles
Dim root2 As IAgStkObjectRoot = New AgStkObjectRootClass()
root2.Isolate()
root2.UnitPreferences.SetCurrentUnit("Distance", "mi")

' Create new scenario and ship object
' Close current scenario
If root1.CurrentScenario IsNot Nothing Then
    root1.CloseScenario()
End If
root1.NewScenario("Test")
root1.CurrentScenario.Children.[New](AgESTKObjectType.eShip, "Ship1")

' Obtain references to the ship object from each root
Dim shipFromRoot1 As IAgShip = TryCast(root1.GetObjectFromPath("Ship/Ship1"), IAgShip)
Dim shipFromRoot2 As IAgShip = TryCast(root2.GetObjectFromPath("Ship/Ship1"), IAgShip)

shipFromRoot1.SetRouteType(AgEVePropagatorType.ePropagatorGreatArc)

Dim greatArcFromRoot1 As IAgVePropagatorGreatArc = TryCast(shipFromRoot1.Route, IAgVePropagatorGreatArc)
Dim greatArcFromRoot2 As IAgVePropagatorGreatArc = TryCast(shipFromRoot2.Route, IAgVePropagatorGreatArc)

Dim waypointsFromRoot1 As IAgVeWaypointsElement = greatArcFromRoot1.Waypoints.Add()

waypointsFromRoot1.Altitude = 1
' 1 km
Dim waypointsFromRoot2 As IAgVeWaypointsElement = greatArcFromRoot2.Waypoints.Add()

waypointsFromRoot2.Altitude = 1
' 1 mile
greatArcFromRoot1.Propagate()

Dim i As Integer = 1
For Each wpt As IAgVeWaypointsElement In greatArcFromRoot1.Waypoints
    Console.WriteLine("Point #{0} Altitude {1} {2}", i, wpt.Altitude, root1.UnitPreferences.GetCurrentUnitAbbrv("Distance"))
    System.Threading.Interlocked.Increment(i)
Next
Console.WriteLine()

'Sample Output
'Point #1 Altitude 1 km
'Point #2 Altitude 1.609344 km

i = 1
For Each wpt As IAgVeWaypointsElement In greatArcFromRoot2.Waypoints
    Console.WriteLine("Point #{0} Altitude {1} {2}", i, wpt.Altitude, root2.UnitPreferences.GetCurrentUnitAbbrv("Distance"))
    System.Threading.Interlocked.Increment(i)
Next

'Sample Output
'Point #1 Altitude 0.621371192237334 mi
'Point #2 Altitude 1 mi

root1.CloseScenario()

See Also

© 2016 Analytical Graphics, Inc. All Rights Reserved.

STK Programming Interface 11.0.1