Node
Methods
Methods Node clasa reprezintă un element denumit în graficul de scenă Aspose.3D. Fiecare nod poate conține unul Entity (cum ar fi un Mesh, Camera, sau Light), menține relații părinte-copil cu alte noduri și poartă o transformare locală. Nodurile sunt modalitatea principală de a organiza obiecte 3D într-o ierarhie de scenă.
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 constructorul inițializează un nod cu un nume opțional.
| Methods | Methods | Methods |
|---|---|---|
name | str | Nume opțional pentru nod |
Methods
Toate atributele nodului de mai jos sunt proprietăți; accesați-le fără paranteze.
| Methods | Methods | Methods |
|---|---|---|
name | str | Identificator lizibil de către om pentru nod |
entity | `Entity | None` |
entities | list[Entity] | Toate entitățile atașate acestui nod (doar citire). Un nod poate face referire la mai multe entități. |
material | `Material | None` |
materials | list[Material] | Toate materialele atribuite acestui nod (doar citire). |
child_nodes | list[Node] | Listă de noduri copil. Utilizați child_nodes:nu children |
parent_node | `Node | None` |
parent_nodes | list[Node] | Toate nodurile părinte (moștenite din Entity; suportă instanțierea) |
visible | bool | Methods False, nodul și subarborele său sunt ascunși în vizualizatoare care respectă vizibilitatea. |
excluded | bool | Methods True, acest nod este exclus din randare |
transform | Transform | Transformare locală (translație, rotație, scară) |
global_transform | GlobalTransform | Matricea de transformare în spațiul global |
asset_info | `AssetInfo | None` |
properties | PropertyCollection | Proprietăți personalizate atașate acestui nod |
Methods
| Methods | Tip de returnare | Methods |
|---|---|---|
create_child_node(name) | Node | Creează și atașează un nod copil nou cu numele specificat |
create_child_node(name, entity) | Node | Creează un nod copil și îi atribuie o entitate |
add_child_node(node) | None | Adaugă un nod existent ca copil al acestui nod |
get_child(name) | Optional[Node] | Găsește un nod copil direct după nume |
add_entity(entity) | None | Atașează o entitate suplimentară acestui nod |
merge(node) | None | Îmbină copiii și entitățile altui nod în acest nod |
evaluate_global_transform(with_geometric_transform) | Matrix4 | Returnează matricea de transformare în spațiul lumii; trece True pentru a include decalaje geometrice |
get_bounding_box() | BoundingBox | Calculează cutia de delimitare aliniată pe axe a nodului în spațiul lumii |
get_property(name) | Any | Obține valoarea unei proprietăți după nume |
find_property(name) | Optional[Property] | Găsește o proprietate după nume |
Methods
Creați o scenă, atașați un mesh la un nod și parcurgeți graficul de scenă:
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}")