siderust-cpp 0.8.0
Header-only C++ wrapper for siderust
Loading...
Searching...
No Matches
target.hpp File Reference

Strongly-typed fixed-direction Target for any supported frame. More...

#include "altitude.hpp"
#include "azimuth.hpp"
#include "coordinates.hpp"
#include "ffi_core.hpp"
#include "time.hpp"
#include "trackable.hpp"
#include <sstream>
#include <string>
#include <type_traits>
#include <utility>
#include <vector>
Include dependency graph for target.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  siderust::DirectionTarget< C >
 Fixed celestial direction target — a Target for a specific sky position. More...
 
class  siderust::ProperMotionTarget
 ICRS target with proper motion (RAII wrapper over the FFI handle). More...
 

Namespaces

namespace  siderust
 
namespace  siderust::detail
 

Typedefs

using siderust::ICRSTarget = DirectionTarget< spherical::direction::ICRS >
 Fixed direction in ICRS (most common use-case).
 
using siderust::ICRFTarget = DirectionTarget< spherical::direction::ICRF >
 Fixed direction in ICRF (treated identically to ICRS in Siderust).
 
using siderust::EquatorialMeanJ2000Target = DirectionTarget< spherical::direction::EquatorialMeanJ2000 >
 Fixed direction in mean equatorial coordinates of J2000.0 (FK5).
 
using siderust::EquatorialMeanOfDateTarget = DirectionTarget< spherical::direction::EquatorialMeanOfDate >
 Fixed direction in mean equatorial coordinates of date (precessed only).
 
using siderust::EquatorialTrueOfDateTarget = DirectionTarget< spherical::direction::EquatorialTrueOfDate >
 
using siderust::EclipticMeanJ2000Target = DirectionTarget< spherical::direction::EclipticMeanJ2000 >
 Fixed direction in mean ecliptic coordinates of J2000.0.
 

Detailed Description

Strongly-typed fixed-direction Target for any supported frame.

DirectionTarget<C> represents a fixed celestial direction (star, galaxy, or any user-defined sky coordinate) in any supported reference frame and exposes altitude/azimuth computations via the same observer/window API as the body helpers in altitude.hpp and azimuth.hpp.

It is one concrete implementation of Target (the common abstract base). For moving solar-system bodies use BodyTarget; for catalog stars use StarTarget.

The template parameter C must be an instantiation of spherical::Direction<F> for a frame F that can be transformed to ICRS (i.e., frames::has_frame_transform_v<F, frames::ICRS> must be true). Non-ICRS directions are silently converted to ICRS at construction; the original typed direction is retained as C++ state.

Supported frames:

  • frames::ICRS, frames::ICRF
  • frames::EquatorialMeanJ2000, frames::EquatorialMeanOfDate, frames::EquatorialTrueOfDate
  • frames::EclipticMeanJ2000

Convenience aliases:

  • ICRSTarget, ICRFTarget
  • EquatorialMeanJ2000Target, EquatorialMeanOfDateTarget, EquatorialTrueOfDateTarget
  • EclipticMeanJ2000Target

Definition in file target.hpp.