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
 
ProperMotionTargetoperator= (ProperMotionTarget &&other) noexcept
 
 ProperMotionTarget (const ProperMotionTarget &)=delete
 
ProperMotionTargetoperator= (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, JDepoch () const
 Coordinate epoch.
 
const spherical::direction::ICRSposition () const
 ICRS position at the coordinate epoch.
 
const ProperMotionproper_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< CrossingEventcrossings (const Geodetic &obs, const Period< TT, MJD > &window, qtty::Degree threshold, const SearchOptions &opts={}) const override
 Find threshold-crossing events (rising / setting).
 
std::vector< CulminationEventculminations (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< AzimuthCrossingEventazimuth_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
 
Targetoperator= (const Target &)=delete
 
 Target (Target &&)=default
 
Targetoperator= (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);
ICRS target with proper motion (RAII wrapper over the FFI handle).
Definition target.hpp:422
tempoch::EncodedTime< Scale, Format > Time
Definition time.hpp:36
Proper motion for a star (equatorial).
Definition bodies.hpp:24
A direction on the celestial sphere, compile-time tagged by frame.
Definition spherical.hpp:50

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(), siderust::spherical::Direction< F >::dec(), epoch(), siderust::spherical::Direction< F >::ra(), and siderust::ProperMotion::to_c().

◆ ~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.

◆ ProperMotionTarget() [3/3]

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

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

◆ operator=() [2/2]

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

Definition at line 453 of file target.hpp.

◆ position()

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

ICRS position at the coordinate epoch.

Definition at line 489 of file target.hpp.

◆ proper_motion()

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

Proper motion rates.

Definition at line 492 of file target.hpp.


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