このドキュメントは、幾何形状クラスライブラリ JGCL の外部仕様について述べています。

はじめに

JGCL は、Java のクラスライブラリです。

JGCL は、 線や面を用いて何かの形 (視覚・触覚でとらえ得る、物事の有様) を扱わねばならないときに、 その線や面の位置や大きさを処理するためのクラスを提供します。

以下の記述では、 「位置や大きさを指定した線や面」のことを「幾何要素」と呼んでいます。

動作環境

JGCL は、JDK 1.1 以降の環境で動作します。

JGCL を構成するパッケージ

JGCL を構成するクラスは、 現時点ではすべて一つのパッケージ jp.go.ipa.jgcl に 属しています。

JGCL が利用するパッケージ

JGCL を構成するクラスでは、java.lang, java.util および java.io パッケージに 含まれるクラスを利用しています。

処理対象

JGCL が処理の対象とする幾何要素には以下の種類があります。

これらの幾何要素の表現は、原則として 形状データ交換の国際標準規格として ISO により策定された STEP/Geometry に準じています。

線は2次元/3次元の両方の表現、 面は3次元での表現を持っています。 ただし、線は次元によって別のクラスとして実装されています。 つまり、(例えば直線ならば) 2次元の直線と3次元の直線は別のクラスになっています。

なお、JGCL では、基本的に右手直交座標系での表現のみを扱います。

また、JGCL では、座標値や縮尺値、パラメータ値などの実数値は、すべて double で扱います。

JGCL でできること

JGCL の各オブジェクトは、以下のような機能を持っています。

ここで、「線形な表現」とは「直線分の配列 (一次元あるいは二次元)」のことです。

JGCL でできないこと

JGCL には、幾何要素間の論理的な接続関係を表す位相情報を処理するためのクラスはありません。 また、幾何要素を画面その他に描画する機能も持っていません。

演算条件について

JGCL では、各種の幾何演算を以下のような許容誤差値の下で実行します。

これらの許容誤差値をひとまとめにしたものが「演算条件」です。 演算条件は幾何要素とは別の独立したクラスになっており、 次のような特徴を持っています。

例外について

JGCL で起こる例外状況の多くは、 通常起こり得る正当な処理の結果ではなく、 バグによるものであると考えています。 よって、演算途中で起こる例外の多くは 予め catch する必要のない RuntimeException を継承した オブジェクトとして発生します。