Interval

struct Interval

Represents a time interval over which a sensor exposure occurs.

Internally stores explicit start and end times. Provides named factory methods for the common parameterizations used in space imaging:

  • centered: midpoint time + total duration (e.g., “observe at T ± dt/2”)

  • from_start: start time + integration length

  • from_bounds: explicit start and end times

  • instant: a zero-duration snapshot at a single time

A zero-duration interval (start == end) implies no motion blur.

Public Functions

inline Interval(Time t0, Time tf)
inline Time center() const

The midpoint of the exposure interval.

inline std::vector<Time> samples(std::size_t N) const

Create uniformly spaced Time samples across the interval.

inline units::Second duration() const

The total duration of the exposure in seconds.

Public Members

Time start
Time end

Public Static Functions

static inline Interval from_centered(const Time &center, units::Second duration)

Construct an exposure interval centered on a given time.

Parameters:
  • center – The midpoint of the exposure.

  • duration – The total integration time.

Returns:

Interval spanning [center - duration/2, center + duration/2].

static inline Interval from_start(const Time &start, units::Second duration)

Construct an exposure interval from a start time and duration.

Parameters:
  • start – The beginning of the exposure.

  • duration – The total integration time.

Returns:

Interval spanning [start, start + duration].

static inline Interval from_bounds(const Time &start, const Time &end)

Construct an exposure interval from explicit start and end times.

Parameters:
  • start – The beginning of the exposure.

  • end – The end of the exposure.

Returns:

Interval spanning [start, end].