vrNodeService 类(继承 vrBaseService)
提供用于处理 vrdNode 的辅助函数的服务。
vrNodeService.clearFindCache()清除查找缓存。
查找缓存是内部缓存结构,可加快 findNode(s) 命令的执行速度。更改场景图形后,findcache 不再有效,需要重建!vrNodeService.clearFindCache() 使缓存无效,因此所有查找调用将不再使用缓存,从而导致搜索时间更长。
vrNodeService.cloneNodes(nodes)从场景图形克隆节点列表。
| 参数: | nodes (List[vrdNode]) - 要克隆的节点的列表。 |
|---|---|
| 返回值: | 克隆节点的列表。 |
| 返回值类型: | List[vrdNode] |
vrNodeService.findNode(name, wildcard=False, includeComponents=False, root=vrdNode(), caseSensitive=True)通过名称查找节点。
| 参数: |
|
|---|---|
| 返回值: | 找到的节点。 |
| 返回值类型: |
vrNodeService.findNodes(name, wildcard=False, includeComponents=False, root=vrdNode(), caseSensitive=True)根据节点名称查找节点列表。
请注意,此操作比较耗时。为了加快速度,请在场景图形结构不再更改后使用函数 vrNodeService.initFindCache()。
| 参数: |
|
|---|---|
| 返回值: | 找到的节点。 |
| 返回值类型: | List[vrdNode] |
vrNodeService.findNodes(names, wildcard=False, includeComponents=False, root=vrdNode(), caseSensitive=True)根据名称列表查找节点列表。
此函数将返回与列表中任意名称匹配的所有节点。
请注意,此操作比较耗时。为了加快速度,请在场景图形结构不再更改后使用函数 vrNodeService.initFindCache()。
| 参数: |
|
|---|---|
| 返回值: | 找到的节点。 |
| 返回值类型: | List[vrdNode] |
vrNodeService.findNodes(function, options=vrdFindOptions(), root=vrdNode())根据 Python 匹配函数查找节点列表。
def findGeometry(node):
return node.isType(vrdGeometryNode)
vrNodeService.findNodes(findGeometry, vrdFindOptions(), vrNodeService.getRootNode()) # also works with lambdas: vrNodeService.findNodes(lambda node: node.isType(vrdGeometryNode))
| 参数: |
|
|---|---|
| 返回值: | 找到的节点。 |
| 返回值类型: | List[vrdNode] |
vrNodeService.findNodesWithPath(path, wildcard=False, root=vrdNode())根据节点路径查找节点列表。
节点路径是用斜杠 (/) 串联的祖先节点和节点本身的名称,例如“Root/Group/Geometry123”。
| 参数: |
|
|---|---|
| 返回值: | 找到的节点。 |
| 返回值类型: | List[vrdNode] |
vrNodeService.findNodeWithPath(path, wildcard=False, root=vrdNode())根据节点路径查找节点。
节点路径是用斜杠 (/) 串联的祖先节点和节点本身的名称,例如“Root/Group/Geometry123”。
| 参数: |
|
|---|---|
| 返回值: | 找到的节点。 |
| 返回值类型: |
vrNodeService.findNodeWithUniquePath(uniquePath)按节点的唯一路径查找节点。请参见 vrdNode.getUniquePath()。
| 参数: | uniquePath (string) - 要查找的唯一路径。 |
|---|---|
| 返回值: | 具有给定唯一路径的节点。 |
| 返回值类型: | vrdNode |
vrNodeService.getAllNodes(root, 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)获取节点的唯一名称。
| 参数: |
|
|---|---|
| 返回值: | 唯一名称 |
| 返回值类型: | string |
vrNodeService.initFindCache()构建内部缓存结构,以加快查找命令的执行速度。
构建内部缓存结构,以加快 Python 命令 findNode 和 findNodes 的执行速度。例如,对于具有 10000 个节点的场景,速度可提高约 700 倍。请注意,在删除或创建节点后,此缓存不再有效。
示例:另请参见 find2.py 示例
vrNodeService.isInSubtree(root, node)指示节点是给定根节点的直接子节点还是间接子节点。
| 参数: | |
|---|---|
| 返回值: | 如果给定节点是直接或间接子节点,则为 True。 |
| 返回值类型: | bool |
vrNodeService.removeNodes(nodes)从场景图形中移除节点列表。
| 参数: | nodes (List[vrdNode]) - 要移除的节点列表。 |
|---|
vrNodeService.traverse(function, root=vrdNode())遍历节点图并为每个节点调用 Python 函数。
shells = []
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())
| 参数: |
|
|---|
vrNodeService.unshareNodes(nodes, option=vrScenegraphTypes.KeepLocalClones)从场景图形中取消共享子树列表。
取消共享将断开具有相同设置和子节点的两个节点之间的连接。
| 参数: |
|
|---|