UdonLibrary
1.0.0
機械システム研究部 C++ ライブラリ
Toggle main menu visibility
読み取り中…
検索中…
一致する文字列を見つけられません
Polar.hpp
[詳解]
1
//
2
// 直交座標系 前方定義
3
//
4
// Copyright (c) 2022 udonrobo
5
//
6
7
#pragma once
8
9
#include <
Udon/Traits/EnumerableMacro.hpp
>
10
#include <
Udon/Serializer/Serializer.hpp
>
11
12
namespace
Udon
13
{
14
15
16
struct
Vec2
;
17
18
20
struct
Polar
21
{
23
using
ValueType
= double;
24
26
ValueType
r
;
27
29
ValueType
theta
;
30
32
constexpr
Polar
() noexcept
33
:
r
()
34
,
theta
()
35
{
36
}
37
41
constexpr
Polar
(
ValueType
r
,
ValueType
theta
) noexcept
42
:
r
(
r
)
43
,
theta
(
theta
)
44
{
45
}
46
48
Polar
(
const
Polar
&) =
default
;
49
51
Polar
&
operator=
(
const
Polar
&) =
default
;
52
55
ValueType
x
() const noexcept
56
{
57
return
r
* cos(
theta
);
58
}
59
62
ValueType
y
() const noexcept
63
{
64
return
r
* sin(
theta
);
65
}
66
67
friend
constexpr
Polar
operator+
(
const
Polar
& lhs,
const
Polar
& rhs)
noexcept
{
return
{ lhs.r + rhs.r, lhs.theta + rhs.theta }; }
68
friend
constexpr
Polar
operator-
(
const
Polar
& lhs,
const
Polar
& rhs)
noexcept
{
return
{ lhs.r - rhs.r, lhs.theta - rhs.theta }; }
69
friend
constexpr
Polar
operator*
(
const
Polar
& lhs,
const
Polar
& rhs)
noexcept
{
return
{ lhs.r * rhs.r, lhs.theta * rhs.theta }; }
70
friend
constexpr
Polar
operator/
(
const
Polar
& lhs,
const
Polar
& rhs)
noexcept
{
return
{ lhs.r / rhs.r, lhs.theta / rhs.theta }; }
71
72
Polar
&
operator+=
(
const
Polar
& rhs)
noexcept
{
return
*
this
= *
this
+ rhs; }
73
Polar
&
operator-=
(
const
Polar
& rhs)
noexcept
{
return
*
this
= *
this
- rhs; }
74
Polar
&
operator*=
(
const
Polar
& rhs)
noexcept
{
return
*
this
= *
this
* rhs; }
75
Polar
&
operator/=
(
const
Polar
& rhs)
noexcept
{
return
*
this
= *
this
/ rhs; }
76
77
friend
constexpr
bool
operator==
(
const
Polar
& lhs,
const
Polar
& rhs)
noexcept
{
return
lhs.r == rhs.r && lhs.theta == rhs.theta; }
78
friend
constexpr
bool
operator!=
(
const
Polar
& lhs,
const
Polar
& rhs)
noexcept
{
return
not(lhs == rhs); }
79
81
constexpr
explicit
operator
bool() const noexcept {
return
r
or
theta
; }
82
85
Vec2
toVector
() const noexcept;
86
87
UDON_ENUMERABLE
(
r
,
theta
);
88
};
89
}
// namespace Udon
EnumerableMacro.hpp
Serializer.hpp
Udon
Definition
Bit.hpp:12
Udon::Polar::operator/
friend constexpr Polar operator/(const Polar &lhs, const Polar &rhs) noexcept
Definition
Polar.hpp:70
Udon::Polar::x
ValueType x() const noexcept
x 座標を取得する
Definition
Polar.hpp:55
Udon::Polar::y
ValueType y() const noexcept
y 座標を取得する
Definition
Polar.hpp:62
Udon::Polar::Polar
Polar(const Polar &)=default
デフォルトコピーコンストラクタ
Udon::Polar::Polar
constexpr Polar(ValueType r, ValueType theta) noexcept
コンストラクタ
Definition
Polar.hpp:41
Udon::Polar::theta
ValueType theta
角度
Definition
Polar.hpp:29
Udon::Polar::ValueType
double ValueType
要素の型
Definition
Polar.hpp:23
Udon::Polar::operator-
friend constexpr Polar operator-(const Polar &lhs, const Polar &rhs) noexcept
Definition
Polar.hpp:68
Udon::Polar::operator/=
Polar & operator/=(const Polar &rhs) noexcept
Definition
Polar.hpp:75
Udon::Polar::r
ValueType r
中心からの距離
Definition
Polar.hpp:26
Udon::Polar::UDON_ENUMERABLE
UDON_ENUMERABLE(r, theta)
Udon::Polar::operator==
friend constexpr bool operator==(const Polar &lhs, const Polar &rhs) noexcept
Definition
Polar.hpp:77
Udon::Polar::toVector
Vec2 toVector() const noexcept
ベクトルに変換する
Definition
Polar.hpp:12
Udon::Polar::operator!=
friend constexpr bool operator!=(const Polar &lhs, const Polar &rhs) noexcept
Definition
Polar.hpp:78
Udon::Polar::operator*
friend constexpr Polar operator*(const Polar &lhs, const Polar &rhs) noexcept
Definition
Polar.hpp:69
Udon::Polar::operator+=
Polar & operator+=(const Polar &rhs) noexcept
Definition
Polar.hpp:72
Udon::Polar::operator*=
Polar & operator*=(const Polar &rhs) noexcept
Definition
Polar.hpp:74
Udon::Polar::operator=
Polar & operator=(const Polar &)=default
デフォルトコピー代入演算子
Udon::Polar::operator+
friend constexpr Polar operator+(const Polar &lhs, const Polar &rhs) noexcept
Definition
Polar.hpp:67
Udon::Polar::operator-=
Polar & operator-=(const Polar &rhs) noexcept
Definition
Polar.hpp:73
Udon::Polar::Polar
constexpr Polar() noexcept
デフォルトコンストラクタ
Definition
Polar.hpp:32
Udon::Vec2
二次元ベクトル
Definition
Vector2D.hpp:22