|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Beziex Ts (Home) & ダウンロードへ Beziex LG (Home) & ダウンロードへ マニュアル目次
Copyright 1999-2011 EISHIN |
5章 自由曲面関数ライブラリ 1. サンプルのビルド方法 1-1. 基本的なビルド法 サンプル・アプリケーションをビルドするには、次の操作を行う。
2. ソースファイルの構成 ソースファイルは大きく分類して、
対してBeziexフォルダには、自由曲面関数ライブラリそのものが入っている。これ以降、このフォルダ内についてのみ説明することにする。 3. 関数ライブラリ 自由曲面関数ライブラリの関数は大きく分けて、
このうちメイン関数部が、自由曲面を作り上げる心臓部で、
それに対して数値関数部は、メイン関数が必要とする演算関数(ベクトル関数、三角関数など)を記述しており、
4. メイン関数部 4-1. 概要 メイン関数部内の関数は
この関数ライブラリを使用するプログラマは、一般的に
Protected関数については、次々項以降で説明する。 4-2. 階層 メイン関数部は階層に分かれている。そして階層自体も概念別に2種類ある。
4-3. 関数階層 関数階層はレベル別に次のようになっている(階層レベル1の方が上位)。
DataBase、Coreフォルダ内のProtected関数は、Procフォルダ内関数からのみ呼び出せるようになっており、この関数ライブラリ以外では使えないようになっているのである。 4-4. 構造体階層 構造体階層はレベル別に次のようになっている(階層レベル1が最上位)。
4-5. 各フォルダ内関数の役割 1) Coreフォルダ
2) DataBaseフォルダ
3) Procフォルダ
5. 関数ライブラリの改造 5-1. ソースコードの公開について 関数ライブラリのうち、数値関数部はすべてソースコード公開している。またメイン関数部は、
2011/05/15 : 今まで非公開だったソースコードも公開しました。 5-2. 数値関数部の改造 数値関数部は、出力結果がまったく同じになる場合を除き、原則として改造してはならない(関数の追加はしてもよい)。これは、非公開であるCoreフォルダ内関数からも呼び出されるためで、数値関数部の改造に合わせてCoreフォルダ内関数を改造する、ということができないからである。 5-3. メイン関数部の改造 サーフェイス全体のデータのような3Dソフト全体に影響を及ぼすデータは、その3Dソフトの顔である。このようなデータの構造が、そのソフトから呼び出される関数ごときによって無理矢理定義されてはかなわない、とプログラマなら誰でも思うであろう。この関数ライブラリも、これを使っている3Dソフト内のコードから呼ばれるものであるから、サーフェイス全体のデータ構造を固定化してはいけない。 こういった理由から、当関数ライブラリでは、DataBaseフォルダ内ソースコードを公開することにした。プログラマは、DataBaseフォルダ内ソースコードを解析し、Coreフォルダ内関数用データに変換する関数を自作すれば、
6. 関数ライブラリ利用レベル 前項までで述べた通り、当関数ライブラリは一種のコンポーネント構造になっている。よってプログラマは3種類のレベルから場合に応じて、この関数ライブラリを使用できる。 1) 利用レベル1
2) 利用レベル2
3) 利用レベル3
7. データ型のルール
1) 位置座標、ベクトル(例: double pos[ 3 ])
pos[ i ]とした場合、
2) パラメータ値(例: double uv[ 2 ])
uv[ i ]とした場合、
3) ループ頂点/非ループ頂点(例: bool loopFlag)
ループ頂点の時、真となる。
4) 頂点平面(例: double axis[ 2 ][ 3 ])
axis[ i ][ j ]とした場合、
5) ハンドル(例: double handle[ 2 ])
handle[ i ]とした場合、
6) ハンドル点平面(例: double axis[ 2 ][ 3 ])
axis[ i ][ j ]とした場合、
7) コントロールバー「単一曲面の1頂点上」(例: double ctl[ 2 ])
ctl[ i ]とした場合、
8) コントロールバー「共有頂点内の基準ハンドル上」
9) ウイングハンドル(例: wing[ 2 ][ 2 ])
wing[ i ][ j ]とした場合、
10) ウイング頂点との頂点間距離(例: len[ 2 ])
len[ i ]とした場合、
11) ベジェ曲線(例: double bezier[ 4 ][ 3 ])
bezier[ i ][ j ]とした場合、
(C)1999-2012 EISHIN All Rights Reserved.
|