vrNodeService

クラス vrNodeService

(vrBaseService を継承)

vrNodes に対応するヘルパー関数を提供するサービスです。

クラス TraverseChoice

次のトラバース反復の選択を定義します。

次のノード(子またはシブリング)に移動します。

Continue

すべての子ノードをスキップして、次のシブリングに進みます。

Skip

トラバーサルを終了します。

Quit

概要

関数:
信号:

関数

vrNodeService.clearFindCache()

検索キャッシュをクリアします。

検索キャッシュは、findNode(s)コマンドの実行速度を上げるための内部キャッシュ構造です。シーングラフを変更すると検索キャッシュが無効になるため、再作成する必要があります。vrNodeService.clearFindCache() はキャッシュを無効にするため、すべての検索呼び出しでキャッシュが使用されなくなり、検索時間が長くなります。

vrNodeService.cloneNodes(nodes)

シーングラフ内のノードのリストをクローン化します。

パラメータ:nodes (List[vrdNode]): クローンを作成するノードのリスト。
戻り値:クローンを作成したノードのリスト。
戻り値の型:List[vrdNode]

vrNodeService.findNode(name, wildcard=False, includeComponents=False, root=vrdNode(), caseSensitive=True)

ノードを名前で検索します。

パラメータ:
  • name (string): ノードの名前。
  • wildcard (bool): 検索にワイルドカードを使用します。
  • includeComponents (bool): シェル以下を検索します。
  • root (vrdNode): このノードから検索を開始します。
  • caseSensitive (bool): False に設定すると、大文字と小文字を区別せずに検索します
戻り値:

見つかったノード。

戻り値の型:

vrdNode

vrNodeService.findNodes(name, wildcard=False, includeComponents=False, root=vrdNode(), caseSensitive=True)

名前に応じてノードのリストを検索します。

この操作には、大きな負担がかかることにご注意ください。シーングラフ構造を変更しなくなった場合に、関数 vrNodeService.initFindCache() を使用して速度を上げることができます。

パラメータ:
  • name (string): ノードの名前。
  • wildcard (bool): 検索にワイルドカードを使用します。
  • includeComponents (bool): シェル以下を検索します。
  • root (vrdNode): このノードから検索を開始します。
  • caseSensitive (bool): False に設定すると、大文字と小文字を区別せずに検索します
戻り値:

見つかったノード。

戻り値の型:

List[vrdNode]

vrNodeService.findNodes(names, wildcard=False, includeComponents=False, root=vrdNode(), caseSensitive=True)

名前のリストに応じてノードのリストを検索します。

この関数は、リスト内の名前のいずれかに一致するすべてのノードを返します。

この操作には、大きな負担がかかることにご注意ください。シーングラフ構造を変更しなくなった場合に、関数 vrNodeService.initFindCache() を使用して速度を上げることができます。

パラメータ:
  • names (List[string]): ノード名のリスト。
  • wildcard (bool): 検索にワイルドカードを使用します。
  • includeComponents (bool): シェル以下を検索します。
  • root (vrdNode): このノードから検索を開始します。
  • caseSensitive (bool): False に設定すると、大文字と小文字を区別せずに検索します
戻り値:

見つかったノード。

戻り値の型:

List[vrdNode]

vrNodeService.findNodes(function, options=vrdFindOptions(), root=vrdNode())

Python の関連付け関数に応じて、ノードのリストを検索します。

Python 関数の要件:
- 入力パラメータとして vrdNode を 1 つ取得します
- ブール値に評価する必要があります。
def findGeometry(node):
    return node.isType(vrdGeometryNode)

vrNodeService.findNodes(findGeometry, vrdFindOptions(), vrNodeService.getRootNode()) # also works with lambdas: vrNodeService.findNodes(lambda node: node.isType(vrdGeometryNode))

パラメータ:
  • function (function): Python 関数オブジェクト。
  • options (vrdFindOptions): 追加の検索オプション。
  • root (vrdNode): このノードから検索を開始します。空の場合には、シーン ルートが使用されます。
戻り値:

見つかったノード。

戻り値の型:

List[vrdNode]

vrNodeService.findNodesWithPath(path, wildcard=False, root=vrdNode())

ノードパスに応じてノードのリストを検索します。

ノード パスは先祖ノードの名前です。ノード自体はスラッシュ(/)で区切ります(例:"Root/Group/Geometry123")。

パラメータ:
  • path (string): ノード パス。
  • wildcard (bool): 検索にワイルドカードを使用します。
  • root (vrdNode): このノードから検索を開始します。
戻り値:

見つかったノード。

戻り値の型:

List[vrdNode]

vrNodeService.findNodeWithPath(path, wildcard=False, root=vrdNode())

ノード パスに応じてノードを検索します。

ノード パスは先祖ノードの名前です。ノード自体はスラッシュ(/)で区切ります(例:"Root/Group/Geometry123")。

パラメータ:
  • path (string): ノード パス。
  • wildcard (bool): 検索にワイルドカードを使用します。
  • root (vrdNode): このノードから検索を開始します。
戻り値:

見つかったノード。

戻り値の型:

vrdNode

vrNodeService.findNodeWithUniquePath(uniquePath)

一意のパスでノードを検索します。「vrdNode.getUniquePath()」を参照してください。

パラメータ:uniquePath (string): 検索する一意のパス。
戻り値:指定された一意のパスを持つノード。
戻り値の型:vrdNode

vrNodeService.getAllNodes(root, options=vrdFindOptions())

指定されたサブグラフ内のすべてのノードを取得します。

