あけましておめでとうございます
年が明けてからなんとなくplyファイルのローダを書いていたんですが,バイナリファイルのエンディアン変換でちょっと躓いたので覚え書き
そもそもエンディアンがビット単位で逆転するものと勘違いしていたのが躓いた原因で,実際はバイト単位で逆転しているんですね
エンディアン変換のコードは以下の様な感じで書いてみました
template<typename T>
T convertEndian( T src ){
const size_t size = sizeof( T );
T dst;
char* srcPtr = reinterpret_cast<char*>( &src );
char* dstPtr = reinterpret_cast<char*>( &dst );
for( int i=0; i<size; i++ ){
dstPtr[i] = srcPtr[size - 1 - i];
}
return dst;
}
本当はへび年に合わせた適当なモデルをレンダリングして上げたかったのですが,ヤル気がでなかったのでやめました