Releases: DrScKAWAMOTO/FullereneViewer
バージョン 1.4.7 (macOS Qt6)
Qt6 で発生していた「フラーレンの形状シミュレーションが止まる(形が変わらなくなる)と、
描画をやめてしまうバグ」に対処。
症状:
タイトルバーの D が消えると同時に描画も止まる。
Qt5 では問題は発生しない。(タイトルバーの D が消えても描画されたまま)
対策:
Qt6.6 のドキュメントには QOpenGLWidget::paintGL() では
Before invoking this function, the context and the framebuffer are bound,
and the viewport is set up by a call to glViewport().
No other state is set and no clearing or drawing is performed by the framework.
と書いてあったが、paintGL() 呼び出し直前では glClear() が呼び出され済みのような
状態になっている。描画実施直前の自前の glClear() を呼ぶのを止めても、フレームの
描画が重なることはなかった!!
対策として、Qt5 およびそれ以前で実施していた以下の実装を Qt6 では廃止することに
した。タイトルバーの D は永久的に表示されたままとなり、その結果、上記問題は起こ
らなくなった。
Qt5 およびそれ以前で実施していた実装とは、以下の条件を全て満たした時は描画しない
というものである。
- シミュレーションが止まった。
- ぐるぐる回していない。
- ピッキングを実施していない。
バージョン 1.4.6 (macOS Qt6)
macOS で Qt 6.6.1 を使ってビルドできるようにした。
バージョン 1.4.5
macOS で Qt 5.15.11 を使ってビルドできるようにした。
バージョン 1.4.4
Pdd とクラスタリングでの五員環距離の定義を元(ボンドからなるパスのうち一番短いパスの長さ)に戻した。
ca-char のクラスタリングで五員環毎に距離の合計を表示。距離の合計が小さい五員環ほど、そのクラスタの中心に位置する。
クラスタリング表示機能追加。
セロファンの色の順番を変更。
表示切替機能追加。
FreeBSD 10.0 でリンクエラーになるのを修正。
半透明のOpenGL描画を正しく実装した。
Version 1.4.3
設定画面:開フラーレンがある場合は、鼓状に配置する機能実装。
メニュー&ショートカット:裏返し機能実装。
メニュー&ショートカット:最遠環除去機能実装。
ca-char で Distance Matrix と呼んでいたものを、Clustering に変更。
Distance Matrix ではボンドの個数で距離を定義していたが、Clustering ではリングの個数で距離を定義し直しした。
Pdd も、リングの個数で距離を定義し直した。
生成式指定画面では、それまで表示していた生成式を初期値として表示するように変更。
Ver 1.4.2
FreeBSD 9.3 で pkg で qt5 をインストールした場合のコンパイルエラー・ドキュメントを修正。(Yuji Nomura)
FreeBSD 9.2 で pkg で qt4 をインストールした場合のコンパイルエラーを修正。(Yuji Nomura)
copyright 修正。
主成分軸、五員環のセロファン、を設定画面で指定できるようにした
ca-server ca-parallel 実装。
ca-generator をパラレル実行させることができる。
assert() に副作用のあるコードを書かないようにした。
ObjectString と MyString クラス実装。
SortedList.h 廃止。
セグメントを複数指定できるように修正 プロセス割り当ては、「未割り当て」は即座に割り当てるが、「割り当て済みを分割」は、30秒タイマで遅延させる。
コールバック用ソケットはあらかじめ作っておく。
ca-parallel wait 実装。
ca-parallel: 分割基準を「残りが多いもの」に変更。
ca-parallel: FreeBSD 9.x でコールバックが待てないのを修正。
ca-parallel: search を collector に変更。
ca-collector のプログレス表示バグ修正。
ca-uniq ca-mirror ca-char を一つのプログラム(ca-char)にまとめた。
ca-char: ヘッダ出力無し対応。
ca-sort: 出力分割対応。
ca-mirror 削除。
主成分軸の表示・非表示を設定画面で指定できるようにした。
主成分軸の長さは sqrt にした。
五員環セロファンの表示・非表示を設定画面で指定できるようにした。
フラーレンメニューをツリービューベースに変更他
ca-char では引数に生成式を指定する方法をやめて、*.gf ファイル指定方法のみにした。
デバッグ表示修正。
境界探索で、探索方向を固定化した。
ca-generator のデフォルトを --symmetric=100 --step-backward にした。
ca-generator --symmetric 時のスクラップを「S1(五員環中心)」「S2/S3/S4/S5(六員環中心)」「S6/S7(カーボン中心)」「S8/S9(ボンド中心)」に変更。
scrap_order 導入。
p_list_most_inside_carbons_on_boundary() などのリストアップ順番を一定方向に統一。
生成式で S1-566566 のような非圧縮形式も許すように拡張。
povray 起動コマンドライン間違い修正。
refleiso 版は削除。
ca-generator の対称フラーレン生成は、五員環への距離を元に次の生成箇所を決定する版と、scrap_order を元に次の生成箇所を決定する版とに分離。コンフィギュレーションで指定。
set_clockwise(-1) は必要とする箇所の直前で実施。
メモリリークテスト実施。
フラーレンメニューをツリービューベースに変更。
ツリービュー実体は自動生成。
unused parameter のウォーニングを黙らせるマクロ導入。
Tube は径の太いものもピックアップ。
リリース手順書作成。
対称軸表示の設定を、静的設定(Config.h)から動的設定(Configuration.h)へ移動した。
時計回り管理をリング生成時に行うように修正し、ca-generator の高速化。
設定ファイルの読み込みが出来なくなっていたのを修正。
メモリリーク退治。
clang 対応。
フラーレン選択ツリーで名前を付けるようにした。
OpenGLUtil::change_fullerene() で fullerene_name がなくてもいいように自分で生成する。
鏡映対称フラーレンは (NoA=60M) などと表示するように変更。
Yフラーレンが C474 (NoA=6M) を表示するようにした。
copy_string() へ移行
POVRay起動コマンドラインの設定画面対応
doc/FreeBSD/HowToCompile-FreeBSD-10.0-ja.md 修正。
POVRay起動コマンドラインを設定画面からひっぱってくる際のパラメータ設定間違い修正。
リリース手順を定めた。
ca- シリーズの機能拡張・性能改善
鏡像もリストアップする版(新)と鏡像を略する版(従来)を Config.h で指定できるようにした。
鏡像もリストアップする版の場合は、鏡像関係を出力するコマンド ca-mirror 追加。
バイナリサーチを使って ca-generator / ca-uniq 高速化。
距離計算のアルゴリズム改良で ca-generator / ca-uniq 高速化。
パターン生成のステップアルゴリズム改良で ca-generator 高速化。
ステップアルゴリズム --step-backward をデフォルトに。
ca-loop / ca-generator は環境変数 CA_STEP_ALGORITHM 採用。
ca-loop 引数省略可能にした。
ca-char は Pdd= 属性、MirrorSymmetric 属性、Mirror= 属性を出力する機能追加。
ca- シリーズで --help も使えるようにした。
Qt pro ファイル整理。
カーボンナノチューブは両方閉じるとパターンが多くなるので、半分だけ閉じたものをリストアップした。n+m<=12。
clang++ でもコンパイルできるようにした。
generator-formulas フォルダは別リポジトリに分離した。
povray コマンドラインを設定画面で指定できるようにした。