Chassis v2.1.1
Chassisはロボコンでの足回り制御を行うためのC++ライブラリである。
Loading...
Searching...
No Matches

座標、速度を示す構造体を提供。 rct::Coordinate, rct::Velocity More...

Collaboration diagram for unit:

Data Structures

struct  rct::CoordinateUnit< N >
 座標、速度を示す構造体。 rct::Coordinate, rct::Velocity
More...
 

Typedefs

using rct::Coordinate = CoordinateUnit< 0 >
 座標を示す構造体
 
using rct::Velocity = CoordinateUnit<-1 >
 速度を示す構造体
 

Functions

template<int M, int N>
CoordinateUnit< Mrct::unit_cast (const CoordinateUnit< N > &obj)
 CoordinateUnitをCoordinateUnitにキャストする。
 
constexpr float rct::distance (const Coordinate &p1, const Coordinate &p2)
 2つの座標間の距離を計算する。
 
template<class T >
constexpr T rct::lerp (const T &a, const T &b, float t) noexcept
 二点aとbの間を、時間tで線形補間 (linear interpolate) する。
 

operator

演算子を定義 CoordinateUnit同士の加減算, floatとの乗除算, chrono::microsecondsとの乗除算

template<int N>
CoordinateUnit< Nrct::operator+ (const CoordinateUnit< N > &lhs, const CoordinateUnit< N > &rhs)
 
template<int N>
CoordinateUnit< Nrct::operator- (const CoordinateUnit< N > &lhs, const CoordinateUnit< N > &rhs)
 
template<int N>
CoordinateUnit< Nrct::operator* (const CoordinateUnit< N > &lhs, const float rhs)
 
template<int N>
CoordinateUnit< Nrct::operator* (const float lhs, const CoordinateUnit< N > &rhs)
 
template<int N>
CoordinateUnit< Nrct::operator/ (const CoordinateUnit< N > &lhs, const float rhs)
 
template<int N>
CoordinateUnit< N+1 > rct::operator* (const CoordinateUnit< N > &obj, const std::chrono::microseconds &sec)
 
template<int N>
CoordinateUnit< N+1 > rct::operator* (const std::chrono::microseconds &sec, const CoordinateUnit< N > &obj)
 
template<int N>
CoordinateUnit< N - 1 > rct::operator/ (const CoordinateUnit< N > &obj, const std::chrono::microseconds &sec)
 
template<int N>
bool rct::operator== (const CoordinateUnit< N > &lhs, const CoordinateUnit< N > &rhs)
 
template<int N>
bool rct::operator!= (const CoordinateUnit< N > &lhs, const CoordinateUnit< N > &rhs)
 

Detailed Description

座標、速度を示す構造体を提供。 rct::Coordinate, rct::Velocity

Typedef Documentation

◆ Coordinate

座標を示す構造体

Definition at line 69 of file CoordinateUnit.h.

◆ Velocity

速度を示す構造体

Definition at line 71 of file CoordinateUnit.h.

Function Documentation

◆ distance()

constexpr float rct::distance ( const Coordinate p1,
const Coordinate p2 
)
constexpr

2つの座標間の距離を計算する。

Parameters
p1,p22つの座標
Returns
2点間の距離[mm]

Definition at line 86 of file CoordinateUnit.h.

◆ lerp()

template<class T >
constexpr T rct::lerp ( const T a,
const T b,
float  t 
)
constexprnoexcept

二点aとbの間を、時間tで線形補間 (linear interpolate) する。

Template Parameters
T任意の引数型 T型同士の加減算, floatとの乗算が定義されていることを要求する。
Parameters
a開始地点
b目標地点
t経過時間[%]
Returns
a + t * (b - a);
Note
t == 0 の時 a, t == 1のとき bを返す。

Definition at line 98 of file CoordinateUnit.h.

◆ operator!=()

template<int N>
bool rct::operator!= ( const CoordinateUnit< N > &  lhs,
const CoordinateUnit< N > &  rhs 
)

Definition at line 151 of file CoordinateUnit.h.

◆ operator*() [1/4]

template<int N>
CoordinateUnit< N > rct::operator* ( const CoordinateUnit< N > &  lhs,
const float  rhs 
)

Definition at line 118 of file CoordinateUnit.h.

◆ operator*() [2/4]

template<int N>
CoordinateUnit< N+1 > rct::operator* ( const CoordinateUnit< N > &  obj,
const std::chrono::microseconds &  sec 
)

Definition at line 134 of file CoordinateUnit.h.

◆ operator*() [3/4]

template<int N>
CoordinateUnit< N > rct::operator* ( const float  lhs,
const CoordinateUnit< N > &  rhs 
)

Definition at line 124 of file CoordinateUnit.h.

◆ operator*() [4/4]

template<int N>
CoordinateUnit< N+1 > rct::operator* ( const std::chrono::microseconds &  sec,
const CoordinateUnit< N > &  obj 
)

Definition at line 138 of file CoordinateUnit.h.

◆ operator+()

template<int N>
CoordinateUnit< N > rct::operator+ ( const CoordinateUnit< N > &  lhs,
const CoordinateUnit< N > &  rhs 
)

Definition at line 106 of file CoordinateUnit.h.

◆ operator-()

template<int N>
CoordinateUnit< N > rct::operator- ( const CoordinateUnit< N > &  lhs,
const CoordinateUnit< N > &  rhs 
)

Definition at line 112 of file CoordinateUnit.h.

◆ operator/() [1/2]

template<int N>
CoordinateUnit< N > rct::operator/ ( const CoordinateUnit< N > &  lhs,
const float  rhs 
)

Definition at line 128 of file CoordinateUnit.h.

◆ operator/() [2/2]

template<int N>
CoordinateUnit< N - 1 > rct::operator/ ( const CoordinateUnit< N > &  obj,
const std::chrono::microseconds &  sec 
)

Definition at line 142 of file CoordinateUnit.h.

◆ operator==()

template<int N>
bool rct::operator== ( const CoordinateUnit< N > &  lhs,
const CoordinateUnit< N > &  rhs 
)

Definition at line 146 of file CoordinateUnit.h.

◆ unit_cast()

template<int M, int N>
CoordinateUnit< M > rct::unit_cast ( const CoordinateUnit< N > &  obj)

CoordinateUnitをCoordinateUnitにキャストする。

Template Parameters
Mキャスト先の次元
N引数のCoordinateUnitの次元
Parameters
objキャストするオブジェクト
Returns
キャスト後のオブジェクト

Definition at line 79 of file CoordinateUnit.h.