リニアングラフ3Dをアップデート、API関連機能などを拡充

RINEARNでは先日、リニアングラフ3Dの最新版 Ver.5.6.32 をリリースいたしました。

今回のアップデートは、先行開発版での ADL-20230123 から ADL-20230409 までの開発内容を全て反映させたものです。 この記事では、その具体的な内容を、一つずつピックアップしてお知らせいたします。

- 目次 -

Java言語での制御機能(API)の拡張

まずは、リニアングラフをJava言語で制御するためのAPIの拡張です。ボリューム的にはこれが今回の更新のメインです。

なお、APIのドキュメント全体はこちらから参照できます。 また、そもそもJava言語でリニアングラフ3Dを制御する方法についてはこちらをご参照ください。

4次元データ配列を直接渡してプロットする事が可能に

X/Y/Z座標値にスカラ値を加えた4次元のデータを扱うには、従来はデータファイルに4列書式で記載し、それを読み込ませるしかありませんでした。

リニアングラフのJava言語用APIには、データを double 型の配列で直接渡す方法もあるのですが、これまで渡せるのはX/Y/Z値配列のみで、4次元目の値の配列を渡す方法が無かったためです。

そこで今回、4次元データも配列として直接渡せるようにするため、 RinearnGraph3Dクラスに下記メソッドを追加しました。

4次元データは、空間中の各点にスカラー値を持たせたデータです。このスカラー値は、「グラデーション」オプションで彩色次元を「COLUMN-4」に設定すると、色として表現できます。 というよりも、現状ではそれ以外では表示方法が無いため、4次元データは常にグラデーションのCOLUMN-4モードと併用する事になります。

なお、グラデーションの設定を自動で行うには、まず手動で設定を行った結果を、設定ファイルに保存してください。 そしてそれを loadConfigurationFile で読み込むと反映されます。

データファイルを開くメソッドにおいて、書式を指定可能に

上で扱った4次元データの配列渡しとも関連するのですが、データをファイル経由で渡すメソッドにも少し拡張を加えました。

具体的には、RinearnGraph3Dクラスのデータファイルを開く openDataFile/openDataFiles メソッドに、以下のような引数追加版をサポートしました。

引数 format や formats が今回追加されたもので(省略可能です)、ここでデータファイルの書式を明示できます。これは主に、4次元データを記載した、4カラムのファイルを、書式の確認メッセージ(すぐ下で説明します)を表示させずに開くための拡張です。

これまでは、書式はデータファイルの内容に基づいて自動判定されていました。 従来はそれで特に大きな問題はなく、そもそもリニアングラフを(Java言語による制御ではなく)普通に起動して使う場合も、恐らく多くの人が自動判定モードでファイルを開いていると思います。

一方、4次元データは、自動判定だと「 4次元データと見なすべきか、マトリックス書式と見なすべきか 」という点が少しあいまいなため、ユーザーに確認メッセージを表示し、どちらかを選択してもらう挙動になっています。

しかし、Java言語でリニアングラフを制御して自動処理などを行っている際に、4次元データのファイルを開く度に、確認メッセージが表示されるのは厄介です。 そのため、今回のメソッド拡張を行い、書式を引数として明示指定できるようにしました。そうした場合、確認メッセージの表示を回避できます。

描画エンジンの直接操作において、文字列の描画をサポート

リニアングラフのJava言語用APIでは、必要に応じて、描画エンジンを直接操作し、3D空間に点/線/面などを自由に描く事ができます。使い方はこちらをご参照ください。

上記の描画エンジン操作のAPIを提供する RinearnGraph3DRenderer クラスにおいて、 今回新たに、文字列を描画するための下記メソッドを追加しました。

上記メソッドを用いて、3D空間の自由な位置に、自由なフォント/サイズで文字を描画できます。補助線を引いたり、独自の目盛りを描画したりする際などに便利です。

スクリーン横の操作部品の非表示化

スクリーン横の、各軸の長さを操作するバーなどの部品を、非表示にする(つまり消す)事ができるようになりました。

非表示にするには、RinearnGraph3Dクラスの下記メソッドを使用します。

このUIの非常時化は、リニアングラフ3Dを、Java言語での簡易3D描画パネルとして使う用途や、自作のソフトに部品として組み込む用途などにおいて有用です。 そういった用途では、画面を極力シンプルにしたい場合や、ユーザーが行える操作を必要最小限にしたい場合などがあるためです。

なお、そのような場合、併せて setMenuVisible(boolean visible) メソッドでメニューバーや右クリックメニューも非表示にすると効果的です。 そうすると、ウィンドウ内にスクリーンがあるだけの、まさに「ただの3D表示画面」といった雰囲気の画面にできます。

VCSSLでの制御機能(Graph3Dライブラリ)の拡張

データファイルを開く関数において、書式を指定可能に

リニアングラフ3Dは、Java言語だけでなく、プログラミング言語VCSSLでも制御が可能です。詳しい使い方はこちらをご参照ください。

VCSSLでは、Graph3Dライブラリの関数群によって、リニアングラフ3Dを制御します。

このGraph3Dライブラリにおいて、データファイルを開く setGraph3DFile 関数に、書式指定のための引数を追加した版を新たにサポートしました。

引数 mode に、データファイルの書式を指定します。例えば4次元データの場合は "4COL_CSV" や "4COL_STSV" などで、前者はCSV、後者はタブ/空白区切りファイルです。

この拡張を行った理由は、既に述べたJava言語用APIでの openDataFiles メソッドの拡張と全く同じです。

なお、今回のリニアングラフ3Dのリリースと同時に、VCSSLの実行環境も、アップデート版の Ver.3.4.34 をリリースしています。ただ、その拡張内容は、ここで述べた Graph3D ライブラリの関数追加のみです。

バグ修正など

今回のバージョンでは、2件のバグ修正を含んでいます。

一部のマウスのホイールスクロール操作に関するバグ修正

一部のマウス(特に、ホイールに高解像度センサーの一種を用いているもの)を使用している環境において、 マウスホイールの回転に対する挙動が、回転方向によらず常にズームアウトになってしまうバグを修正しました。

なお、従来から問題が生じなかったマウスに対しては、特に影響は無く、これまでと何も変わりません。

設定ファイルを読み込んだ際の挙動を一部修正

設定によって「平面化 / Flat」オプションが有効化された時に、同オプションの詳細設定画面が立ち上がってしまう挙動を修正しました。

詳細設定画面は本来、手動で同オプションをONにした際に立ち上がるものですが、 その設定内容は設定ファイル内に記載されているため、 設定読み込み時に立ち上がっても邪魔なだけです。 しかし、現状では立ち上がるようになっていたため、修正しました。

謝辞

Ver.5.6.32 でのアップデート内容は、以上の通りです。

今回の機能の実装やバグ修正などに際し、複数のユーザー様から、フィードバックや先行開発版での検証等に多大なご協力をいただきました。この場をお借りして、改めて御礼申し上げます。

今後もアップデートの際は、このコーナーにてお知らせいたします!