STK Vector Geometry ToolSend comments on this topic.
IAgCrdnEventArrayFixedStep Interface

Description

Defined by taking fixed time steps from specified time reference and adding sampled times to array if they fall within specified bounding interval list.

Public Properties

Public Property BoundingIntervalListThe bounding interval list.
Public Property IncludeIntervalEdgesSpecify whether to include interval edges.
Public Property ReferenceTimeInstantThe reference time instant. Only applicable if the ReferenceType is set to time instant.
Public Property ReferenceTypeSpecify the time reference from which fixed sampling time steps are taken. Note: selecting Start/Stop of each Interval resets the time reference for each interval, whereas other types maintain single reference for entire array.
Public Property SamplingTimeStepThe sampling time step.

Interfaces

Implemented Interface
IAgCrdnEventArray
IAgCrdn

CoClasses that Implement IAgCrdnEventArrayFixedStep

Example

Create and configure fixed step event array.
[C#]
IAgCrdnEventArray eventArray = provider.EventArrays.Factory.CreateEventArrayFixedStep("MyEventArrayFixedStep",  "MyDescription");
IAgCrdnEventArrayFixedStep asFixedStep = eventArray as IAgCrdnEventArrayFixedStep;

asFixedStep.BoundingIntervalList = provider.EventIntervalLists["AfterStart.SatisfactionIntervals"];
asFixedStep.IncludeIntervalEdges = true;

// Uses current Time unit preference, this code snippet assumes seconds.
asFixedStep.SamplingTimeStep = 240;
asFixedStep.ReferenceType = AgECrdnSampledReferenceTime.eCrdnSampledReferenceTimeStartOfIntervalList;

// or using time instants
asFixedStep.ReferenceType = AgECrdnSampledReferenceTime.eCrdnSampledReferenceTimeReferenceEvent;
asFixedStep.ReferenceTimeInstant = provider.Events["EphemerisStartTime"];

IAgCrdnFindTimesResult timeArrays = eventArray.FindTimes();
if (timeArrays.IsValid)
{
    Console.WriteLine("Times");
    int numTimes = timeArrays.Times.GetLength(0);
    for (int i = 0; i < numTimes; ++i)
    {
        Console.WriteLine(timeArrays.Times.GetValue(i));
    }

    foreach (IAgCrdnInterval timeArray in timeArrays.Intervals)
    {
        Console.WriteLine("Start: " + timeArray.Start);
        Console.WriteLine("Stop: " + timeArray.Stop);
    }
}
Create and configure fixed step event array.
[Visual Basic .NET]
Dim eventArray As IAgCrdnEventArray = provider.EventArrays.Factory.CreateEventArrayFixedStep("MyEventArrayFixedStep", "MyDescription")
Dim asFixedStep As IAgCrdnEventArrayFixedStep = TryCast(eventArray, IAgCrdnEventArrayFixedStep)

asFixedStep.BoundingIntervalList = provider.EventIntervalLists("AfterStart.SatisfactionIntervals")
asFixedStep.IncludeIntervalEdges = True

' Uses current Time unit preference, this code snippet assumes seconds.
asFixedStep.SamplingTimeStep = 240
asFixedStep.ReferenceType = AgECrdnSampledReferenceTime.eCrdnSampledReferenceTimeStartOfIntervalList

' or using time instants
asFixedStep.ReferenceType = AgECrdnSampledReferenceTime.eCrdnSampledReferenceTimeReferenceEvent
asFixedStep.ReferenceTimeInstant = provider.Events("EphemerisStartTime")

Dim timeArrays As IAgCrdnFindTimesResult = eventArray.FindTimes()
If timeArrays.IsValid Then
	Console.WriteLine("Times")
	Dim numTimes As Integer = timeArrays.Times.GetLength(0)
	Dim i As Integer = 0
	While i < numTimes
		Console.WriteLine(timeArrays.Times.GetValue(i))
		System.Threading.Interlocked.Increment(i)
	End While

	For Each timeArray As IAgCrdnInterval In timeArrays.Intervals
		Console.WriteLine("Start: " + timeArray.Start)
		Console.WriteLine("Stop: " + timeArray.[Stop])
	Next
End If
© 2024 Analytical Graphics, Inc. All Rights Reserved.