Node

Inheritance: java.lang.Object, com.aspose.threed.A3DObject, com.aspose.threed.SceneObject

public class Node extends SceneObject

Представляет элемент в графе сцены. Граф сцены — это дерево объектов Node. Сервисы управления деревом находятся внутри этого класса. Обратите внимание, что Aspose.3D SDK не проверяет корректность построенного графа сцены. Ответственность за то, чтобы не создавать циклические графы в иерархии узлов, лежит на вызывающем коде. Помимо управления деревом, этот класс определяет все свойства, необходимые для описания положения объекта в сцене. Эта информация включает базовые свойства Translation, Rotation и Scaling, а также более продвинутые параметры для точек вращения, ограничений и атрибутов суставов IK, таких как жёсткость и демпфирование. При первом создании объект Node является “empty” (т.е.: это объект без графического представления, содержащий только информацию о позиции). В этом состоянии его можно использовать для представления родителей в структуре дерева узлов, но не более. Обычное использование таких объектов — добавить к ним сущность, которая специализирует узел (см. “Entity”). Сущность является самостоятельным объектом и соединена с Node. Это также означает, что одна и та же сущность может быть общей для нескольких узлов. Camera, Light, Mesh и т.д. — все являются сущностями и наследуются от базового класса Entity.

Конструкторы

КонструкторОписание
Node()Инициализирует новый экземпляр класса Node.
Node(String name, Entity entity)Инициализирует новый экземпляр класса Node.
Node(String name)Инициализирует новый экземпляр класса Node.

Методы

МетодОписание
accept(NodeVisitor visitor)Проходит по всем дочерним узлам (включая текущий узел) и вызывает посетителя с узлом.
addChildNode(Node node)Добавить дочерний узел к этому узлу
addEntity(Entity entity)Добавить сущность к узлу.
createChildNode()Создает дочерний узел
createChildNode(Entity entity)Создать новый дочерний узел с прикреплённой заданной сущностью
createChildNode(String nodeName)Создать новый дочерний узел с заданным именем узла
createChildNode(String nodeName, Entity entity)Создать новый дочерний узел с заданным именем узла
createChildNode(String nodeName, Entity entity, Material material)Создать новый дочерний узел с заданным именем узла и прикрепить указанную сущность и материал
equals(Object arg0)
evaluateGlobalTransform(boolean withGeometricTransform)Вычислить глобальное преобразование, включать геометрическое преобразование или нет.
findProperty(String propertyName)Находит свойство.
getAssetInfo()Информация об активе для каждого узла
getBoundingBox()Вычислить ограничивающий прямоугольник узла
getChild(int index)Получает дочерний узел по указанному индексу.
getChild(String nodeName)Получает дочерний узел с указанным именем
getChildNodes()Получает дочерние узлы.
getClass()
getEntities()Получает все сущности узла.
getEntity()Получает первую сущность, прикреплённую к этому узлу; если установить, будут удалены другие сущности.
getExcluded()Получает, следует ли исключать этот узел и все дочерние узлы/сущности при экспорте.
getGlobalTransform()Получает глобальное преобразование.
getMaterial()Получает первый материал, связанный с этим узлом; если установить, будут удалены другие материалы.
getMaterials()Получает материалы, связанные с этим узлом.
getMetaDatas()Получает метаданные, определённые в этом узле.
getName()Получает имя.
getParentNode()Получает родительский узел.
getProperties()Получает коллекцию всех свойств.
getProperty(String property)Получить значение указанного свойства
getScene()Получает сцену, к которой принадлежит этот объект
getTransform()Получает локальное преобразование.
getVisible()Получает отображение узла
hashCode()
merge(Node node)Отсоединить всё под узлом и прикрепить к текущему узлу.
notify()
notifyAll()
removeProperty(Property property)Удаляет динамическое свойство.
removeProperty(String property)Удалить указанное свойство, определяемое по имени
selectObjects(String path)Выбрать несколько объектов под текущим узлом, используя синтаксис запросов, похожий на XPath.
selectSingleObject(String path)Выбрать один объект под текущим узлом, используя синтаксис запросов, похожий на XPath.
setAssetInfo(AssetInfo value)Информация об активе для каждого узла
setEntity(Entity value)Устанавливает первую сущность, прикреплённую к этому узлу; если установить, будут удалены другие сущности.
setExcluded(boolean value)Устанавливает, следует ли исключать этот узел и все дочерние узлы/сущности при экспорте.
setMaterial(Material value)Устанавливает первый материал, связанный с этим узлом; если устанавливается, остальные материалы будут очищены
setName(String value)Устанавливает имя.
setParentNode(Node value)Устанавливает родительский узел.
setProperty(String property, Object value)Устанавливает значение указанного свойства
setVisible(boolean value)Устанавливает отображение узла.
toString()Получает строковое представление этого узла.
wait()
wait(long arg0)
wait(long arg0, int arg1)

