Beziex自由曲面バーチャル研究室
(C)1999-2012 EISHIN All Rights Reserved.

Beziex Ts (Home)
 & ダウンロード


Beziex LG (Home)
 & ダウンロード




マニュアル目次

1章 前知識
2章 新ベジェ境界曲面
3章 プログラムについて
4章 サンプル・アプリケーション
5章 自由曲面関数ライブラリ
6章 bxCore.h
7章 bxDB.h
8章 bxProc.h
9章 数値関数
10章 サンプル・ベースファイル



Copyright 1999-2011 EISHIN

8章 bxProc.h

1. 関数
←入力データ
→出力データ
⇔入出力データ




bool→エラーの場合、真
DefaultAxis(
const ulong vertexNo );←頂点番号(CbxDB::vertexAry[]の要素No)

共有頂点とその対向頂点から、デフォルト(当ライブラリが類推した値)の頂点平面を作成する。共有頂点と対向頂点を結び、直線化した場合、共有頂点の回りの曲面はポリゴンのようになる。このポリゴンの共有頂点上での法線を考えると、これらの法線の平均値が、デフォルトの頂点法線であり、これより頂点平面が求まる。
この関数の実行前は、頂点平面が不定値であってもかまわない。



bool→エラーの場合、真
DefaultHandle(
const ulong edgeNo,←境界曲線番号(CbxDB::edgeAry[]の要素No)
const short beginEndNo );←頂点番号(単一境界曲線上)

頂点と対向頂点、頂点平面等から、デフォルト(当ライブラリが類推した値)のハンドルを作成する。このデフォルト値を使うと、境界曲線が円弧になるべく近くなるように補正される。
この関数の実行前は、ハンドルが不定値であってもかまわない。



bool→エラーの場合、真
DefaultCtlVec(
const ulong edgeNo,←境界曲線番号(CbxDB::edgeAry[]の要素No)
const short beginEndNo,←頂点番号(単一境界曲線上)
bool* dispChk );→出力データは表示可能か?

デフォルト(当ライブラリが類推した値)のコントロールバーを作成する。このデフォルト値を使うと、曲面が球面になるべく近くなるように補正される。
この関数の実行前に、既にコントロールバーに値が入っている必要がある。



bool→エラーの場合、真
SetVertexPos(
const ulong vertexNo,←頂点番号(CbxDB::vertexAry[]の要素No)
const double newPos[ 3 ] );←新しい頂点

頂点を新しい位置に移す。



bool→エラーの場合、真
RotVertex(
const ulong vertexNo,←頂点番号(CbxDB::vertexAry[]の要素No)
const double origin[ 3 ],←回転中心位置
const double axis[ 3 ],←回転軸ベクトル
const double deg );←回転角

任意の中心と回転軸を使って、頂点を回転する。



bool→エラーの場合、真
ScaleVertex(
const ulong vertexNo,←頂点番号(CbxDB::vertexAry[]の要素No)
const double origin[ 3 ],←拡大縮小中心位置
const double scale );←拡大率

任意の位置を中心として、頂点を拡大縮小する。



bool→エラーの場合、真
SetHandleVec(
const ulong edgeNo,←境界曲線番号(CbxDB::edgeAry[]の要素No)
const short beginEndNo,←頂点番号(単一境界曲線上)
const double newHandleVec[ 2 ] );←新しいハンドル

頂点平面を変化しない範囲で、ハンドルを新しくする。



bool→エラーの場合、真
SetHandleInfo(
const ulong edgeNo,←境界曲線番号(CbxDB::edgeAry[]の要素No)
const short beginEndNo,←頂点番号(単一境界曲線上)
const double newHandleVec[ 3 ] );←新しいハンドル(ベクトル値)

ハンドルが新しいベクトルになるように、頂点平面とハンドルを変化させる。



bool→エラーの場合、真
SetCtlPlaneDeg(
const ulong edgeNo,←境界曲線番号(CbxDB::edgeAry[]の要素No)
const short beginEndNo,←頂点番号(単一境界曲線上)
const double newCtlPlaneDeg );←新しいハンドル点法線

ハンドル点法線のみを変える。



bool→エラーの場合、真
SetCtlVec(
const ulong edgeNo,←境界曲線番号(CbxDB::edgeAry[]の要素No)
const short beginEndNo,←頂点番号(単一境界曲線上)
const double newCtlVec[ 2 ][ 2 ] );←新しいコントロールバー(共有頂点内の基準ハンドル上)

