Class CylindricallyShadowedLightFluxModel

  • All Implemented Interfaces:
    LightFluxModel

    public class CylindricallyShadowedLightFluxModel
    extends AbstractSolarLightFluxModel
    Class defining a flux model with a single occulting body, casting a shadow whose shape is a circular cylinder (equivalent to the light source being infinitely distant). It is less accurate but faster to evaluate than a conical model.
    Since:
    12.1
    Author:
    Romain Serra
    See Also:
    AbstractSolarLightFluxModel, LightFluxModel
    • Constructor Detail

      • CylindricallyShadowedLightFluxModel

        public CylindricallyShadowedLightFluxModel​(double kRef,
                                                   ExtendedPositionProvider occultedBody,
                                                   double occultingBodyRadius,
                                                   EventDetectionSettings eventDetectionSettings)
        Constructor.
        Parameters:
        kRef - reference flux
        occultedBody - position provider for light source
        occultingBodyRadius - radius of central, occulting body
        eventDetectionSettings - user-defined detection settings for eclipses (if ill-tuned, events might be missed or performance might drop)
        Since:
        12.2
      • CylindricallyShadowedLightFluxModel

        public CylindricallyShadowedLightFluxModel​(double kRef,
                                                   ExtendedPositionProvider occultedBody,
                                                   double occultingBodyRadius)
        Constructor with default event detection settings.
        Parameters:
        kRef - reference flux
        occultedBody - position provider for light source
        occultingBodyRadius - radius of central, occulting body
      • CylindricallyShadowedLightFluxModel

        public CylindricallyShadowedLightFluxModel​(ExtendedPositionProvider occultedBody,
                                                   double occultingBodyRadius)
        Constructor with default value for reference flux.
        Parameters:
        occultedBody - position provider for light source
        occultingBodyRadius - radius of central, occulting body
    • Method Detail

      • getDefaultEclipseDetectionSettings

        public static EventDetectionSettings getDefaultEclipseDetectionSettings()
        Define default detection settings for eclipses.
        Returns:
        default settings
        Since:
        12.2
      • getLightingRatio

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

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

        public List<EventDetector> getEclipseConditionsDetector()
        Retrieve detectors finding entries and exits in different eclipse zones.
        Returns:
        list of event detectors
      • getFieldEclipseConditionsDetector

        public <T extends CalculusFieldElement<T>> List<FieldEventDetector<T>> getFieldEclipseConditionsDetector​(Field<T> field)
        Retrieve Field detectors finding entries and exits in different eclipse zones.
        Type Parameters:
        T - field type
        Parameters:
        field - calculus field
        Returns:
        list of event detectors