■■■ C# ソース ■■■




■ 操作方法

(以下の文章では、"C# ソース" のことを コードネームの「Beziex Pcc C#」という名称で説明させて頂く)

1. 「全般」タブ

1-1. サンプル・オブジェクト

1) リストボックス
サンプルの中から表示したい形状を選択する。

2) 「サンプル表示」ボタン
通常はディセーブルであるが、後述する「カスタム・オブジェクト」の読み込みを行うとイネーブルになる。その時点でこのボタンを押すと、リストボックスのサンプルが表示される。


1-2. カスタム・オブジェクト

1) 「読み込み」ボタン
「pachesファイル」「cageファイル」の読み込みを行う。なおダウンロードファイルに添付されているカスタム・オブジェクト(ファイル)は、
  • Beziex_Pcc\_demo\mikuA.patches
のみである(cageファイルは無し)。

2) 「書き出し」ボタン
「pachesファイル」の書き出しを行う。


1-3. 表示種別

注: 「面モード」(後述)では、表示種別は無視される。

1) 「シェーディング」ラジオボタン
形状をシェーディング表示にする。

2) 「シェーディング+境界曲線」ラジオボタン
形状をシェーディングおよび境界曲線(ワイヤー)で表示する。なお境界曲線の色は青または黄となるが、この詳細については "3) 「ワイヤーフレーム」ラジオボタン" で説明する。

3) 「ワイヤーフレーム」ラジオボタン
形状をワイヤーフレーム表示にする。なおポリゴンの辺の色は、以下のような意味を持つ。

  • : ケージから変換された曲面の境界曲線であり、且つ境界が折れ曲がっているか、片方に面が無い場合
  • : ケージから変換された曲面の境界曲線であり、且つ境界が滑らかに繋がっている場合
  • : 境界曲線では無いポリゴン辺

ちなみに「境界を折れ曲げる」ためには、「"BxPccSDK (BxPcsSDK)"のAPIをコールしているプログラム」(例:BxPccWxWithDx、BxPcsWpfWithSdx)上から、BxPccSDK (BxPcsSDK) に対し明示的に設定してやれば良い。
しかし「境界が折れ曲げる」のはそれだけでは無く、「BxPccSDK (BxPcsSDK)」内部で "滑らかに繋げたまま曲面化するのは困難" と判断された時も、自動的に「折れ曲がった」状態に設定されることになる。

4) 「すべて3角形にする」チェックボックス
ON にすると、ワイヤーフレーム表示時に "ワイヤーフレームで囲まれた図形(ポリゴン)" がすべて3角形になる。


1-4. 「ケージを表示」チェックボックス

ON にすると、ケージ (Catmull-Clark サブディビジョンの元ポリゴン) を表示する。なおケージの色は、以下のような意味を持つ。

  • : 境界が折れ曲がっているか、片方に面が無い場合
  • : 境界が滑らかに繋がっている場合


1-5. 表示モード

1) 「全体モード」ラジオボタン
このラジオボタンをONにすると、形状全体を表示する。

2) 「面モード(選択前)」 & 「面モード」
「面モード(選択前)」ラジオボタンをONすると、表示種別に関わらず「シェーディング+境界曲線」となる。ここで "形状のどれかの面(境界曲線で囲まれた内部)" をクリックすると、ラジオボタンが「面モード」に変わり、その面だけが表示されるようになる。

3) 「ワイヤーも表示」チェックボックス
ON にすると、「面モード」のとき(「選択前」では無い)にワイヤーフレームも表示する。このワイヤーフレームは通常 黄色であるが、境界曲線No.0 (プログラム内部で使用)の箇所だけは青で表示される。またさらに頂点No.0 (これもプログラム内部で使用)の箇所には、小さな正八面体を表示する。

4) 「再選択」ボタン
「面モード」のとき(「選択前」では無い)、有効となるボタンである。このボタンをクリックすると、「面モード」 → 「面モード(選択前)」になる。これにより形状全体が表示される状態に戻り、再び面が選択できるようになる。

5) 「選択面No.」表示欄
「面モード」のとき(「選択前」では無い)、選択された面の番号が表示される。この番号は通常 Beziex Pcc C# のプログラム内でのみで使われている。しかし(この面No.を)「Debug用JSONファイル」内に記述することで、その選択面(のみ)が表示された場合に「追加の直線/点」も表示されるようになる。


1-6. 分割数

1) 「初期分割数」ボタン
各オブジェクトのデフォルト分割数に戻す。なおこのデフォルト分割数は、各オブジェクトの頂点数によって決まる。

2) 「スライダ&スピンコントロール
オブジェクトの分割数に変更する。ちなみに最大分割数は、各オブジェクトの頂点数によって決まっており、頂点数がごく少ない場合は 64 である。



2. 「回転等」タブ

2-1. 「回転」

1) 「横スライダ」
Y軸(縦軸)まわりに回転させる。動かすと「縦スライダ」、「Z軸回転」スライダは中心位置に戻る。

2) 「縦スライダ」
X軸(横軸)まわりに回転させる。動かすと「横スライダ」、「Z軸回転」スライダは中心位置に戻る。

3) 「Z軸回転」スライダ
Z軸(中心軸)まわりに回転させる。動かすと「縦スライダ」、「横スライダ」は中心位置に戻る。

4) 「初期方向」ボタン
最初の向きに戻す。


2-2. 「移動」

1) 「横スライダ」
X方向(横方向)に移動する。

2) 「縦スライダ」
Y方向(縦方向)に移動する。

3) 「初期位置」ボタン
最初の位置に戻す。


2-3. 「スケール」

1) 「スライダ」
拡大縮小を行なう。

2) 「初期スケール」ボタン
最初の大きさに戻す。



3. Debug用JSONファイル

3-1. 概要

Beziex Pcc C# では、以下のような条件の時に追加の直線/点を表示することが出来る。

a) 「カスタム・オブジェクト」に対してのみ可能。
b) 例えばカスタム・オブジェクトのファイルが "abc.patches" だった場合、JSONファイルは同フォルダ内に "abc.patches.json" という名前で置く。
c) 「面モード」のとき(「選択前」では無い)のみ、追加の直線/点が表示される。ただしファイル内に記述した面No.以外の時は表示されない。

またファイルの中身は、下記のように記述する。
{
    "surfaceNo" : 123,
    "data" : [
        [ "point",  1.0, 2.0, 3.0 ],
        [ "line",   1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ],
        [ "vector", 1.0, 2.0, 3.0, 1.0, 2.0, 3.0 ]
    ]
}

3-2. 各要素の説明

1) "surfaceNo"
選択面No.を記述する(必須)。

2) "data"
追加する直線/点の情報を記述する。最低限 "point"、"line"、"vector" のどれか一つは記述すること。また各 "point"、"line"、"vector" は複数記述しても良い。

2-1) "point"
"point" から始まる配列リテラル。"point" の後に、x、y、z 値を記述する。

2-2) "line"
"line" から始まる配列リテラル。"line" の後に、x0、y0、z0、x1、y1、z1 の値を記述する。これにより、(x0, y0 z0)と(x1, y1, z1)を結ぶ直線が表示できる。

2-3) "vector"
"vector" から始まる配列リテラル。"vector" の後に、xp、yp、zp、xv、yv、zv の値を記述する。これにより、点(xp, yp, zp)からベクトル(xv, yv, zv)が延びた形の直線が表示できる。



(C)2013-2016 EISHIN, All Rights Reserved.