AxesFromBankAngle Class |
An Axes defining a first order representation for an aircraft in steady flight with the bank angles specified by changes in the horizontal acceleration vector. The bank angle is determined by assuming steady flight and calculating the angle necessary to provide the corresponding horizontal acceleration. The axes will examine the acceleration around the special times of interest and determine how much time is needed before and after that point in order to transition between the two bank angles based on the given roll rate. When no horizontal acceleration is present, this is the same as an axes aligned with the x axis along the velocity and the z axis constrained toward nadir.
Note that while this will attempt to use the TargetRollRate, if there is a sequence of banking maneuvers in quick succession the TargetRollRate will not be feasible. In this case, the roll rate will exceed the target as necessary.
Namespace: AGI.Foundation.Geometry
The AxesFromBankAngle type exposes the following members.
Name | Description | |
---|---|---|
AxesFromBankAngle |
Create a new instance.
| |
AxesFromBankAngle(AxesFromBankAngle, CopyContext) | Initializes a new instance as a copy of an existing instance. | |
AxesFromBankAngle(PropagatedRoute, Double, Double) |
Create a new instance based on the given route, banking around turns, and transitioning
smoothly from one bank condition to another around transition points in the route.
| |
AxesFromBankAngle(Point, CentralBody, Double, IListJulianDate, Double) |
Create a new instance based on the given point and special times of interest.
|
Name | Description | |
---|---|---|
CentralBody |
Gets or sets the CentralBody with respect to which these Axes are defined.
| |
IsFrozen |
Gets a value indicating whether this object is frozen. A frozen object cannot be modified and an
ObjectFrozenException will be thrown if an attempt is made to do so.
(Inherited from DefinitionalObject.) | |
MaximumRollRate |
Gets or sets the maximum roll rate to allow during the trajectory before throwing an exception.
By default, the value is positive infinity, indicating that the axes will violate the TargetRollRate
if there are several SpecialTimes in close proximity preventing a feasible transition
with the TargetRollRate. If the resulting roll rate is greater than the maximum
the call to GetEvaluator(EvaluatorGroup) will throw an InvalidOperationException.
| |
Position |
Gets or sets the Point representing the position of the platform and its derivatives.
| |
SpecialTimes |
Gets or sets the list of special times of interest at which to transition from one bank angle to the next.
These axes will consider each of the times to determine if there is a discontinuity and then attempt
to create a smooth transition from the previous bank angle to the next using the specified
TargetRollRate.
| |
SurfaceGravity |
Gets or sets the value of the surface gravity corresponding to the CentralBody,
in meters per second squared. By default, this value corresponds to EarthSurfaceGravity.
| |
TargetRollRate |
Gets or sets the desired roll rate at which to transition from one bank angle to the next, in radians per second.
|
Name | Description | |
---|---|---|
CheckForSameDefinition(Axes) |
Checks to determine if another instance has the same definition as this instance and
returns if it does. Derived classes MUST override this method and check
all new fields introduced by the derived class for definitional equivalence. It is NOT necessary
to check base class fields because the base class will already have done that. When overriding this method,
you should NOT call the base implementation because it will return for all derived-class instances.
Derived classes should check the type of other to preserve the symmetric nature of IsSameDefinition(Object).
(Overrides AxesCheckForSameDefinition(Axes).) | |
CheckForSameDefinition(AxesFromBankAngle) |
Checks to determine if another instance has the same definition as this instance and
returns if it does. Derived classes MUST override this method and check
all new fields introduced by the derived class for definitional equivalence. It is NOT necessary
to check base class fields because the base class will already have done that. When overriding this method,
you should NOT call the base implementation because it will return for all derived-class instances.
Derived classes should check the type of other to preserve the symmetric nature of IsSameDefinition(Object).
| |
CheckForSameDefinition(DefinitionalObject) |
Checks to determine if another instance has the same definition as this instance and
returns if it does. Derived classes MUST override this method and check
all new fields introduced by the derived class for definitional equivalence. It is NOT necessary
to check base class fields because the base class will already have done that. When overriding this method,
you should NOT call the base implementation because it will return for all derived-class instances.
Derived classes should check the type of other to preserve the symmetric nature of IsSameDefinition(Object).
(Inherited from Axes.) | |
Clone |
Clones this object using the specified context.
(Overrides DefinitionalObjectClone(CopyContext).) | |
ComputeCurrentDefinitionHashCode |
Computes a hash code based on the current properties of this object. Derived classes MUST override this
method and compute a hash code that combines: a unique hash code seed, the base implementation result, and
the hash codes of all new fields introduced by the derived class which are used in the
CheckForSameDefinition(DefinitionalObject) method.
(Overrides AxesComputeCurrentDefinitionHashCode.) | |
EnumerateDependencies |
Enumerates the dependencies of this object by calling
EnumerateT(T) for each object that this object directly depends upon.
Derived classes which contain additional dependencies MUST override this method, call the base
implementation, and enumerate dependencies introduced by the derived class.
(Overrides DefinitionalObjectEnumerateDependencies(DependencyEnumerator).) | |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
Freeze |
Freezes this object. Further attempts to modify it will result
in an ObjectFrozenException.
(Inherited from DefinitionalObject.) | |
FreezeAggregatedObjects |
Called by Freeze to also freeze any objects that are considered to be a part of this object.
Derived classes which contain additional aggregated objects MUST override this method, call the base
implementation, and freeze aggregated objects introduced by the derived class. The objects that need to be
frozen in this method are frequently created in this object's constructor and are not settable via
properties.
(Inherited from DefinitionalObject.) | |
GetDefinitionHashCode |
Gets a hash code representing the definition of this object.
(Inherited from DefinitionalObject.) | |
GetEvaluator |
Gets an evaluator that can be used to find the transformation from this axes' parent axes to
this axes at a given date. Consider using the methods of GeometryTransformer
instead of calling this method directly.
See GetEvaluator(EvaluatorGroup) for details.
(Inherited from Axes.) | |
GetEvaluator(EvaluatorGroup) |
Gets an evaluator that can be used to find the transformation from this axes' parent axes to
this axes represented by a
Motion<UnitQuaternion, Cartesian>
at a given JulianDate.
Consider using the methods of GeometryTransformer
instead of calling this method directly.
(Overrides AxesGetEvaluator(EvaluatorGroup).) | |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetService |
Gets the service object of the specified type.
(Inherited from Axes.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
GetVectorElement(CartesianElement) |
Creates a Vector representing the X, Y or Z of this axes. Note that the vector
returned will return trivial answers unless observed in some other axes. Use the
GeometryTransformer to properly observe the vector instead of getting an evaluator
directly.
(Inherited from Axes.) | |
GetVectorElement(CartesianElement, Int32) |
Creates a Vector representing the X, Y or Z of this axes. Note that the vector
returned will return trivial answers unless observed in some other axes. Use the
GeometryTransformer to properly observe the vector instead of getting an evaluator
directly.
(Inherited from Axes.) | |
IsSameDefinition |
Determines if this object has the same definition as another object.
(Inherited from DefinitionalObject.) | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
ThrowIfFrozen |
Throws ObjectFrozenException if this object IsFrozen.
This method should be called from any method or property that modifies this object.
(Inherited from DefinitionalObject.) | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |