Node

Node klassen representerar ett namngivet element i Aspose.3D-scengrafen. Varje nod kan hålla en Entity (till exempel en Mesh, Camera, eller Light), upprätthåller förälder‑barn-relationer med andra noder och har en lokal transformation. Noder är det primära sättet att organisera 3D‑objekt i en scenhierarki.

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)

Node konstruktorn initierar en nod med ett valfritt namn.

namestrValfritt namn för noden

Alla nodattribut nedan är egenskaper; åtkomst utan parenteser.

namestrLäsbar identifierare för noden
entity`EntityNone`
entitieslist[Entity]Alla enheter som är fästa vid den här noden (skrivskyddad). En nod kan referera till mer än en enhet.
material`MaterialNone`
materialslist[Material]Alla material som tilldelats den här noden (skrivskyddad).
child_nodeslist[Node]Lista över barnnoder. Använd child_nodes: inte children
parent_node`NodeNone`
parent_nodeslist[Node]Alla föräldranoder (ärvda från Entity; stöder instansering)
visiblebool
False, noden och dess underträd är dolda i visare som respekterar synlighet.
excludedbool
True, den här noden är utesluten från rendering
transformTransformLokal transformation (översättning, rotation, skala)
global_transformGlobalTransformVärldsrumstransformationsmatris
asset_info`AssetInfoNone`
propertiesPropertyCollectionAnpassade egenskaper som är bifogade till den här noden

Returtyp
create_child_node(name)NodeSkapar och bifogar en ny barnnod med det angivna namnet
create_child_node(name, entity)NodeSkapar en barnnod och tilldelar en entitet till den
add_child_node(node)NoneLägger till en befintlig nod som ett barn till den här noden
get_child(name)Optional[Node]Hittar en direkt barnnod efter namn
add_entity(entity)NoneBifogar en ytterligare entitet till den här noden
merge(node)NoneSlår samman en annan nods barn och entiteter i den här noden
evaluate_global_transform(with_geometric_transform)Matrix4Returnerar transformmatrisen i världsrummet; skicka True för att inkludera geometriska förskjutningar
get_bounding_box()BoundingBoxBeräknar den axeljusterade omgivningsboxen för noden i världsrummet
get_property(name)AnyHämtar ett egenskapsvärde efter namn
find_property(name)Optional[Property]Hittar en egenskap efter namn

Skapa en scen, fäst ett mesh på en nod och traversera scengrafen:

from aspose.threed import Scene, Node
from aspose.threed.entities import Mesh
from aspose.threed.utilities import Vector4

scene = Scene()
mesh = Mesh()
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}")

Se även

 Svenska