Node()

public Node()

Инициализирует новый экземпляр класса Node.

Node(String name, Entity entity)

public Node(String name, Entity entity)

Инициализирует новый экземпляр класса Node.

Parameters:

ПараметрТипОписание
имяjava.lang.StringИмя.
entityEntityСущность по умолчанию.

Node(String name)

public Node(String name)

Инициализирует новый экземпляр класса Node.

Parameters:

ПараметрТипОписание
имяjava.lang.StringИмя.

accept(NodeVisitor visitor)

public boolean accept(NodeVisitor visitor)

Проходит по всем дочерним узлам (включая текущий узел) и вызывает посетителя с узлом. Посетитель может прервать обход, вернув false

Parameters:

ПараметрТипОписание
visitorNodeVisitorОбратный вызов посетителя для посещения узла

Returns: boolean - true означает, что посетитель прервал обход. Example: Следующий код показывает, как получить все сетки из сцены

Scene scene = Scene.fromFile("input.fbx");
     List<Mesh> meshes = new ArrayList<Mesh>();
     scene.getRootNode().accept(new NodeVisitor() {
         @Override
         public boolean call(Node node) {
             if(node.Entity instanceof Mesh)
                 meshes.add(((Mesh)node).getEntity());
             //continue searching
             return true;
         }
     });

addChildNode(Node node)

public void addChildNode(Node node)

Добавить дочерний узел к этому узлу

Parameters:

ПараметрТипОписание
nodeNode
Scene scene = Scene.fromFile("input.fbx");
     var newNode = new Node();
     //add a new node manually
     scene.getRootNode().addChildNode(newNode);
