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

ICRS target with proper motion (RAII wrapper over the FFI handle). More...

#include <siderust/target.hpp>

Inheritance diagram for siderust::ProperMotionTarget:
Collaboration diagram for siderust::ProperMotionTarget:

Public Member Functions

 ProperMotionTarget (spherical::direction::ICRS position, Time< TT, JD > epoch, ProperMotion proper_motion, std::string label="")
 Construct a proper-motion target from an ICRS direction and typed rates.
 ~ProperMotionTarget ()
 ProperMotionTarget (ProperMotionTarget &&other) noexcept
ProperMotionTarget & operator= (ProperMotionTarget &&other) noexcept
 ProperMotionTarget (const ProperMotionTarget &)=delete
ProperMotionTarget & operator= (const ProperMotionTarget &)=delete
std::string name () const override
 Human-readable name for this target (e.g. "Sun", "Vega", "ICRS(279.2°, 38.8°)").
Time< TT, JD > epoch () const
 Coordinate epoch.
const spherical::direction::ICRS & position () const
 ICRS position at the coordinate epoch.
const ProperMotion & proper_motion () const
 Proper motion rates.
SiderustGenericTargetData data () const
 Raw coordinate payload stored in the FFI handle.
qtty::Degree altitude_at (const Geodetic &obs, const Time< TT, MJD > &mjd) const override
 Compute altitude (degrees) at a given Time<TT, MJD> instant.
std::vector< Period< TT, MJD > > above_threshold (const Geodetic &obs, const Period< TT, MJD > &window, qtty::Degree threshold, const SearchOptions &opts={}) const override
 Find periods when the object is above a threshold altitude.
std::vector< Period< TT, MJD > > below_threshold (const Geodetic &obs, const Period< TT, MJD > &window, qtty::Degree threshold, const SearchOptions &opts={}) const override
 Find periods when the object is below a threshold altitude.
std::vector< CrossingEvent > crossings (const Geodetic &obs, const Period< TT, MJD > &window, qtty::Degree threshold, const SearchOptions &opts={}) const override
 Find threshold-crossing events (rising / setting).
std::vector< CulminationEvent > culminations (const Geodetic &obs, const Period< TT, MJD > &window, const SearchOptions &opts={}) const override
 Find culmination (local altitude extremum) events.
qtty::Degree azimuth_at (const Geodetic &obs, const Time< TT, MJD > &mjd) const override
 Compute azimuth (degrees, N-clockwise) at a given Time<TT, MJD> instant.
std::vector< AzimuthCrossingEvent > azimuth_crossings (const Geodetic &obs, const Period< TT, MJD > &window, qtty::Degree bearing, const SearchOptions &opts={}) const override
 Find epochs when the object crosses a given azimuth bearing.
Public Member Functions inherited from siderust::Target
virtual ~Target ()=default
 Target ()=default
 Target (const Target &)=delete
Target & operator= (const Target &)=delete
 Target (Target &&)=default
Target & operator= (Target &&)=default

Detailed Description

ICRS target with proper motion (RAII wrapper over the FFI handle).

Constructs a generic target from an ICRS position plus annual proper-motion rates, then exposes the same altitude/azimuth tracking API as DirectionTarget.

Example

using namespace siderust;
// Barnard's star (Hipparcos values)
spherical::direction::ICRS{269.4521_deg, +4.6933_deg},
AngularRate{-798.58e-3_deg, qtty::Day(365.25)},
AngularRate{+10337.8e-3_deg, qtty::Day(365.25)},
},
};
auto alt = barnard.altitude_at(obs, now);
ProperMotionTarget(spherical::direction::ICRS position, Time< TT, JD > epoch, ProperMotion proper_motion, std::string label="")
Construct a proper-motion target from an ICRS direction and typed rates.
Definition target.hpp:427
qtty::Degree altitude_at(const Geodetic &obs, const Time< TT, MJD > &mjd) const override
Compute altitude (degrees) at a given Time<TT, MJD> instant.
Definition target.hpp:503
tempoch::EncodedTime< Scale, Format > Time
Definition time.hpp:36
Proper motion for a star (equatorial).
Definition bodies.hpp:24

