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.
Object Model
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. Curvature
tolerance also uses changes in slope 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. |
Example
Create and configure
condition crossings event array.
[C#] |
Copy Code
|
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;
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] |
Copy Code
|
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
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
<>
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
|
|
CoClasses that Implement
IAgCrdnEventArrayConditionCrossings