Class AbstractLightFluxModel

  • All Implemented Interfaces:
    LightFluxModel
    Direct Known Subclasses:
    AbstractSolarLightFluxModel

    public abstract class AbstractLightFluxModel
    extends Object
    implements LightFluxModel
    Abstract class for light flux models. Via the definition of the lighting ratio and the unocculted flux vector, derives the final value.
    Since:
    12.1
    Author:
    Romain Serra
    See Also:
    LightFluxModel
    • Constructor Detail

      • AbstractLightFluxModel

        protected AbstractLightFluxModel​(ExtendedPositionProvider occultedBody)
        Constructor.
        Parameters:
        occultedBody - position provider for light source
    • Method Detail

      • getOccultedBody

        public ExtendedPositionProvider getOccultedBody()
        Getter for the occulted body's position provider.
        Returns:
        occulted body
      • getOccultedBodyPosition

        protected Vector3D getOccultedBodyPosition​(AbsoluteDate date,
                                                   Frame frame)
        Method computing the occulted body's position at a given date and frame.
        Parameters:
        date - date
        frame - frame
        Returns:
        position
      • getOccultedBodyPosition

        protected <T extends CalculusFieldElement<T>> FieldVector3D<T> getOccultedBodyPosition​(FieldAbsoluteDate<T> date,
                                                                                               Frame frame)
        Method computing the occulted body's position at a given date and frame. Field version.
        Type Parameters:
        T - field type
        Parameters:
        date - date
        frame - frame
        Returns:
        position
      • getUnoccultedFluxVector

        protected abstract Vector3D getUnoccultedFluxVector​(Vector3D relativePosition)
        Get the light flux vector, not considering any shadowing effect.
        Parameters:
        relativePosition - relative position w.r.t. light source
        Returns:
        unocculted flux
      • getUnoccultedFluxVector

        protected abstract <T extends CalculusFieldElement<T>> FieldVector3D<T> getUnoccultedFluxVector​(FieldVector3D<T> relativePosition)
        Get the light flux vector, not considering any shadowing effect. Field version.
        Type Parameters:
        T - field type
        Parameters:
        relativePosition - relative position w.r.t. light source
        Returns:
        unocculted flux
      • getLightingRatio

        public double getLightingRatio​(SpacecraftState state)
        Get the lighting ratio ([0-1]).
        Parameters:
        state - state
        Returns:
        lighting ratio
      • getLightingRatio

        protected abstract double getLightingRatio​(Vector3D position,
                                                   Vector3D occultedBodyPosition)
        Get the lighting ratio ([0-1]).
        Parameters:
        position - object's position
        occultedBodyPosition - occulted body position in same frame
        Returns:
        lighting ratio
      • getLightingRatio

        public <T extends CalculusFieldElement<T>> T getLightingRatio​(FieldSpacecraftState<T> state)
        Get the lighting ratio ([0-1]).
        Type Parameters:
        T - field type
        Parameters:
        state - state
        Returns:
        lighting ratio
      • getLightingRatio

        protected abstract <T extends CalculusFieldElement<T>> T getLightingRatio​(FieldVector3D<T> position,
                                                                                  FieldVector3D<T> occultedBodyPosition)
        Get the lighting ratio ([0-1]). Field version.
        Type Parameters:
        T - field type
        Parameters:
        position - object's position
        occultedBodyPosition - occulted body position in same frame
        Returns:
        lighting ratio