Class CylindricallyShadowedLightFluxModel

  • All Implemented Interfaces:
    LightFluxModel

    public class CylindricallyShadowedLightFluxModel
    extends AbstractLightFluxModel
    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:
    AbstractLightFluxModel, LightFluxModel
    • Constructor Detail

      • CylindricallyShadowedLightFluxModel

        public CylindricallyShadowedLightFluxModel​(double kRef,
                                                   ExtendedPositionProvider occultedBody,
                                                   double occultingBodyRadius)
        Constructor.
        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

      • getOccultingBodyRadius

        public double getOccultingBodyRadius()
        Getter for occulting body radius.
        Returns:
        radius
      • getUnoccultedFluxVector

        protected Vector3D getUnoccultedFluxVector​(Vector3D relativePosition)
        Get the light flux vector, not considering any shadowing effect.
        Specified by:
        getUnoccultedFluxVector in class AbstractLightFluxModel
        Parameters:
        relativePosition - relative position w.r.t. light source
        Returns:
        unocculted flux
      • 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