Node — Aspose.3D FOSS for Java
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 sau Camera), 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ă.
import com.aspose.threed.Scene;
import com.aspose.threed.Node;
Scene scene = new Scene();
// Access the root node via getter
Node root = scene.getRootNode();
// Create a child node
Node child = root.createChildNode("my_node");
// Iterate child nodes via getter
for (Node node : root.getChildNodes()) {
System.out.println(node.getName());
}Methods
Methods Node constructorul inițializează un nod cu un nume opțional.
| Methods | Methods | Methods |
|---|---|---|
name | String | Nume opțional pentru nod |
Methods
Toate atributele nodului sunt accesate prin metode getter/setter.
| Methods | Methods | Methods | Methods | Methods |
|---|---|---|---|---|
name | String | getName() | setName(String) | Identificator lizibil pentru om al nodului |
entity | Entity | getEntity() | setEntity(Entity) | Entitatea principală atașată acestui nod (de exemplu,., Mesh, Camera). Scurtătură pentru primul element al getEntities(). |
entities | List<Entity> | getEntities() | – | Toate entitățile atașate acestui nod (doar citire) |
material | Material | getMaterial() | setMaterial(Material) | Materialul principal atribuit acestui nod |
materials | List<Material> | getMaterials() | – | Toate materialele atribuite acestui nod (doar în citire) |
childNodes | List<Node> | getChildNodes() | – | Listă de noduri copil |
parentNode | Node | getParentNode() | setParentNode(Node) | Nod părinte imediat în ierarhia scenei (getParentNodes() nu este disponibil pe Node) |
visible | boolean | getVisible() | setVisible(boolean) | Methods false, nodul și subarborele său sunt ascunși |
excluded | boolean | getExcluded() | setExcluded(boolean) | Methods true, acest nod este exclus din randare |
transform | Transform | getTransform() | – | Transformare locală (translație, rotație, scară) |
globalTransform | GlobalTransform | getGlobalTransform() | – | Matrice de transformare în spațiul global |
assetInfo | AssetInfo | getAssetInfo() | setAssetInfo(AssetInfo) | Metadatele activului atașate acestui nod, dacă există |
properties | PropertyCollection | getProperties() | – | Proprietăți personalizate atașate acestui nod |
Methods
| Methods | Tipul de returnare | Methods |
|---|---|---|
createChildNode(String name) | Node | Creează și atașează un nod copil nou cu numele dat |
createChildNode(String name, Entity entity) | Node | Creează un nod copil și îi atribuie o entitate |
addChildNode(Node node) | void | Adaugă un nod existent ca și copil al acestui nod |
getChild(String name) | Node | Găsește un nod copil direct după nume |
addEntity(Entity entity) | void | Atașează o entitate suplimentară acestui nod |
merge(Node node) | void | Îmbină copiii și entitățile unui alt nod în acest nod |
evaluateGlobalTransform(boolean withGeometricTransform) | Matrix4 | Returnează matricea de transformare în spațiul global; pass true pentru a include decalaje geometrice |
getBoundingBox() | BoundingBox | Stub în această versiune — întotdeauna returnează un sentinel BoundingBox (min = Double.MAX_VALUE, max = Double.MIN_VALUE). Nu se efectuează nicio calculare geometrică. |
getProperty(String name) | Object | Obține valoarea unei proprietăţi după nume |
findProperty(String name) | Property | Găsește o proprietate după nume |
Methods
Creează o scenă, atașează un mesh la un nod și parcurge graful de scenă:
import com.aspose.threed.Scene;
import com.aspose.threed.Node;
import com.aspose.threed.*;
Scene scene = new Scene();
Mesh mesh = new Mesh();
mesh.getControlPoints().add(new Vector4(0, 0, 0, 1));
mesh.getControlPoints().add(new Vector4(1, 0, 0, 1));
mesh.getControlPoints().add(new Vector4(0.5, 1, 0, 1));
mesh.createPolygon(0, 1, 2);
// Attach mesh to a child node
Node node = scene.getRootNode().createChildNode("triangle", mesh);
// Traverse child nodes using getter
for (Node child : scene.getRootNode().getChildNodes()) {
Entity entity = child.getEntity();
if (entity != null) {
System.out.println("Node '" + child.getName() + "': " + entity.getClass().getSimpleName());
System.out.println(" Excluded: " + child.getExcluded());
}
}