Description
The factory creates collections of event
interval lists.
Object Model
Public Methods
Create |
Create and register an
event interval collection using specified name, description, and
type. |
CreateEventIntervalCollectionLighting |
Create an event interval
collection defined by computing sunlight, penumbra and umbra
intervals as seen at specified location using specified selection
of eclipsing bodies. |
CreateEventIntervalCollectionSatisfaction |
Create an event interval
collection containing intervals during which condition set is
satisfied. |
CreateEventIntervalCollectionSignaled |
Create an event interval
collection recorded at target clock location by performing signal
transmission of original interval list collection between base and
target clock locations. |
IsTypeSupported |
Returns whether the
specified type is supported. |
Example
Create and configure
signaled event interval collection.
[C#] |
Copy Code
|
IAgCrdnProvider satelliteVgtProvider = stkRoot.GetObjectFromPath("Satellite/LEO").Vgt;
IAgCrdnProvider aircraftVgtProvider = stkRoot.GetObjectFromPath("Aircraft/UAV").Vgt;
IAgCrdnEventIntervalCollection intervalCollection = satelliteVgtProvider.EventIntervalCollections.Factory.CreateEventIntervalCollectionSignaled("MyIntervalCollectionSignaled", "MyDescription");
IAgCrdnEventIntervalCollectionSignaled asCollectionSignaled = intervalCollection as IAgCrdnEventIntervalCollectionSignaled;
asCollectionSignaled.OriginalCollection = aircraftVgtProvider.EventIntervalCollections["LightingIntervals"];
asCollectionSignaled.BaseClockLocation = satelliteVgtProvider.Points["Center"];
asCollectionSignaled.TargetClockLocation = aircraftVgtProvider.Points["Center"];
asCollectionSignaled.SignalSense = AgECrdnSignalSense.eCrdnSignalSenseTransmit;
IAgCrdnSignalDelayBasic basicSignalDelay = asCollectionSignaled.SignalDelay as IAgCrdnSignalDelayBasic;
basicSignalDelay.SpeedOption = AgECrdnSpeedOptions.eCrdnLightTransmissionSpeed;
basicSignalDelay.TimeDelayConvergence = 0.002;
IAgCrdnIntervalsVectorResult intervalResult = intervalCollection.FindIntervalCollection();
if (intervalResult.IsValid)
{
foreach (IAgCrdnIntervalCollection intervals in intervalResult.IntervalCollections)
{
foreach (IAgCrdnInterval interval in intervals)
{
Console.WriteLine("Start: " + interval.Start);
Console.WriteLine("Start: " + interval.Stop);
}
}
}
|
|
Create and configure
lighting event interval collection.
[C#] |
Copy Code
|
IAgCrdnEventIntervalCollection intervalCollection = provider.EventIntervalCollections.Factory.CreateEventIntervalCollectionLighting("MyIntervalCollectionLightning", "MyDescription");
IAgCrdnEventIntervalCollectionLighting asCollectionLightning = intervalCollection as IAgCrdnEventIntervalCollectionLighting;
asCollectionLightning.UseObjectEclipsingBodies = true;
asCollectionLightning.Location = provider.Points["Center"];
asCollectionLightning.EclipsingBodies = new object[] { "Saturn", "Jupiter" };
IAgCrdnIntervalsVectorResult intervalResult = intervalCollection.FindIntervalCollection();
if (intervalResult.IsValid)
{
foreach (IAgCrdnIntervalCollection intervals in intervalResult.IntervalCollections)
{
foreach (IAgCrdnInterval interval in intervals)
{
Console.WriteLine("Start: " + interval.Start);
Console.WriteLine("Start: " + interval.Stop);
}
}
}
|
|
Determine if the
specified event interval collection type is supported.
[C#] |
Copy Code
|
if (provider.EventIntervalCollections.Factory.IsTypeSupported(eventIntervalCollectionType))
{
IAgCrdnEventIntervalCollection eventIntervalCollection = provider.EventIntervalCollections.Factory.Create(
"MyEventIntervalCollection", string.Empty,
eventIntervalCollectionType);
}
|
|
Create and configure
signaled event interval collection.
[Visual Basic .NET] |
Copy Code
|
Dim satelliteVgtProvider As IAgCrdnProvider =
stkRoot.GetObjectFromPath("Satellite/LEO").Vgt
Dim aircraftVgtProvider As IAgCrdnProvider =
stkRoot.GetObjectFromPath("Aircraft/UAV").Vgt
Dim intervalCollection As IAgCrdnEventIntervalCollection =
satelliteVgtProvider.EventIntervalCollections.Factory.CreateEventIntervalCollectionSignaled("MyIntervalCollectionSignaled",
"MyDescription")
Dim asCollectionSignaled As IAgCrdnEventIntervalCollectionSignaled =
TryCast(intervalCollection,
IAgCrdnEventIntervalCollectionSignaled)
asCollectionSignaled.OriginalCollection =
aircraftVgtProvider.EventIntervalCollections("LightingIntervals")
asCollectionSignaled.BaseClockLocation =
satelliteVgtProvider.Points("Center")
asCollectionSignaled.TargetClockLocation =
aircraftVgtProvider.Points("Center")
asCollectionSignaled.SignalSense =
AgECrdnSignalSense.eCrdnSignalSenseTransmit
Dim basicSignalDelay As IAgCrdnSignalDelayBasic =
TryCast(asCollectionSignaled.SignalDelay,
IAgCrdnSignalDelayBasic)
basicSignalDelay.SpeedOption =
AgECrdnSpeedOptions.eCrdnLightTransmissionSpeed
basicSignalDelay.TimeDelayConvergence = 0.002
Dim intervalResult As IAgCrdnIntervalsVectorResult =
intervalCollection.FindIntervalCollection()
If intervalResult.IsValid Then
#If Not
CSToJava Then
For
Each intervals As IAgCrdnIntervalCollection In intervalResult.IntervalCollections
#Else
#End If
For Each interval
As IAgCrdnInterval In intervals
Console.WriteLine("Start:
" + interval.Start)
Console.WriteLine("Start:
" + interval.[Stop])
Next
Next
End If
|
|
Create and configure
lighting event interval collection.
[Visual Basic .NET] |
Copy Code
|
Dim intervalCollection As IAgCrdnEventIntervalCollection =
provider.EventIntervalCollections.Factory.CreateEventIntervalCollectionLighting("MyIntervalCollectionLightning",
"MyDescription")
Dim asCollectionLightning As IAgCrdnEventIntervalCollectionLighting =
TryCast(intervalCollection,
IAgCrdnEventIntervalCollectionLighting)
asCollectionLightning.UseObjectEclipsingBodies = True
asCollectionLightning.Location = provider.Points("Center")
asCollectionLightning.EclipsingBodies = New Object()
{"Saturn", "Jupiter"}
Dim intervalResult As IAgCrdnIntervalsVectorResult =
intervalCollection.FindIntervalCollection()
If intervalResult.IsValid Then
#If Not
CSToJava Then
For
Each intervals As IAgCrdnIntervalCollection In intervalResult.IntervalCollections
#Else
#End If
For Each interval
As IAgCrdnInterval In intervals
Console.WriteLine("Start:
" + interval.Start)
Console.WriteLine("Start:
" + interval.[Stop])
Next
Next
End If
|
|
Determine if the
specified event interval collection type is supported.
[Visual Basic .NET] |
Copy Code
|
If
provider.EventIntervalCollections.Factory.IsTypeSupported(eventIntervalCollectionType)
Then
Dim
eventIntervalCollection As
IAgCrdnEventIntervalCollection =
provider.EventIntervalCollections.Factory.Create("MyEventIntervalCollection", String.Empty, eventIntervalCollectionType)
End If
|
|