Node
Methods
Methods Node class 表示 Aspose.3D 场景图中的具名元素。每个节点可以容纳一个 Entity (例如一个 Mesh, Camera, 或 Light), 维护与其他节点的父子关系,并携带本地变换。节点是组织场景层次结构中 3D 对象的主要方式。.
from aspose.threed import Scene, Node
scene = Scene()
# Access the root node: root_node is a property on Scene
root = scene.root_node
# Create a child node
child = root.create_child_node("my_node")
# child_nodes is a property: access without parentheses
for node in root.child_nodes:
print(node.name)Methods
Methods Node constructor 使用可选名称初始化节点。.
| Methods | Methods | Methods |
|---|---|---|
name | str | 节点的可选名称 |
Methods
以下所有节点属性都是 属性;;访问它们时无需使用括号。.
| Methods | Methods | Methods |
|---|---|---|
name | str | 节点的人类可读标识符 |
entity | `Entity | None` |
entities | list[Entity] | 所有附加到此节点的实体(只读)。一个节点可能引用多个实体。. |
material | `Material | None` |
materials | list[Material] | 所有分配给此节点的材质(只读)。. |
child_nodes | list[Node] | 子节点列表。使用 child_nodes: 不是 children |
parent_node | `Node | None` |
parent_nodes | list[Node] | 所有父节点(继承自 Entity;;支持实例化) |
visible | bool | Methods False,,该节点及其子树在尊重可见性的查看器中被隐藏。. |
excluded | bool | Methods True,,此节点被排除在渲染之外 |
transform | Transform | 本地变换(平移、旋转、缩放) |
global_transform | GlobalTransform | 世界空间变换矩阵 |
asset_info | `AssetInfo | None` |
properties | PropertyCollection | 附加到此节点的自定义属性 |
Methods
| Methods | 返回类型 | Methods |
|---|---|---|
create_child_node(name) | Node | 创建并附加一个具有给定名称的新子节点 |
create_child_node(name, entity) | Node | 创建子节点并为其分配实体 |
add_child_node(node) | None | 将现有节点添加为此节点的子节点 |
get_child(name) | Optional[Node] | 按名称查找直接子节点 |
add_entity(entity) | None | 将额外实体附加到此节点 |
merge(node) | None | 将另一个节点的子节点和实体合并到此节点 |
evaluate_global_transform(with_geometric_transform) | Matrix4 | 返回世界空间变换矩阵;传入 True 以包含几何偏移 |
get_bounding_box() | BoundingBox | 计算节点在世界空间中的轴对齐包围盒 |
get_property(name) | Any | 通过名称获取属性值 |
find_property(name) | Optional[Property] | 通过名称查找属性 |
Methods
创建场景,将网格附加到节点,并遍历场景图::
from aspose.threed import Scene, Node
from aspose.threed.entities import Mesh
from aspose.threed.utilities import Vector4
scene = Scene()
mesh = Mesh()
# Use _control_points to mutate the backing list (control_points returns a copy)
mesh._control_points.append(Vector4(0, 0, 0, 1))
mesh._control_points.append(Vector4(1, 0, 0, 1))
mesh._control_points.append(Vector4(0.5, 1, 0, 1))
mesh.create_polygon(0, 1, 2)
# Attach mesh to a child node
node = scene.root_node.create_child_node("triangle", mesh)
# Traverse child_nodes (property, not a method)
for child in scene.root_node.child_nodes:
entity = child.entity
if entity is not None:
print(f"Node '{child.name}': {type(entity).__name__}")
# excluded is a property
print(f" Excluded: {entity.excluded}")