🐙
はじめてのOSS参加?
なにしたの
three.js editor
のバグを発見したので Github から Pull request 送ってみました。
まだマージはされていません。(2020-12-31)
three.js editor とは
three.js
を使用した3Dデータ編集Webアプリです。
Progressive Web Apps なのでインストールして使うこともできます。
どんなバグ
特定の操作をすると、一部のオブジェクトで使える頂点を追加するボタンが効かなくなります。
-
上のメニューから
Add
→Lathe
でオブジェクトを追加。
-
Geometory
を選択。
-
一番下の頂点(この手順では
11
)の-
をクリックして削除。
この操作以降、+
ボタンを押しても頂点追加ができなくなります。
修正内容
配列要素に想定外のnull
が含まれていることによるエラーだったので、開発者コンソールを見れば問題箇所が表示されていました。
( ˘ω˘).oO(なんでテストで発見されなかったんだろう?)
ソースで言うとthree.js/editor/js/libs/ui.three.js
の730行あたりです。
修正前
UIPoints2.addRow = function () {
if ( this.pointsUI.length === 0 ) {
this.pointsList.add( this.createPointRow( 0, 0 ) );
} else {
var point = this.pointsUI[ this.pointsUI.length - 1 ];
this.pointsList.add( this.createPointRow( point.x.getValue(), point.y.getValue() ) );
}
this.update();
};
修正後
UIPoints2.addRow = function () {
var x = 0, y = 0;
for ( var i = this.pointsUI.length - 1; i >= 0; i -- ) {
var pointUI = this.pointsUI[ i ];
if ( pointUI != null ) {
x = pointUI.x.getValue();
y = pointUI.y.getValue();
break;
}
}
this.pointsList.add( this.createPointRow( x, y ) );
this.update();
};
そもそもthis.pointsUI
にnull
が含まれているのが悪いような気もするのですが、他のメソッドはnull
を無視して処理するようになっていたので、null
の要素はそのままにしました。
Github自体最近使い始めたレベルなのでわからないことが多いのですが、やってみないとわからないのでおっかなびっくり Pull request してみました。
無事マージされたらいいな。
Discussion