public class ScalarOccultationRegulatedDualCone extends ScalarOccultationDualCone
Provides evaluators for percentage of occultation/eclipse at a position,
as well as EclipseType using the dual cone shadow model.
The percentage runs from 0.0 (completely lit) to 1.0 (total eclipse).
This shadow model should only be used in a SimpleSolarRadiationForce in conjunction with SolarRadiationBoundaryMitigation.
It performs differently than the normal ScalarOccultationDualCone in that it treats the
penumbra shadow condition as umbra, and does not allow the occultation factor to change during a propagation step.
This functionality is required for correct results from the boundary mitigator, but in all other circumstances
the normal dual cone occultation model should be used.
| Constructor and Description |
|---|
ScalarOccultationRegulatedDualCone()
Creates a new Scalar with a
VectorType (get / set) of RadiationVectorType.CORRECT_FOR_LIGHT_TIME_DELAY_AND_ABERRATION. |
ScalarOccultationRegulatedDualCone(CentralBody illuminatingBody,
Point targetPoint,
CentralBody... occludingBodies)
Creates a new Scalar from the given illuminating body, target point, and occluding bodies.
|
ScalarOccultationRegulatedDualCone(CentralBody illuminatingBody,
Point targetPoint,
Iterable<CentralBody> occludingBodies)
Creates a new Scalar from the given illuminating body, target point, and occluding bodies.
|
ScalarOccultationRegulatedDualCone(ScalarOccultationDualCone template)
Initializes a new instance of a
ScalarOccultationRegulatedDualCone
from a normal ScalarOccultationDualCone. |
| Modifier and Type | Method and Description |
|---|---|
protected boolean |
checkForSameDefinition(ScalarOccultationDualCone other)
Checks to determine if another instance has the same definition as this instance and
returns
true if it does. |
protected boolean |
checkForSameDefinition(ScalarOccultationRegulatedDualCone other)
Checks to determine if another instance has the same definition as this instance and
returns
true if it does. |
protected int |
computeCurrentDefinitionHashCode()
Computes a hash code based on the current properties of this object.
|
ScalarEvaluator |
getEvaluator(EvaluatorGroup group)
Gets an evaluator that calculates occultation according to the dual cone shadow model.
|
PropagationStageParameter |
getPhaseParameter()
Gets a parameter which represents the propagation phase.
|
void |
setPhaseParameter(PropagationStageParameter value)
Sets a parameter which represents the propagation phase.
|
calculateEclipseType, checkForSameDefinition, clone, getDimension, getEclipseTypeEvaluators, getPartialDerivativesEvaluator, occultationcheckForSameDefinition, createEvaluatorHelper, eclipseAngles, enumerateDependencies, getEclipseTypeEvaluators, getIlluminatingBody, getInertialFrame, getOccludingBodies, getTargetPoint, getVectorType, setIlluminatingBody, setInertialFrame, setTargetPoint, setVectorTypeadd, add, add, add, add, checkForSameDefinition, createScalarDerivative, divide, divide, divide, divide, divide, getEvaluator, multiply, multiply, multiply, multiply, multiply, power, subtract, subtract, subtract, subtract, subtract, toScalarareSameDefinition, areSameDefinition, areSameDefinition, areSameDefinition, areSameDefinition, collectionItemsAreSameDefinition, collectionItemsAreSameDefinition, collectionItemsAreSameDefinition, dictionaryItemsAreSameDefinition, freeze, freezeAggregatedObjects, getCollectionHashCode, getCollectionHashCode, getCollectionHashCode, getDefinitionHashCode, getDefinitionHashCode, getDefinitionHashCode, getDefinitionHashCode, getDefinitionHashCode, getDefinitionHashCode, getDictionaryHashCode, getIsFrozen, isSameDefinition, throwIfFrozenclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetDefinitionHashCode, isSameDefinitionpublic ScalarOccultationRegulatedDualCone()
public ScalarOccultationRegulatedDualCone(CentralBody illuminatingBody, Point targetPoint, @Nonnull CentralBody... occludingBodies)
illuminatingBody - The illuminating body.targetPoint - The target point.occludingBodies - The occluding bodies.public ScalarOccultationRegulatedDualCone(CentralBody illuminatingBody, Point targetPoint, @Nonnull Iterable<CentralBody> occludingBodies)
illuminatingBody - The illuminating body.targetPoint - The target point.occludingBodies - The occluding bodies.public ScalarOccultationRegulatedDualCone(@Nonnull ScalarOccultationDualCone template)
ScalarOccultationRegulatedDualCone
from a normal ScalarOccultationDualCone.template - The normal Scalar representing dual cone occultation.protected final boolean checkForSameDefinition(ScalarOccultationDualCone other)
true 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 false for all derived-class instances.
Derived classes should check the type of other to preserve the symmetric nature of IEquatableDefinition.isSameDefinition(java.lang.Object).checkForSameDefinition in class ScalarOccultationDualConeother - The other instance to compare to this one.true if the two objects are defined equivalently; otherwise false.protected boolean checkForSameDefinition(ScalarOccultationRegulatedDualCone other)
true 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 false for all derived-class instances.
Derived classes should check the type of other to preserve the symmetric nature of IEquatableDefinition.isSameDefinition(java.lang.Object).other - The other instance to compare to this one.true if the two objects are defined equivalently; otherwise false.protected int computeCurrentDefinitionHashCode()
ScalarOccultationRegulatedDualCone.checkForSameDefinition(agi.foundation.celestial.ScalarOccultationDualCone) method.computeCurrentDefinitionHashCode in class ScalarOccultationDualConepublic final PropagationStageParameter getPhaseParameter()
NumericalPropagator objects are running in the same EvaluatorGroup,
such as when elements of a state require additional instances of a NumericalPropagator
inside their implementation in order to produce their values. In such cases, it may
be necessary to distinguish between the phase of the exterior propagator and the
phase of the interior propagator. In these cases, it is up to the user to ensure
that both the state and all of its elements are configured with the same parameter.
Otherwise, the state will throw an exception when creating its propagator.public final void setPhaseParameter(PropagationStageParameter value)
NumericalPropagator objects are running in the same EvaluatorGroup,
such as when elements of a state require additional instances of a NumericalPropagator
inside their implementation in order to produce their values. In such cases, it may
be necessary to distinguish between the phase of the exterior propagator and the
phase of the interior propagator. In these cases, it is up to the user to ensure
that both the state and all of its elements are configured with the same parameter.
Otherwise, the state will throw an exception when creating its propagator.public ScalarEvaluator getEvaluator(EvaluatorGroup group)
getEvaluator in class ScalarOccultationDualConegroup - The group with which to associate the new evaluator. By grouping evaluators
that are often evaluated at the same Julian dates, common computations can be performed only once
for the entire group instead of multiple times for each evaluator.ArgumentNullException - Thrown when group is null.PropertyInvalidException - Thrown when the property TargetPoint (get / set),
IlluminatingBody (get / set), or
OccludingBodies (get) or any of its members is null.