進め、自分。

ゲームプログラマがC++のことなどを。

角度クラス 実装その1

少しずつですが、角度クラス実装してます。

以前の構想ではラジアン、デグリーと、360度を1.0で表す3種類を扱う予定でしたが、
改めて考えてみると、1.0で表すクラス1つでいいんじゃないかと思ってきました。

もちろん、ラジアンやデグリー値との相互変換は必要だし変換コストもかかりますが、
そんなに負荷は気にならないんじゃないなかーと。
正規化しようとしたら 1.0 で扱ってる方がやりやすかったりもするので。
まあ、もっと実装進めていったら考え変わるかもしれませんが…
※3種類を1つのクラステンプレートで実装する方がやりがいあって楽しいですし

今のところ

  • 四則演算
  • 比較演算子
  • 正規化
  • 最短距離計算

を実装しました。
次はラジアンやデグリーからの変換やらを実装予定。

あと、この角度クラスの定数値を定義しようとして、
constexprを少し調べてました。
クラスをconstexprとして扱うのはなかなかめんどくさいですねー。
いや、めんどくさいっていうか修飾子が多い。
コンストラクタが
constexpr explicit Hoge(...) noexcept {...}
とか修飾子だらけ。
c++11以降をバリバリ使っている方々はnoexceptとかまじめにつけてるもんなんでしょうか?