``` |

### addEntity(Entity entity) {#addEntity-com.aspose.threed.Entity-}

public void addEntity(Entity entity)



Добавить сущность к узлу.

**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| entity | [Entity](../../com.aspose.threed/entity) | Сущность, которая будет присоединена к узлу |

### createChildNode() {#createChildNode--}

public Node createChildNode()



Создает дочерний узел

**Returns:**
[Node](../../com.aspose.threed/node) - The new child node. **Example:** The following code shows how to create a new child node under root node

Scene scene = new Scene(); Node node = scene.getRootNode().createChildNode(); node.setEntity(new Box()); scene.save(“output.fbx”);

### createChildNode(Entity entity) {#createChildNode-com.aspose.threed.Entity-}

public Node createChildNode(Entity entity)



Создать новый дочерний узел с прикреплённой заданной сущностью

**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| entity | [Entity](../../com.aspose.threed/entity) | Сущность по умолчанию, присоединённая к узлу |

**Returns:**
[Node](../../com.aspose.threed/node) - The new child node. **Example:** The following code shows how to create a new child node under root node

Scene scene = new Scene(); Node node = scene.getRootNode().createChildNode(new Box()); scene.save(“output.fbx”);

### createChildNode(String nodeName) {#createChildNode-java.lang.String-}

public Node createChildNode(String nodeName)



Создать новый дочерний узел с заданным именем узла

**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| nodeName | java.lang.String | Имя нового дочернего узла |

**Returns:**
[Node](../../com.aspose.threed/node) - The new child node. **Example:** The following code shows how to create a new child node under root node

Scene scene = new Scene(); Node node = scene.getRootNode().createChildNode(“new node”); node.setEntity(new Box()); scene.save(“output.fbx”);

### createChildNode(String nodeName, Entity entity) {#createChildNode-java.lang.String-com.aspose.threed.Entity-}

public Node createChildNode(String nodeName, Entity entity)



Создать новый дочерний узел с заданным именем узла

**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| nodeName | java.lang.String | Имя нового дочернего узла |
| entity | [Entity](../../com.aspose.threed/entity) | Сущность по умолчанию, присоединённая к узлу |

**Returns:**
[Node](../../com.aspose.threed/node) - The new child node.
### createChildNode(String nodeName, Entity entity, Material material) {#createChildNode-java.lang.String-com.aspose.threed.Entity-com.aspose.threed.Material-}

public Node createChildNode(String nodeName, Entity entity, Material material)



Создать новый дочерний узел с заданным именем узла и прикрепить указанную сущность и материал

**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| nodeName | java.lang.String | Имя нового дочернего узла |
| entity | [Entity](../../com.aspose.threed/entity) | Сущность по умолчанию, присоединённая к узлу |
| material | [Material](../../com.aspose.threed/material) | Материал, присоединённый к узлу |

**Returns:**
[Node](../../com.aspose.threed/node) - The new child node.
### equals(Object arg0) {#equals-java.lang.Object-}

public boolean equals(Object arg0)





**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| arg0 | java.lang.Object |  |

**Returns:**
boolean
### evaluateGlobalTransform(boolean withGeometricTransform) {#evaluateGlobalTransform-boolean-}

public Matrix4 evaluateGlobalTransform(boolean withGeometricTransform)



Вычислить глобальное преобразование, включать геометрическое преобразование или нет.

**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| withGeometricTransform | boolean | Нужна ли геометрическая трансформация. |

**Returns:**
[Matrix4](../../com.aspose.threed/matrix4) - The global transform matrix. **Example:** The following code shows how to read the node's global transform matrix.

Scene scene = new Scene(); var boxNode = scene.getRootNode().createChildNode(new Box()); //place the box at (10, 0, 0) boxNode.getTransform().setTranslation(new Vector3(10, 0, 0)); Matrix4 mat = boxNode.evaluateGlobalTransform(true); System.out.printf(“The box’s global transform matrix is %s”, mat);

### findProperty(String propertyName) {#findProperty-java.lang.String-}

public Property findProperty(String propertyName)



Находит свойство. Оно может быть динамическим свойством (созданным с помощью CreateDynamicProperty/SetProperty) или нативным свойством (определяемым по его имени)

**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| propertyName | java.lang.String | Имя свойства. |

**Returns:**
[Property](../../com.aspose.threed/property) - The property.
### getAssetInfo() {#getAssetInfo--}

public AssetInfo getAssetInfo()



Информация об активе для каждого узла

**Returns:**
[AssetInfo](../../com.aspose.threed/assetinfo) - Per-node asset info
### getBoundingBox() {#getBoundingBox--}

public BoundingBox getBoundingBox()



Вычислить ограничивающий прямоугольник узла

**Returns:**
[BoundingBox](../../com.aspose.threed/boundingbox) - The bounding box of current node
### getChild(int index) {#getChild-int-}

public Node getChild(int index)



Получает дочерний узел по указанному индексу.

**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| индекс | int | Индекс. |

**Returns:**
[Node](../../com.aspose.threed/node) - The child. **Example:** The following code shows how to get a child node at specified index.

Scene scene = Scene.fromFile(“input.fbx”); var node = scene.getRootNode().getChild(0); System.out.printf(“The first node of the file is %s”, node.getName());

### getChild(String nodeName) {#getChild-java.lang.String-}

public Node getChild(String nodeName)



Получает дочерний узел с указанным именем

**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| nodeName | java.lang.String | Имя дочернего узла для поиска. |

**Returns:**
[Node](../../com.aspose.threed/node) - The child. **Example:** The following code shows how to get a child node with specified name

Scene scene = Scene.fromFile(“input.fbx”); var node = scene.getRootNode().getChild(“box”); System.out.printf(“The box node’s translation is %s”, node.getTransform().getTranslation());

### getChildNodes() {#getChildNodes--}

public List getChildNodes()



Получает дочерние узлы.

**Returns:**
java.util.List<com.aspose.threed.Node> - дочерние узлы. **Example:** Следующий код показывает, как перечислить дочерний узел корневого узла

Scene scene = Scene.fromFile(“test.fbx”); for(var child : scene.getRootNode().getChildNodes()) { //do your business }

### getClass() {#getClass--}

public final native Class getClass()





**Returns:**
java.lang.Class<?>
### getEntities() {#getEntities--}

public List getEntities()



Получает все сущности узла.

**Returns:**
java.util.List<com.aspose.threed.Entity> - все сущности узла.
### getEntity() {#getEntity--}

public Entity getEntity()



Получает первую сущность, прикреплённую к этому узлу; если установить, будут удалены другие сущности.

**Returns:**
[Entity](../../com.aspose.threed/entity) - the first entity attached to this node, if sets, will clear other entities. **Example:** The following code shows how to create a new child node under root node

Scene scene = new Scene(); Node node = scene.getRootNode().createChildNode(“new node”); node.setEntity(new Box()); scene.save(“output.fbx”);

### getExcluded() {#getExcluded--}

public boolean getExcluded()



Получает, следует ли исключать этот узел и все дочерние узлы/сущности при экспорте.

**Returns:**
boolean - следует ли исключить этот узел и все дочерние узлы/сущности при экспорте. **Example:** Следующий код показывает, как исключить указанный узел из экспорта

Scene scene = new Scene(); scene.getRootNode().createChildNode(“excluded”, new Box()).setExcluded(true); scene.getRootNode().createChildNode(“not excluded”, new Box()); scene.save(“output.usdz”);

### getGlobalTransform() {#getGlobalTransform--}

public GlobalTransform getGlobalTransform()



Получает глобальное преобразование.

**Returns:**
[GlobalTransform](../../com.aspose.threed/globaltransform) - the global transform. **Example:** The following code shows how to read node's global transform

Scene scene = new Scene(); var boxNode = scene.getRootNode().createChildNode(new Box()); //place the box at (10, 0, 0) boxNode.getTransform().setTranslation(new Vector3(10, 0, 0)); var global = boxNode.getGlobalTransform(); System.out.printf(“The box’s position in world coordinate is %s”, global.getTranslation());

### getMaterial() {#getMaterial--}

public Material getMaterial()



Получает первый материал, связанный с этим узлом; если установить, будут удалены другие материалы.

**Returns:**
[Material](../../com.aspose.threed/material) - the first material associated with this node, if sets, will clear other materials **Example:**

Scene scene = new Scene(); var node = scene.getRootNode().createChildNode(new Box()); node.setMaterial(new LambertMaterial());

### getMaterials() {#getMaterials--}

public List getMaterials()



Получает материалы, связанные с этим узлом.

**Returns:**
java.util.List<com.aspose.threed.Material> - материалы, связанные с этим узлом.
### getMetaDatas() {#getMetaDatas--}

public List getMetaDatas()



Получает метаданные, определённые в этом узле.

**Returns:**
java.util.List<com.aspose.threed.CustomObject> - метаданные, определённые в этом узле.
### getName() {#getName--}

public String getName()



Получает имя.

**Returns:**
java.lang.String - имя.
### getParentNode() {#getParentNode--}

public Node getParentNode()



Получает родительский узел.

**Returns:**
[Node](../../com.aspose.threed/node) - the parent node.
### getProperties() {#getProperties--}

public PropertyCollection getProperties()



Получает коллекцию всех свойств.

**Returns:**
[PropertyCollection](../../com.aspose.threed/propertycollection) - the collection of all properties.
### getProperty(String property) {#getProperty-java.lang.String-}

public Object getProperty(String property)



Получить значение указанного свойства

**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| свойство | java.lang.String | Имя свойства |

**Returns:**
java.lang.Object - Значение найденного свойства
### getScene() {#getScene--}

public Scene getScene()



Получает сцену, к которой принадлежит этот объект

**Returns:**
[Scene](../../com.aspose.threed/scene) - the scene that this object belongs to
### getTransform() {#getTransform--}

public Transform getTransform()



Получает локальное преобразование.

**Returns:**
[Transform](../../com.aspose.threed/transform) - the local transform. **Example:** The following code shows how to change the transform of the node:

Scene scene = new Scene(); var boxNode = scene.getRootNode().createChildNode(new Box()); //place the box at (10, 0, 0) boxNode.getTransform().setTranslation(new Vector3(10, 0, 0));

### getVisible() {#getVisible--}

public boolean getVisible()



Получает отображение узла

**Returns:**
boolean - отображать узел **Example:** Следующий код показывает, как создать невидимый узел

Scene scene = new Scene(); Node node = scene.getRootNode().createChildNode(“test-node”, new Box()); node.setVisible(false); scene.save(“output.fbx”);

### hashCode() {#hashCode--}

public native int hashCode()





**Returns:**
int
### merge(Node node) {#merge-com.aspose.threed.Node-}

public void merge(Node node)



Отсоединить всё под узлом и присоединить к текущему узлу. **Example:** Следующий код показывает, как объединить два 3D‑файла в один файл

Scene scene1 = Scene.fromFile(“scene1.fbx”); Scene scene2 = Scene.fromFile(“scene2.fbx”); scene1.getRootNode().merge(scene2.getRootNode()); scene1.save(“merged.fbx”);


**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| node | [Node](../../com.aspose.threed/node) |  |

### notify() {#notify--}

public final native void notify()





### notifyAll() {#notifyAll--}

public final native void notifyAll()





### removeProperty(Property property) {#removeProperty-com.aspose.threed.Property-}

public boolean removeProperty(Property property)



Удаляет динамическое свойство.

**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| property | [Property](../../com.aspose.threed/property) | Какое свойство удалить |

**Returns:**
boolean - true, если свойство успешно удалено
### removeProperty(String property) {#removeProperty-java.lang.String-}

public boolean removeProperty(String property)



Удалить указанное свойство, определяемое по имени

**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| свойство | java.lang.String | Какое свойство удалить |

**Returns:**
boolean - true, если свойство успешно удалено
### selectObjects(String path) {#selectObjects-java.lang.String-}

public ArrayList selectObjects(String path)



Выбрать несколько объектов под текущим узлом, используя синтаксис запросов, похожий на XPath.

**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| путь | java.lang.String | XPath‑подобный запрос |

**Returns:**
java.util.ArrayList<java.lang.Object> - Несколько объектов соответствуют запросу, похожему на XPath.
### selectSingleObject(String path) {#selectSingleObject-java.lang.String-}

public Object selectSingleObject(String path)



Выбрать один объект под текущим узлом, используя синтаксис запросов, похожий на XPath.

**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| путь | java.lang.String | XPath‑подобный запрос |

**Returns:**
java.lang.Object - Объект, найденный запросом, похожим на XPath.
### setAssetInfo(AssetInfo value) {#setAssetInfo-com.aspose.threed.AssetInfo-}

public void setAssetInfo(AssetInfo value)



Информация об активе для каждого узла

**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| value | [AssetInfo](../../com.aspose.threed/assetinfo) | Новое значение |

### setEntity(Entity value) {#setEntity-com.aspose.threed.Entity-}

public void setEntity(Entity value)



Устанавливает первую сущность, прикреплённую к этому узлу; если установить, будут удалены другие сущности.

**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
|  | value | [Entity](../../com.aspose.threed/entity) | Новое значение **Пример:** Следующий код показывает, как создать новый дочерний узел под корневым узлом |

Scene scene = new Scene(); Node node = scene.getRootNode().createChildNode(“new node”); node.setEntity(new Box()); scene.save(“output.fbx”);


### setExcluded(boolean value) {#setExcluded-boolean-}

public void setExcluded(boolean value)



Устанавливает, следует ли исключать этот узел и все дочерние узлы/сущности при экспорте.

**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
|  | значение | boolean | Новое значение **Пример:** Следующий код показывает, как исключить указанный узел из экспорта |

Scene scene = new Scene(); scene.getRootNode().createChildNode(“excluded”, new Box()).setExcluded(true); scene.getRootNode().createChildNode(“not excluded”, new Box()); scene.save(“output.usdz”);


### setMaterial(Material value) {#setMaterial-com.aspose.threed.Material-}

public void setMaterial(Material value)



Устанавливает первый материал, связанный с этим узлом; если устанавливается, остальные материалы будут очищены

**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
|  | value | [Material](../../com.aspose.threed/material) | Новое значение **Пример:** |

Scene scene = new Scene(); var node = scene.getRootNode().createChildNode(new Box()); node.setMaterial(new LambertMaterial());


### setName(String value) {#setName-java.lang.String-}

public void setName(String value)



Устанавливает имя.

**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| значение | java.lang.String | Новое значение |

### setParentNode(Node value) {#setParentNode-com.aspose.threed.Node-}

public void setParentNode(Node value)



Устанавливает родительский узел.

**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| value | [Node](../../com.aspose.threed/node) | Новое значение |

### setProperty(String property, Object value) {#setProperty-java.lang.String-java.lang.Object-}

public void setProperty(String property, Object value)



Устанавливает значение указанного свойства

**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| свойство | java.lang.String | Имя свойства |
| значение | java.lang.Object | Значение свойства |

### setVisible(boolean value) {#setVisible-boolean-}

public void setVisible(boolean value)



Устанавливает отображение узла.

**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
|  | значение | boolean | Новое значение **Пример:** Следующий код показывает, как создать невидимый узел |

Scene scene = new Scene(); Node node = scene.getRootNode().createChildNode(“test-node”, new Box()); node.setVisible(false); scene.save(“output.fbx”);


### toString() {#toString--}

public String toString()



Получает строковое представление этого узла.

**Returns:**
java.lang.String - Строковое представление этого узла для отладки.
### wait() {#wait--}

public final void wait()





### wait(long arg0) {#wait-long-}

public final void wait(long arg0)





**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| arg0 | long |  |

### wait(long arg0, int arg1) {#wait-long-int-}

public final void wait(long arg0, int arg1)





**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| arg0 | long |  |
| arg1 | int |  |