Description
Time array containing times at which the specified condition will change its satisfaction status. Determination is performed within the interval list using Sampling and Convergence parameters.
Public Properties
Condition | The condition component. |
Convergence | The Convergence definition, which uses time tolerance to determine when time of extremum is found. |
CustomTimeLimits | Specify the interval list within which intervals of satisfaction are sought. The default is set to overall availability of host object. |
Sampling | The Sampling definition, which can use a fixed step, relative tolerance or curvature tolerance. Relative tolerance uses a combination of relative and absolute changes in scalar values between samples... |
SatisfactionCrossing | The crossing condition. |
SaveDataOption | Determine if computed intervals of satisfaction are saved/loaded, or recomputed on load if necessary. |
UseCustomTimeLimits | Specify whether to use custom time limits. |
Interfaces
CoClasses that Implement IAgCrdnEventArrayConditionCrossings
Example
Create and configure condition crossings event array.
[C#] |
---|
IAgCrdnEventArray eventArray = provider.EventArrays.Factory.CreateEventArrayConditionCrossings("MyEventArrayConditionCrossings", "MyDescription");
IAgCrdnEventArrayConditionCrossings asConditionCrossings = eventArray as IAgCrdnEventArrayConditionCrossings;
IAgCrdnCondition scalarBound = provider.Conditions.Factory.CreateConditionScalarBounds("Bound", "MyDescription");
IAgCrdnConditionScalarBounds asScalarBounds = scalarBound as IAgCrdnConditionScalarBounds;
asScalarBounds.Scalar = provider.CalcScalars["GroundTrajectory.Detic.LLA.Latitude"];
asScalarBounds.Operation = AgECrdnConditionThresholdOption.eCrdnConditionThresholdOptionInsideMinMax;
//asScalarBounds.Set(-0.349, 0);
asConditionCrossings.Condition = scalarBound;
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 condition crossings event array.
[Visual Basic .NET] |
---|
Dim eventArray As IAgCrdnEventArray = provider.EventArrays.Factory.CreateEventArrayConditionCrossings("MyEventArrayConditionCrossings", "MyDescription")
Dim asConditionCrossings As IAgCrdnEventArrayConditionCrossings = TryCast(eventArray, IAgCrdnEventArrayConditionCrossings)
Dim scalarBound As IAgCrdnCondition = provider.Conditions.Factory.CreateConditionScalarBounds("Bound", "MyDescription")
Dim asScalarBounds As IAgCrdnConditionScalarBounds = TryCast(scalarBound, IAgCrdnConditionScalarBounds)
asScalarBounds.Scalar = provider.CalcScalars("GroundTrajectory.Detic.LLA.Latitude")
asScalarBounds.Operation = AgECrdnConditionThresholdOption.eCrdnConditionThresholdOptionInsideMinMax
'asScalarBounds.Set(-0.349, 0);
asConditionCrossings.Condition = scalarBound
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
|
|