ハンドル点法線を変化しない範囲で、コントロールバーを新しくする。



bool→エラーの場合、真
SetCtlInfo(
const ulong edgeNo,←境界曲線番号(CbxDB::edgeAry[]の要素No)
const short beginEndNo,←頂点番号(単一境界曲線上)
const short minusPlusNo,←コントロールバー番号(共有頂点内の基準ハンドル上)
const double newCtlVec[ 3 ] );←新しいコントロールバー(単一曲面の1頂点上。ベクトル値)

コントロールバーが新しいベクトルになるように、ハンドル点法線とコントロールバーを変化させる。



void
GetVertexPos(
const ulong vertexNo,←頂点番号(CbxDB::vertexAry[]の要素No)
double vertexPos[ 3 ] );→頂点

頂点を得る。



void
GetNormalOnVertex(
const ulong vertexNo,←頂点番号(CbxDB::vertexAry[]の要素No)
double normalVec[ 3 ] );→頂点法線

頂点法線を得る。



bool→エラーの場合、真
GetHandle(
const ulong edgeNo,←境界曲線番号(CbxDB::edgeAry[]の要素No)
const short beginEndNo,←頂点番号(単一境界曲線上)
bool* dispChk,→このデータは表示可能か?
double handleVec[ 3 ] );→ハンドル(ベクトル値)

ハンドル(ベクトル値)を得る。



bool→エラーの場合、真
GetAxisInCtlPlaneDeg(
const ulong edgeNo,←境界曲線番号(CbxDB::edgeAry[]の要素No)
const short beginEndNo,←頂点番号(単一境界曲線上)
bool* dispChk,→このデータは表示可能か?
double axisVec[ 3 ] );→ハンドル点回転軸(ベクトル値)

ハンドル点回転軸(ベクトル値)を得る。



bool→エラーの場合、真
GetNormalInCtlPlaneDeg(
const ulong edgeNo,←境界曲線番号(CbxDB::edgeAry[]の要素No)
const short beginEndNo,←頂点番号(単一境界曲線上)
bool* dispChk,→このデータは表示可能か?
double normalVec[ 3 ] );→ハンドル点法線(ベクトル値)

ハンドル点法線(ベクトル値)を得る。



bool→エラーの場合、真
GetAxisInCtlVec(
const ulong edgeNo,←境界曲線番号(CbxDB::edgeAry[]の要素No)
const short beginEndNo,←頂点番号(単一境界曲線上)
const short minusPlusNo,←コントロールバー番号(共有頂点内の基準ハンドル上)
bool* dispChk,→このデータは表示可能か?
double axis[ 2 ][ 3 ] );→ハンドル点平面

ハンドル点平面を得る。



bool→エラーの場合、真
GetCtlInCtlVec(
const ulong edgeNo,←境界曲線番号(CbxDB::edgeAry[]の要素No)
const short beginEndNo,←頂点番号(単一境界曲線上)
const short minusPlusNo,←コントロールバー番号(共有頂点内の基準ハンドル上)
bool* dispChk,→このデータは表示可能か?
double ctlVec[ 3 ] );→コントロールバー(ベクトル値)

コントロールバー(ベクトル値)を得る。



bool→エラーの場合、真
ConvEdge(
const ulong edgeNo,←境界曲線番号(CbxDB::edgeAry[]の要素No)
bool* dispChk,→このデータは表示可能か?
double bezierLine[ 4 ][ 3 ] );→ベジェ曲線

境界曲線番号のデータベース内データを、ベジェ曲線(制御点位置)データに変換する。



bool→エラーの場合、真
LoadSurfaceForPick(
const ulong edgeNo,←境界曲線番号(CbxDB::edgeAry[]の要素No)
const short beginEndNo,←頂点番号(単一境界曲線上)
CbxCore::SurfaceForPick* surface,→Coreフォルダ内関数で使用するデータ
bool* dispChk );→このデータは表示可能か?

データベースから任意の境界曲線番号、頂点番号のCoreフォルダ関数内使用データを得る。



bool→エラーの場合、真
ErrChk( void );

現在のデータベースにエラー値があるかどうか、判定する。




(C)1999-2012 EISHIN All Rights Reserved.