🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
ast::TimeInterval类 参考

#include <TimeInterval.hpp>

Public 成员函数

 TimeInterval (const TimePoint &start, const TimePoint &stop)
 
 TimeInterval (const TimePoint &epoch, double start, double stop)
 
const TimePointstart () const
 
const TimePointgetStart () const
 
void setStart (const TimePoint &start)
 
const TimePointstop () const
 
const TimePointgetStop () const
 
void setStop (const TimePoint &stop)
 
void setBounds (const TimePoint &start, const TimePoint &stop)
 
void setBounds (const TimePoint &epoch, double start, double stop)
 
void setBounds (const TimePoint &epoch, const Interval &interval)
 
Interval toInterval (const TimePoint &epoch) const
 
void setWhole ()
 
void setEmpty ()
 
double duration () const
 
bool isEmpty () const
 
bool isPoint () const
 
bool isDegenerate () const
 
bool isValid () const
 
bool isNonEmpty () const
 
bool contains (const TimePoint &t) const
 
std::string toString (int precision=kTimePointDefaultFormatPrecision) const
 
AST_CORE_API errc_t discretize (const TimePoint &epoch, double step, std::vector< double > &times) const
 
AST_CORE_API errc_t discretize (double step, std::vector< TimePoint > &times) const
 
AST_CORE_API errc_t discretize (double step, TimeList &times) const
 
TimePointRange discretize (double step) const
 
DoubleRange discretize (const TimePoint &epoch, double step) const
 
size_t discretizedCount (double step) const
 
AST_CORE_API TimeIntervalunite (const TimeInterval &other)
 
AST_CORE_API TimeInterval united (const TimeInterval &other) const
 
AST_CORE_API TimeIntervalintersect (const TimeInterval &other)
 
AST_CORE_API TimeInterval intersected (const TimeInterval &other) const
 
AST_CORE_API bool intersects (const TimeInterval &other) const
 
TimeIntervaloperator|= (const TimeInterval &other)
 
TimeInterval operator| (const TimeInterval &other) const
 
TimeIntervaloperator&= (const TimeInterval &other)
 
TimeInterval operator& (const TimeInterval &other) const
 

静态 Public 成员函数

static TimeInterval Parse (StringView strStart, StringView strEnd)
 
static TimeInterval Empty ()
 

详细描述

时间区间

时间区间表示一个连续时间区间,由开始时间点和结束时间点定义。

构造及析构函数说明

◆ TimeInterval() [1/2]

ast::TimeInterval::TimeInterval ( const TimePoint & start,
const TimePoint & stop )
inline

构造函数

参数
start开始时间点
stop结束时间点

◆ TimeInterval() [2/2]

ast::TimeInterval::TimeInterval ( const TimePoint & epoch,
double start,
double stop )
inline

构造函数

参数
epoch时间区间的基准时间点
start开始时间点(相对基准时间点的秒数)
stop结束时间点(相对基准时间点的秒数)

成员函数说明

◆ discretize() [1/3]

errc_t ast::TimeInterval::discretize ( const TimePoint & epoch,
double step,
std::vector< double > & times ) const

将时间区间离散化

参数
epoch时间区间的基准时间点
step离散化步长(秒)
times输出离散化时间点
返回
errc_t 错误码

◆ discretize() [2/3]

errc_t ast::TimeInterval::discretize ( double step,
std::vector< TimePoint > & times ) const

将时间区间离散化

参数
step离散化步长(秒)
times输出离散化时间点
返回
errc_t 错误码

◆ discretize() [3/3]

errc_t ast::TimeInterval::discretize ( double step,
TimeList & times ) const

将时间区间离散化

参数
step离散化步长(秒)
times输出离散化时间点列表
返回
errc_t 错误码

◆ discretizedCount()

size_t ast::TimeInterval::discretizedCount ( double step) const
inline

计算离散化采样点数量

返回 discretize(step) 所生成的采样点数(含首尾端点)。当 step > 0.0 且区间非空(!isEmpty())时为 ceil(duration()/step) + 1, 点区间(start == stop)返回 1,否则返回 0(无有效采样点)。该数量不依赖于基准 epoch。

参数
step离散化步长(秒)
返回
采样点数

◆ intersect()

TimeInterval & ast::TimeInterval::intersect ( const TimeInterval & other)

原地交集

参数
other要合并的时间区间
返回
*this
注解
不相交或 NaN 时结果为规范空区间({+∞,-∞},isEmpty());相切时结果为点区间(start == stop,非空)。

◆ intersected()

TimeInterval ast::TimeInterval::intersected ( const TimeInterval & other) const

交集(返回副本)

参数
other要合并的时间区间
返回
交集(不修改当前对象)
注解
不相交或 NaN 时结果为规范空区间({+∞,-∞},isEmpty());相切时结果为点区间(start == stop,非空)。

◆ intersects()

bool ast::TimeInterval::intersects ( const TimeInterval & other) const

判断两个时间区间是否相交(非空交集,含仅相切产生的点区间)

参数
other另一个时间区间
返回
是否相交

◆ setBounds() [1/3]

void ast::TimeInterval::setBounds ( const TimePoint & epoch,
const Interval & interval )
inline

设置时间区间的开始时间点和结束时间点

参数
epoch时间区间的基准时间点
interval相对基准时间点的时间区间

◆ setBounds() [2/3]

void ast::TimeInterval::setBounds ( const TimePoint & epoch,
double start,
double stop )
inline

设置时间区间的开始时间点和结束时间点

参数
epoch时间区间的基准时间点
start开始时间点(相对基准时间点的秒数)
stop结束时间点(相对基准时间点的秒数)

◆ setBounds() [3/3]

void ast::TimeInterval::setBounds ( const TimePoint & start,
const TimePoint & stop )
inline

设置时间区间的开始时间点和结束时间点

参数
start开始时间点
stop结束时间点

◆ toInterval()

Interval ast::TimeInterval::toInterval ( const TimePoint & epoch) const
inline

将绝对时间区间转换为相对于给定基准历元的相对时间区间

以 epoch 为相对时间的零点,将绝对区间折算为基于 epoch 的秒偏移量, 即 Interval{getStart() - epoch, getStop() - epoch}。

参数
epoch时间区间的基准时间点(相对时间区间的零点)
返回
相对时间区间
注解
与 setBounds(epoch, interval) 互为逆操作;对同一 epoch 二者可往返复原。
转换保持区间方向:若 start() <= stop(),则返回区间的 start_ <= stop_。 无限时间区间(±∞)映射为 Interval{∓∞},保持无限语义;零时间区间映射为 零长度相对区间(start_ == stop_)。Interval 的聚合类型不受影响。

◆ toString()

std::string ast::TimeInterval::toString ( int precision = kTimePointDefaultFormatPrecision) const
inline

将时间区间转换为字符串

参数
precision时间点格式化精度
返回
字符串表示

◆ unite()

TimeInterval & ast::TimeInterval::unite ( const TimeInterval & other)

原地并集:将另一个时间区间并入自身(凸包)

参数
other要合并的时间区间
返回
*this
警告
凸包会桥接不相交区间的空隙;如需保留空隙的集合并集,请使用 IntervalList::united。

◆ united()

TimeInterval ast::TimeInterval::united ( const TimeInterval & other) const

并集(返回副本):凸包

参数
other要合并的时间区间
返回
并集(不修改当前对象)

该类的文档由以下文件生成: