概要
点群データ(現在ply,pcdファイルのみ)を開くのにいちいちMeshLabもしくはvisualizerプログラムを開くのが面倒になったので、vscodeから直接中身の確認が可能な拡張機能vscode-pc-viewerを作成しました。
この手の拡張機能はすでに存在してそうだったのですが、ぱっと見で点群用はなかったので自作しました(検索ワードに引っかかった各拡張機能の説明文を少し読んだりした程度なのでもっとあるかもしれませんが)。
これに関連する拡張機能は3D Viwer for VSCodeぐらいしかありませんでした。
下の図は、頂点とそのRGB値を載せたplyファイルを表示させたものです。
プログラム
作成したプログラムはgithubに上がってます。プログラムの中身はtomoki1207さんのvscode-pdfをベースとして作成しました。
ファイルのロード、表示はthree.jsを参考に作成しており、自分で書いた部分は少ないです。
気になった点
- プログラムの項の@tomoki1207のリンク先にも述べられているように、一瞬ファイルの中身がそのまま映るという現象に対して、onCustomEditorを使うことでその現象がなくなりました(少なくとも自分の環境では)。ただこの方法を用いた場合、バイナリデータとして保存されているpcdファイルなどが読み取れなくなります(開けないと警告メッセージが出る)。そのため、結局@tomoki1207さんの実装をベースとした方を採用しました。
- 現在の実装ならバイナリファイルも開くことができますが、開くたびに「Do you want to open it anyway?」を押さなくてはいけません(下図)。
- 開けるデータであるにもかかわらず、たまに画面が緑色のままになるという現象があります(原因不明)。一応、そのファイルを開き直せばちゃんと表示されます(連続で緑になることもあり)。
あとがき
点群の位置まで視点を移動させる機能とか、点のサイズを変える機能とかあれば便利だと思いましたが実装が面倒。