siderust-cpp 0.8.0
Header-only C++ wrapper for siderust
Loading...
Searching...
No Matches
siderust::Target Class Referenceabstract

Abstract base for any celestial object that can be tracked from an observer location. More...

#include <siderust/trackable.hpp>

Inheritance diagram for siderust::Target:

Public Member Functions

virtual ~Target ()=default
 
virtual std::string name () const =0
 Human-readable name for this target (e.g. "Sun", "Vega", "ICRS(279.2°, 38.8°)").
 
virtual qtty::Degree altitude_at (const Geodetic &obs, const Time< TT, MJD > &mjd) const =0
 Compute altitude (degrees) at a given Time<TT, MJD> instant.
 
virtual std::vector< Period< TT, MJD > > above_threshold (const Geodetic &obs, const Period< TT, MJD > &window, qtty::Degree threshold, const SearchOptions &opts={}) const =0
 Find periods when the object is above a threshold altitude.
 
virtual std::vector< Period< TT, MJD > > below_threshold (const Geodetic &obs, const Period< TT, MJD > &window, qtty::Degree threshold, const SearchOptions &opts={}) const =0
 Find periods when the object is below a threshold altitude.
 
virtual std::vector< CrossingEventcrossings (const Geodetic &obs, const Period< TT, MJD > &window, qtty::Degree threshold, const SearchOptions &opts={}) const =0
 Find threshold-crossing events (rising / setting).
 
virtual std::vector< CulminationEventculminations (const Geodetic &obs, const Period< TT, MJD > &window, const SearchOptions &opts={}) const =0
 Find culmination (local altitude extremum) events.
 
virtual qtty::Degree azimuth_at (const Geodetic &obs, const Time< TT, MJD > &mjd) const =0
 Compute azimuth (degrees, N-clockwise) at a given Time<TT, MJD> instant.
 
virtual std::vector< AzimuthCrossingEventazimuth_crossings (const Geodetic &obs, const Period< TT, MJD > &window, qtty::Degree bearing, const SearchOptions &opts={}) const =0
 Find epochs when the object crosses a given azimuth bearing.
 
 Target ()=default
 
 Target (const Target &)=delete
 
Targetoperator= (const Target &)=delete
 
 Target (Target &&)=default
 
Targetoperator= (Target &&)=default
 

Detailed Description

Abstract base for any celestial object that can be tracked from an observer location.

Subclasses represent concrete target kinds: fixed sky directions, catalog stars, solar-system bodies, and (in the future) satellites. All must implement name(), altitude_at(), and azimuth_at(); the search helpers also need overrides.

Definition at line 54 of file trackable.hpp.

Constructor & Destructor Documentation

◆ ~Target()

virtual siderust::Target::~Target ( )
virtualdefault

◆ Target() [1/3]

siderust::Target::Target ( )
default

◆ Target() [2/3]

siderust::Target::Target ( const Target )
delete

◆ Target() [3/3]

siderust::Target::Target ( Target &&  )
default

Member Function Documentation

◆ above_threshold()

virtual std::vector< Period< TT, MJD > > siderust::Target::above_threshold ( const Geodetic obs,
const Period< TT, MJD > &  window,
qtty::Degree  threshold,
const SearchOptions opts = {} 
) const
pure virtual

Find periods when the object is above a threshold altitude.

Implemented in siderust::BodyTarget, siderust::StarTarget, siderust::DirectionTarget< C >, and siderust::ProperMotionTarget.

◆ altitude_at()

virtual qtty::Degree siderust::Target::altitude_at ( const Geodetic obs,
const Time< TT, MJD > &  mjd 
) const
pure virtual

Compute altitude (degrees) at a given Time<TT, MJD> instant.

Implemented in siderust::BodyTarget, siderust::StarTarget, siderust::DirectionTarget< C >, and siderust::ProperMotionTarget.

◆ azimuth_at()

virtual qtty::Degree siderust::Target::azimuth_at ( const Geodetic obs,
const Time< TT, MJD > &  mjd 
) const
pure virtual

Compute azimuth (degrees, N-clockwise) at a given Time<TT, MJD> instant.

Implemented in siderust::BodyTarget, siderust::StarTarget, siderust::DirectionTarget< C >, and siderust::ProperMotionTarget.

◆ azimuth_crossings()

virtual std::vector< AzimuthCrossingEvent > siderust::Target::azimuth_crossings ( const Geodetic obs,
const Period< TT, MJD > &  window,
qtty::Degree  bearing,
const SearchOptions opts = {} 
) const
pure virtual

Find epochs when the object crosses a given azimuth bearing.

Implemented in siderust::BodyTarget, siderust::StarTarget, siderust::DirectionTarget< C >, and siderust::ProperMotionTarget.

◆ below_threshold()

virtual std::vector< Period< TT, MJD > > siderust::Target::below_threshold ( const Geodetic obs,
const Period< TT, MJD > &  window,
qtty::Degree  threshold,
const SearchOptions opts = {} 
) const
pure virtual

Find periods when the object is below a threshold altitude.

Implemented in siderust::BodyTarget, siderust::StarTarget, siderust::DirectionTarget< C >, and siderust::ProperMotionTarget.

◆ crossings()

virtual std::vector< CrossingEvent > siderust::Target::crossings ( const Geodetic obs,
const Period< TT, MJD > &  window,
qtty::Degree  threshold,
const SearchOptions opts = {} 
) const
pure virtual

Find threshold-crossing events (rising / setting).

Implemented in siderust::BodyTarget, siderust::StarTarget, siderust::DirectionTarget< C >, and siderust::ProperMotionTarget.

◆ culminations()

virtual std::vector< CulminationEvent > siderust::Target::culminations ( const Geodetic obs,
const Period< TT, MJD > &  window,
const SearchOptions opts = {} 
) const
pure virtual

Find culmination (local altitude extremum) events.

Implemented in siderust::BodyTarget, siderust::StarTarget, siderust::DirectionTarget< C >, and siderust::ProperMotionTarget.

◆ name()

virtual std::string siderust::Target::name ( ) const
pure virtual

Human-readable name for this target (e.g. "Sun", "Vega", "ICRS(279.2°, 38.8°)").

Implemented in siderust::BodyTarget, siderust::StarTarget, siderust::DirectionTarget< C >, and siderust::ProperMotionTarget.

◆ operator=() [1/2]

Target & siderust::Target::operator= ( const Target )
delete

◆ operator=() [2/2]

Target & siderust::Target::operator= ( Target &&  )
default

The documentation for this class was generated from the following file: