Node
Methods
Methods Node класс представляет именованный элемент в 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 конструктор инициализирует узел с необязательным именем.
| 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 | Возвращает матрицу преобразования в мировом пространстве; pass 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}")