パラメータ:
  • root (vrdNode): グラフのルート ノード
  • options (vrdFindOptions): 検索オプション。既定では、コンポーネントはスキップされます
戻り値:

指定したグラフ内で見つかったすべてのノード

戻り値の型:

List[vrdNode]

vrNodeService.getCloneRoot(node)

クローン階層の最上位ノードを取得します。

パラメータ:node (vrdNode): 検査するノード
戻り値:クローン階層の最上位ノード
戻り値の型:vrdNode

vrNodeService.getClones(node)

指定されたノードのクローンを取得します。

パラメータ:node (vrdNode): クエリーするノード。
戻り値:ノードのリスト。
戻り値の型:List[vrdNode]

vrNodeService.getCommonParent(nodes)

指定されたノードの最初の同等の親を検索します。

パラメータ:nodes (List[vrdNode]): 検査するノード
戻り値:指定されたすべてのノードの親となる最初のノード
戻り値の型:vrdNode

vrNodeService.getMaxDepth(node)

指定されたグラフの最大深度を取得します。

パラメータ:node (vrdNode): チェックするグラフ
戻り値:サブグラフの最大深度
戻り値の型:integer

vrNodeService.getNodeFromId(nodeId)

識別子によってノードを取得します。

指定されたノード識別子の vrdNode を返します。次のような古いノードから ID を取得することで、古い vrNodePtr から vrdNode に変換することができます。

newnode = vrNodeService.getNodeFromId(oldnode.getID())
パラメータ:nodeId (integer): ノード識別子。
戻り値:識別子のノード。
戻り値の型:vrdNode

vrNodeService.getNodesFromIds(nodeIds)

識別子からノードを取得します。

パラメータ:nodeIds (List[integer]): ノード識別子。
戻り値:関連付けられたノード。
戻り値の型:List[vrdNode]

vrNodeService.getRootNode()

ルート ノードを返します。

戻り値:ルート ノード。
戻り値の型:vrdNode

vrNodeService.getSelectedNodes()

選択したノードのリストを返します。

戻り値:選択したノード。
戻り値の型:List[vrdNode]

vrNodeService.getSelectedRootNodes()

選択したルート ノードのリストを返します。

戻り値:選択したルート ノード。
戻り値の型:List[vrdNode]

vrNodeService.getUniqueName(name, root, recursive=True)

ノードの一意の名前を取得します。

パラメータ:
  • name (string): この名前は一意の名前を作成するために使用されます
  • root (vrdNode): このグラフ内で一意の名前である必要があります
  • recursive (bool): False の場合、名前はルートの直接の子に対してのみ一意になります
戻り値:

一意の名前

戻り値の型:

string

vrNodeService.initFindCache()

検索コマンドの実行を高速化するために、内部キャッシュ構造を構築します。

内部キャッシュ構造を構築して Python コマンドの findNode と findNodes の実行を高速化します。たとえば、10,000 個のノードを含むシーンの場合、約 700 倍速くなります。ノードを削除または作成した後、このキャッシュは無効になることにご注意ください。

注: シェル コンポーネント(シェル ジオメトリ ノードの子)はキャッシュに含まれません。

例: サンプルの find2.py も参照してください。

vrNodeService.isInSubtree(root, node)

ノードが指定されたルート ノードの直接または間接の子かどうかを示します。

パラメータ:
  • root (vrdNode): ルート ノード。
  • node (vrdNode): チェックするノード。
戻り値:

指定されたノードが直接または間接の子である場合は True。

戻り値の型:

bool

vrNodeService.removeNodes(nodes)

シーングラフからノードのリストを削除します。

パラメータ:nodes (List[vrdNode]): 削除するノードのリスト。

vrNodeService.traverse(function, root=vrdNode())

ノード グラフをトラバースし、各ノードの Python 関数を呼び出します。

Python 関数の要件:
- 入力パラメータとして vrdNode を 1 つ取得します
- TraverseChoice に評価する必要があります。
シェル = []

def collectShells(node): if node.isType(vrdGeometryNode) and node.isShell(): shells.append(node) return vrNodeService.TraverseChoice.Skip return vrNodeService.TraverseChoice.Continue

vrNodeService.traverse(collectShells, vrNodeService.getRootNode())

パラメータ:
  • function (function): Python 関数オブジェクト。
  • root (vrdNode): このノードから検索を開始します。空の場合には、シーン ルートが使用されます。

vrNodeService.unshareNodes(nodes, option=vrScenegraphTypes.KeepLocalClones)

シーングラフ内のサブツリーのリストを共有解除します。

共有を解除すると、同じ設定と子を共有する 2 つのノード間の接続が切断されます。

- vrScenegraphTypes::UnshareOption::UnshareAll は、サブツリー内のすべてのノードを完全に共有解除します。
- vrScenegraphTypes::UnshareOption::KeepLocalClones はツリーを共有解除しますが、サブツリー内のクローン接続は保持します。
- vrScenegraphTypes::UnshareOption::KeepGlobalClones は、ノードおよび暗黙的に共有されている子を共有解除しますが、他のノード (サブツリーの内部または外部) への明示的なクローン接続を持つクローン化された子は共有解除しません。
パラメータ:

信号

vrNodeService.nodesAdded(nodes)

この信号は、新しいノードが追加されたときに送信されます。

パラメータ:nodes (List[vrdNode]): 追加されたすべてのノードのリスト。

vrNodeService.nodesRemoved(nodes)

ノードが削除されると、この信号が送信されます。

パラメータ:nodes (List[vrdNode]): 削除されたすべてのノードのリスト。

vrNodeService.selectionChanged()

シーン ツリーの選択が変更されたときに信号が送信されます。