Definition at line 422 of file target.hpp.

Constructor & Destructor Documentation

◆ ProperMotionTarget() [1/3]

siderust::ProperMotionTarget::ProperMotionTarget ( spherical::direction::ICRS position,
Time< TT, JD > epoch,
ProperMotion proper_motion,
std::string label = "" )
inline

Construct a proper-motion target from an ICRS direction and typed rates.

Definition at line 427 of file target.hpp.

References siderust::check_status(), epoch(), position(), and proper_motion().

Referenced by operator=(), operator=(), ProperMotionTarget(), and ProperMotionTarget().

◆ ~ProperMotionTarget()

siderust::ProperMotionTarget::~ProperMotionTarget ( )
inline

Definition at line 440 of file target.hpp.

◆ ProperMotionTarget() [2/3]

siderust::ProperMotionTarget::ProperMotionTarget ( ProperMotionTarget && other)
inlinenoexcept

Definition at line 447 of file target.hpp.

References ProperMotionTarget().

◆ ProperMotionTarget() [3/3]

siderust::ProperMotionTarget::ProperMotionTarget ( const ProperMotionTarget & )
delete

References ProperMotionTarget().

Member Function Documentation

◆ above_threshold()

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

Find periods when the object is above a threshold altitude.

Implements siderust::Target.

Definition at line 511 of file target.hpp.

◆ altitude_at()

qtty::Degree siderust::ProperMotionTarget::altitude_at ( const Geodetic & obs,
const Time< TT, MJD > & mjd ) const
inlineoverridevirtual

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

Implements siderust::Target.

Definition at line 503 of file target.hpp.

References siderust::check_status(), siderust::detail::make_generic_target_subject(), and siderust::Geodetic::to_c().

◆ azimuth_at()

qtty::Degree siderust::ProperMotionTarget::azimuth_at ( const Geodetic & obs,
const Time< TT, MJD > & mjd ) const
inlineoverridevirtual

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

Implements siderust::Target.

Definition at line 558 of file target.hpp.

References siderust::check_status(), siderust::detail::make_generic_target_subject(), and siderust::Geodetic::to_c().

◆ azimuth_crossings()

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

Find epochs when the object crosses a given azimuth bearing.

Implements siderust::Target.

Definition at line 567 of file target.hpp.

◆ below_threshold()

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

Find periods when the object is below a threshold altitude.

Implements siderust::Target.

Definition at line 523 of file target.hpp.

◆ crossings()

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

Find threshold-crossing events (rising / setting).

Implements siderust::Target.

Definition at line 535 of file target.hpp.

◆ culminations()

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

Find culmination (local altitude extremum) events.

Implements siderust::Target.

Definition at line 546 of file target.hpp.

◆ data()

SiderustGenericTargetData siderust::ProperMotionTarget::data ( ) const
inline

Raw coordinate payload stored in the FFI handle.

Definition at line 495 of file target.hpp.

References siderust::check_status().

◆ epoch()

Time< TT, JD > siderust::ProperMotionTarget::epoch ( ) const
inline

Coordinate epoch.

Definition at line 486 of file target.hpp.

Referenced by ProperMotionTarget().

◆ name()

std::string siderust::ProperMotionTarget::name ( ) const
inlineoverridevirtual

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

Implements siderust::Target.

Definition at line 472 of file target.hpp.

◆ operator=() [1/2]

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

References ProperMotionTarget().

◆ operator=() [2/2]

ProperMotionTarget & siderust::ProperMotionTarget::operator= ( ProperMotionTarget && other)
inlinenoexcept

Definition at line 453 of file target.hpp.

References ProperMotionTarget().

◆ position()

const spherical::direction::ICRS & siderust::ProperMotionTarget::position ( ) const
inline

ICRS position at the coordinate epoch.

Definition at line 489 of file target.hpp.

Referenced by ProperMotionTarget().

◆ proper_motion()

const ProperMotion & siderust::ProperMotionTarget::proper_motion ( ) const
inline

Proper motion rates.

Definition at line 492 of file target.hpp.

Referenced by ProperMotionTarget().


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