以下の表は、コンポーネントの追加と削除でよく使用するコマンドとメソッドの一部をリストしたものです。
ジオメトリ |
Softimage ネイティブ コマンド |
オブジェクト モデル |
---|---|---|
カーブ |
注:
オブジェクト モデルでは、これらのコマンドを使用してすべてのサブエレメントを追加および削除できますが、アイソラインとアイソポイントはインデックス付けできないため対象外です。 ただし、SubComponent は Cluster からのみ使用できます。 |
|
ポリゴン |
||
NURBS |
クラスタ内でのトポロジの変更の例については、「例: クラスタに追加するポイント」および「例: クラスタからの削除」を参照してください。
ポリゴンのインデックスとポリゴン ID のインデックスの違いは何でしょうか。 ポリゴン ID をリストに表示するにはどうすればいいでしょうか。 その答えをひと言で言うと、表示はできません。インデックスのマッピングが公開されていないからです。 しかし、ユーザ データのプロパティを使った解決策があります。
ジオメトリ コンポーネントを削除すると、トポロジ オペレーションは上記の規則を重視して、実質的にすべてのコンポーネントを再びインデックスを付けます。 たとえば、インデックス 0、1、2、3 を持つ 4 辺ポリゴンのグリッドが存在する場合、インデックス 1 とインデックス 2 でポリゴンを削除すると、結果はインデックス 0、1 を持つ 2 辺ポリゴンのグリッドになります。 つまり、このグリッドでは有効なインデックスの中で poly[1]が最も大きいので、poly[4]を使用すればエラーが発生します。
トポロジ オペレータは、以下のような内部オペレーションを実行することで、必要に応じてメッシュ コンポーネントを変更できます。
[A,B,C,D...]の中から任意のインデックスの名前を A に変更する(ディゾルブする(複数の頂点を単一の頂点に減少させる)場合など)
A を[A,B,C,D...]に置き換える(単一のポリゴンを複数のポリゴンに分割する(ポリゴン A をポリゴン A,B,C,D にする)場合など)
すると、トポロジの更新メカニズムにより、確実にすべてのクラスタ エレメントが同じ方法で処理されます。 これらのオペレーションから分かるように、マッピングは必ずしも 1 対 1 ではありません。
トポロジ オペレータがクラスタを更新するのと同じ方法でいくつかのプロパティやデータを更新したい場合、唯一の正しい実行策は、データをクラスタの下のクラスタ プロパティに置くことです(たとえば、ユーザ データ マップを使います)。 実際に、クラスタ プロパティの使用は、1 対 1 のマッピングを抽出する方法です。 しかし、N 対 1 や 1 対 N のマッピングを伴う状況も存在するため、これは常に十分な方法ではありません。
ポリゴンを削除した後の結果処理などのために 1 対 1 のマッピングを取得する場合、安全な実行策はクラスタと同じ内容でクラスタの下にユーザ データ プロパティを作成することです。
Cluster A = {1,3,4} Property under cluster A = {1,3,4}
その後、トポロジ オペレーションによってエレメント 3 が削除され、エレメント 4 の名前が 3 に変更されると、結果のデータは以下のようになります。
Cluster A = {1,3} Prop under cluster A = {1,4}