Node
Methods
Methods Node class rappresenta un elemento nominato nel grafo della scena Aspose.3D. Ogni nodo può contenere uno Entity (come ad esempio un Mesh, Camera, o Light), mantiene relazioni genitore-figlio con altri nodi e possiede una trasformazione locale. I nodi sono il modo principale per organizzare gli oggetti 3D in una gerarchia di scena.
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 Il costruttore inizializza un nodo con un nome opzionale.
| Methods | Methods | Methods |
|---|---|---|
name | str | Nome opzionale per il nodo |
Methods
Tutti gli attributi del nodo qui sotto sono proprietà; accedili senza parentesi.
| Methods | Methods | Methods |
|---|---|---|
name | str | Identificatore leggibile dall’uomo per il nodo |
entity | `Entity | None` |
entities | list[Entity] | Tutte le entità collegate a questo nodo (sola lettura). Un nodo può fare riferimento a più di un’entità. |
material | `Material | None` |
materials | list[Material] | Tutti i materiali assegnati a questo nodo (sola lettura). |
child_nodes | list[Node] | Elenco dei nodi figli. Usa child_nodes: non children |
parent_node | `Node | None` |
parent_nodes | list[Node] | Tutti i nodi genitori (ereditati da Entity; supporta l’instancing) |
visible | bool | Methods False, il nodo e il suo sottoalbero sono nascosti nei visualizzatori che rispettano la visibilità. |
excluded | bool | Methods True, questo nodo è escluso dal rendering |
transform | Transform | Trasformazione locale (traslazione, rotazione, scala) |
global_transform | GlobalTransform | Matrice di trasformazione nello spazio mondiale |
asset_info | `AssetInfo | None` |
properties | PropertyCollection | Proprietà personalizzate allegate a questo nodo |
Methods
| Methods | Tipo di ritorno | Methods |
|---|---|---|
create_child_node(name) | Node | Crea e allega un nuovo nodo figlio con il nome fornito |
create_child_node(name, entity) | Node | Crea un nodo figlio e gli assegna un’entità |
add_child_node(node) | None | Aggiunge un nodo esistente come figlio di questo nodo |
get_child(name) | Optional[Node] | Trova un nodo figlio diretto per nome |
add_entity(entity) | None | Allega un’entità aggiuntiva a questo nodo |
merge(node) | None | Unisce i figli e le entità di un altro nodo in questo nodo |
evaluate_global_transform(with_geometric_transform) | Matrix4 | Restituisce la matrice di trasformazione world-space; pass True per includere gli offset geometrici |
get_bounding_box() | BoundingBox | Calcola il bounding box allineato agli assi del nodo nello spazio world |
get_property(name) | Any | Ottiene il valore di una proprietà per nome |
find_property(name) | Optional[Property] | Trova una proprietà per nome |
Methods
Crea una scena, collega una mesh a un nodo e attraversa il grafo della scena:
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}")