PolygonModifier
Inheritance: java.lang.Object
public class PolygonModifier
Утилиты для изменения полигонов
Методы
| Метод | Описание |
|---|---|
| applyTransform(Node node, Matrix4 transform) | Применить матрицу преобразования к контрольным точкам всех геометрий |
| buildTangentBinormal(Mesh mesh) | Это создаст касательную и бинормаль на сетке. Нормаль требуется; если нормаль отсутствует в сетке, она также будет создана из позиции. |
| buildTangentBinormal(Scene scene) | Это создаст касательную и бинормаль на всех сетках сцены. Нормаль требуется; если нормаль отсутствует в сетке, она также будет создана из позиции. |
| equals(Object arg0) | |
| generateNormal(Mesh mesh) | Сгенерировать данные нормали из определения Mesh |
| generateUV(Mesh mesh) | Сгенерировать UV‑данные из заданной входной сетки |
| generateUV(Mesh mesh, VertexElementNormal normals) | Сгенерировать UV‑данные из заданной входной сетки и указанных данных нормали. |
| getClass() | |
| hashCode() | |
| mergeMesh(Node node) | Преобразовать весь узел в одну трансформированную сетку Элементы вершины, такие как нормали/текстурные координаты, пока не поддерживаются |
| mergeMesh(Scene scene) | Преобразовать всю сцену в одну трансформированную сетку Элементы вершины, такие как нормали/текстурные координаты, пока не поддерживаются |
| mergeMesh(List | Преобразовать весь узел в одну трансформированную сетку Элементы вершины, такие как нормали/текстурные координаты, пока не поддерживаются |
| notify() | |
| notifyAll() | |
| scale(Node node, Vector3 scale) | Масштабировать все геометрии (масштабировать контрольные точки, а не матрицу трансформации) в этом узле |
| scale(Scene scene, Vector3 scale) | Масштабировать все геометрии (масштабировать контрольные точки, а не матрицу трансформации) в этой сцене |
| splitMesh(Mesh mesh, SplitMeshPolicy policy) | Разделить сетку на под-сетки с помощью VertexElementMaterial. |
| splitMesh(Node node, SplitMeshPolicy policy) | Разделить сетку на под-сетки с помощью VertexElementMaterial. |
| splitMesh(Node node, SplitMeshPolicy policy, boolean createChildNodes) | Разделить сетку на под-сетки с помощью VertexElementMaterial. |
| splitMesh(Node node, SplitMeshPolicy policy, boolean createChildNodes, boolean removeOldMesh) | Разделить сетку на под-сетки с помощью VertexElementMaterial. |
| splitMesh(Scene scene, SplitMeshPolicy policy) | Разделить сетку на под-сетки с помощью VertexElementMaterial. |
| splitMesh(Scene scene, SplitMeshPolicy policy, boolean removeOldMesh) | Разделить сетку на под-сетки с помощью VertexElementMaterial. |
| toString() | |
| triangulate(Mesh mesh) | Преобразовать полигональную сетку в полную треугольную сетку |
| triangulate(Scene scene) | Преобразовать все полигональные сетки в полные треугольные сетки |
| triangulate(List | Преобразовать полигон в треугольники, порядок полигона определяется controlPoints |
| triangulate(List | Преобразовать полигон в треугольники |
| triangulate(List | Преобразовать полигональную сетку в треугольники |
| triangulate(List | Преобразовать полигональную сетку в полную треугольную сетку |
| wait() | |
| wait(long arg0) | |
| wait(long arg0, int arg1) |
applyTransform(Node node, Matrix4 transform)
public static void applyTransform(Node node, Matrix4 transform)
Применить матрицу преобразования к контрольным точкам всех геометрий
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| node | Node | Геометрии какого узла будут применены с заданным преобразованием |
| transform | Matrix4 | Матрица трансформации, которая будет применена к контрольным точкам. |
buildTangentBinormal(Mesh mesh)
public static void buildTangentBinormal(Mesh mesh)
Это создаст касательные и бинормали в сетке. Нормаль требуется, если нормаль отсутствует в сетке, она также будет создана из позиции. UV также требуется, будет выброшено исключение, если UV не найдено.
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| mesh | Mesh |
buildTangentBinormal(Scene scene)
public static void buildTangentBinormal(Scene scene)
Это создаст касательные и бинормали во всех сетках сцены. Нормаль требуется, если нормаль отсутствует в сетке, она также будет создана из позиции. UV также требуется, сетка будет игнорироваться, если UV не определено.
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| scene | Scene |
equals(Object arg0)
public boolean equals(Object arg0)
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| arg0 | java.lang.Object |
Returns: boolean
generateNormal(Mesh mesh)
public static VertexElementNormal generateNormal(Mesh mesh)
Сгенерировать данные нормали из определения Mesh
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| mesh | Mesh |
Returns: VertexElementNormal - VertexElementNormal instance with normal data.
generateUV(Mesh mesh)
public static VertexElementUV generateUV(Mesh mesh)
Сгенерировать UV‑данные из заданной входной сетки
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| mesh | Mesh | Входная сетка |
Returns: VertexElementUV - Generated UV data
generateUV(Mesh mesh, VertexElementNormal normals)
public static VertexElementUV generateUV(Mesh mesh, VertexElementNormal normals)
Сгенерировать UV‑данные из заданной входной сетки и указанных данных нормали.
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| mesh | Mesh | Входная сетка |
| normals | VertexElementNormal | Данные нормали |
Returns: VertexElementUV - Generated UV data
getClass()
public final native Class<?> getClass()
Returns: java.lang.Class
hashCode()
public native int hashCode()
Returns: int
mergeMesh(Node node)
public static Mesh mergeMesh(Node node)
Преобразовать весь узел в одну трансформированную сетку Элементы вершины, такие как нормали/текстурные координаты, пока не поддерживаются
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| node | Node | Узел для объединения |
Returns: Mesh - Merged mesh Example: The following code shows how to merge all objects from nodes into a single mesh.
//Input file may contains multiple objects
var scene = Scene.fromFile("input.fbx");
//now merge them into a single mesh
Mesh merged = PolygonModifier.mergeMesh(scene.getRootNode());
//then we save it to a file with only one mesh
var newScene = new Scene(merged);
newScene.save("test.obj");
mergeMesh(Scene scene)
public static Mesh mergeMesh(Scene scene)
Преобразовать всю сцену в одну трансформированную сетку Элементы вершины, такие как нормали/текстурные координаты, пока не поддерживаются
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| scene | Scene | Сцена для объединения |
Returns: Mesh - The merged mesh Example: The following code shows how to merge all objects from a scene into a single mesh.
//Input file may contains multiple objects
var scene = Scene.fromFile("input.fbx");
//now merge them into a single mesh
Mesh merged = PolygonModifier.mergeMesh(scene);
//then we save it to a file with only one mesh
var newScene = new Scene(merged);
newScene.save("test.obj");
mergeMesh(List nodes)
public static Mesh mergeMesh(List<Node> nodes)
Преобразовать весь узел в одну трансформированную сетку Элементы вершины, такие как нормали/текстурные координаты, пока не поддерживаются
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| узлы | java.util.List<com.aspose.threed.Node> | Узлы для объединения |
Returns: Mesh - Merged mesh Example: The following code shows how to merge all objects from nodes into a single mesh.
//Input file may contains multiple objects
var scene = Scene.fromFile("input.fbx");
//now merge them into a single mesh
Mesh merged = PolygonModifier.mergeMesh(scene.getRootNode().getChildNodes());
//then we save it to a file with only one mesh
var newScene = new Scene(merged);
newScene.save("test.obj");
notify()
public final native void notify()
notifyAll()
public final native void notifyAll()
scale(Node node, Vector3 scale)
public static void scale(Node node, Vector3 scale)
Масштабировать все геометрии (масштабировать контрольные точки, а не матрицу трансформации) в этом узле
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| node | Node | Узел для масштабирования |
| scale | Vector3 |
//Load a test file for scaling
var scene = Scene.fromFile("input.fbx");
//scale all geometries 10 times.
PolygonModifier.scale(scene.getRootNode(), new Vector3(10, 10, 10));
scene.save("test.obj");
``` |
### scale(Scene scene, Vector3 scale) {#scale-com.aspose.threed.Scene-com.aspose.threed.Vector3-}
public static Scene scale(Scene scene, Vector3 scale)
Масштабировать все геометрии (масштабировать контрольные точки, а не матрицу трансформации) в этой сцене
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| scene | [Scene](../../com.aspose.threed/scene) | Сцена для масштабирования |
| | scale | [Vector3](../../com.aspose.threed/vector3) | Коэффициент масштабирования **Example:** Следующий код показывает, как масштабировать все геометрии в сцене в 10 раз. |
//Load a test file for scaling var scene = Scene.fromFile(“input.fbx”); //scale all geometries 10 times. PolygonModifier.scale(scene, new Vector3(10, 10, 10)); scene.save(“test.obj”);
**Returns:**
[Scene](../../com.aspose.threed/scene)
### splitMesh(Mesh mesh, SplitMeshPolicy policy) {#splitMesh-com.aspose.threed.Mesh-com.aspose.threed.SplitMeshPolicy-}
public static Mesh[] splitMesh(Mesh mesh, SplitMeshPolicy policy)
Разделить сетку на под-сетки с помощью [VertexElementMaterial](../../com.aspose.threed/vertexelementmaterial). Каждая под-сетка будет использовать только один материал. Исходная сетка не будет изменена.
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| mesh | [Mesh](../../com.aspose.threed/mesh) | |
| policy | [SplitMeshPolicy](../../com.aspose.threed/splitmeshpolicy) | |
**Returns:**
com.aspose.threed.Mesh[] - Новые разделённые меши **Пример:** Следующий код показывает, как разделить коробку на подмеши, используя индексы материалов.
// Create a mesh of box(A box is composed by 6 planes) Mesh box = (new Box()).toMesh(); // Create a material element on this mesh VertexElementMaterial mat = (VertexElementMaterial)box.createElement(VertexElementType.MATERIAL, MappingMode.POLYGON, ReferenceMode.INDEX); // And specify different material index for each plane mat.setIndices(new int[] { 0, 1, 2, 3, 4, 5 }); // Now split it into 6 sub meshes, we specified 6 different materials on each plane, each plane will become a sub mesh. // We used the CloneData policy, each plane will has the same control point information or control point-based vertex element information. Mesh[] planes = PolygonModifier.splitMesh(box, SplitMeshPolicy.CLONE_DATA);
// Now split it into 2 sub meshes, first mesh will contains 0/1/2 planes, and second mesh will contains the 3/4/5th planes.
mat.setIndices(new int[] { 0, 0, 0, 1, 1, 1 });
// We used the CompactData policy, each plane will has its own control point information or control point-based vertex element information.
planes = PolygonModifier.splitMesh(box, SplitMeshPolicy.COMPACT_DATA);
### splitMesh(Node node, SplitMeshPolicy policy) {#splitMesh-com.aspose.threed.Node-com.aspose.threed.SplitMeshPolicy-}
public static void splitMesh(Node node, SplitMeshPolicy policy)
Разделить меш на подмеши с помощью [VertexElementMaterial](../../com.aspose.threed/vertexelementmaterial). Каждый подмеш будет использовать только один материал. Выполнить разделение меша на узле **Пример:** Следующий код показывает, как разделить коробку на подмеши, используя индексы материалов.
// Create a mesh of box(A box is composed by 6 planes) Mesh box = (new Box()).toMesh(); // Create a material element on this mesh VertexElementMaterial mat = (VertexElementMaterial)box.createElement(VertexElementType.MATERIAL, MappingMode.POLYGON, ReferenceMode.INDEX); // And specify different material index for each plane mat.setIndices(new int[] { 0, 1, 2, 3, 4, 5 }); // Now split it into 6 sub meshes, we specified 6 different materials on each plane, each plane will become a sub mesh. // We used the CloneData policy, each plane will has the same control point information or control point-based vertex element information. Mesh[] planes = PolygonModifier.splitMesh(box, SplitMeshPolicy.CLONE_DATA);
// Now split it into 2 sub meshes, first mesh will contains 0/1/2 planes, and second mesh will contains the 3/4/5th planes.
mat.setIndices(new int[] { 0, 0, 0, 1, 1, 1 });
// We used the CompactData policy, each plane will has its own control point information or control point-based vertex element information.
planes = PolygonModifier.splitMesh(box, SplitMeshPolicy.COMPACT_DATA);
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| node | [Node](../../com.aspose.threed/node) | |
| policy | [SplitMeshPolicy](../../com.aspose.threed/splitmeshpolicy) | |
### splitMesh(Node node, SplitMeshPolicy policy, boolean createChildNodes) {#splitMesh-com.aspose.threed.Node-com.aspose.threed.SplitMeshPolicy-boolean-}
public static void splitMesh(Node node, SplitMeshPolicy policy, boolean createChildNodes)
Разделить меш на подмеши с помощью [VertexElementMaterial](../../com.aspose.threed/vertexelementmaterial). Каждый подмеш будет использовать только один материал. Выполнить разделение меша на узле.
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| node | [Node](../../com.aspose.threed/node) | |
| policy | [SplitMeshPolicy](../../com.aspose.threed/splitmeshpolicy) | |
| | createChildNodes | boolean | Создать дочерние узлы для каждого подмеша. **Пример:** Следующий код показывает, как разделить коробку на подмеши, используя индексы материалов. |
// Create a mesh of box(A box is composed by 6 planes) Mesh box = (new Box()).toMesh(); // Create a material element on this mesh VertexElementMaterial mat = (VertexElementMaterial)box.createElement(VertexElementType.MATERIAL, MappingMode.POLYGON, ReferenceMode.INDEX); // And specify different material index for each plane mat.setIndices(new int[] { 0, 1, 2, 3, 4, 5 }); // Now split it into 6 sub meshes, we specified 6 different materials on each plane, each plane will become a sub mesh. // We used the CloneData policy, each plane will has the same control point information or control point-based vertex element information. Mesh[] planes = PolygonModifier.splitMesh(box, SplitMeshPolicy.CLONE_DATA);
// Now split it into 2 sub meshes, first mesh will contains 0/1/2 planes, and second mesh will contains the 3/4/5th planes.
mat.setIndices(new int[] { 0, 0, 0, 1, 1, 1 });
// We used the CompactData policy, each plane will has its own control point information or control point-based vertex element information.
planes = PolygonModifier.splitMesh(box, SplitMeshPolicy.COMPACT_DATA);
### splitMesh(Node node, SplitMeshPolicy policy, boolean createChildNodes, boolean removeOldMesh) {#splitMesh-com.aspose.threed.Node-com.aspose.threed.SplitMeshPolicy-boolean-boolean-}
public static void splitMesh(Node node, SplitMeshPolicy policy, boolean createChildNodes, boolean removeOldMesh)
Разделить меш на подмеши с помощью [VertexElementMaterial](../../com.aspose.threed/vertexelementmaterial). Каждый подмеш будет использовать только один материал. Выполнить разделение меша на узле.
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| node | [Node](../../com.aspose.threed/node) | |
| policy | [SplitMeshPolicy](../../com.aspose.threed/splitmeshpolicy) | |
| createChildNodes | boolean | Создать дочерние узлы для каждого подмеша. |
| | removeOldMesh | boolean | Удалить старый меш после разделения; если этот параметр равен false, старый и новый меши будут сосуществовать. **Пример:** Следующий код показывает, как разделить коробку на подмеши, используя индексы материалов. |
// Create a mesh of box(A box is composed by 6 planes) Mesh box = (new Box()).toMesh(); // Create a material element on this mesh VertexElementMaterial mat = (VertexElementMaterial)box.createElement(VertexElementType.MATERIAL, MappingMode.POLYGON, ReferenceMode.INDEX); // And specify different material index for each plane mat.setIndices(new int[] { 0, 1, 2, 3, 4, 5 }); // Now split it into 6 sub meshes, we specified 6 different materials on each plane, each plane will become a sub mesh. // We used the CloneData policy, each plane will has the same control point information or control point-based vertex element information. Mesh[] planes = PolygonModifier.splitMesh(box, SplitMeshPolicy.CLONE_DATA);
// Now split it into 2 sub meshes, first mesh will contains 0/1/2 planes, and second mesh will contains the 3/4/5th planes.
mat.setIndices(new int[] { 0, 0, 0, 1, 1, 1 });
// We used the CompactData policy, each plane will has its own control point information or control point-based vertex element information.
planes = PolygonModifier.splitMesh(box, SplitMeshPolicy.COMPACT_DATA);
### splitMesh(Scene scene, SplitMeshPolicy policy) {#splitMesh-com.aspose.threed.Scene-com.aspose.threed.SplitMeshPolicy-}
public static void splitMesh(Scene scene, SplitMeshPolicy policy)
Разделить меш на подмеши с помощью [VertexElementMaterial](../../com.aspose.threed/vertexelementmaterial). Каждый подмеш будет использовать только один материал. Выполнить разделение меша на всех узлах сцены **Пример:** Следующий код показывает, как разделить коробку на подмеши, используя индексы материалов.
// Create a mesh of box(A box is composed by 6 planes) Mesh box = (new Box()).toMesh(); // Create a material element on this mesh VertexElementMaterial mat = (VertexElementMaterial)box.createElement(VertexElementType.MATERIAL, MappingMode.POLYGON, ReferenceMode.INDEX); // And specify different material index for each plane mat.setIndices(new int[] { 0, 1, 2, 3, 4, 5 }); // Now split it into 6 sub meshes, we specified 6 different materials on each plane, each plane will become a sub mesh. // We used the CloneData policy, each plane will has the same control point information or control point-based vertex element information. Mesh[] planes = PolygonModifier.splitMesh(box, SplitMeshPolicy.CLONE_DATA);
// Now split it into 2 sub meshes, first mesh will contains 0/1/2 planes, and second mesh will contains the 3/4/5th planes.
mat.setIndices(new int[] { 0, 0, 0, 1, 1, 1 });
// We used the CompactData policy, each plane will has its own control point information or control point-based vertex element information.
planes = PolygonModifier.splitMesh(box, SplitMeshPolicy.COMPACT_DATA);
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| scene | [Scene](../../com.aspose.threed/scene) | |
| policy | [SplitMeshPolicy](../../com.aspose.threed/splitmeshpolicy) | |
### splitMesh(Scene scene, SplitMeshPolicy policy, boolean removeOldMesh) {#splitMesh-com.aspose.threed.Scene-com.aspose.threed.SplitMeshPolicy-boolean-}
public static void splitMesh(Scene scene, SplitMeshPolicy policy, boolean removeOldMesh)
Разделить меш на подмеши с помощью [VertexElementMaterial](../../com.aspose.threed/vertexelementmaterial). Каждый подмеш будет использовать только один материал. Выполнить разделение меша на всех узлах сцены **Пример:** Следующий код показывает, как разделить коробку на подмеши, используя индексы материалов.
// Create a mesh of box(A box is composed by 6 planes) Mesh box = (new Box()).toMesh(); // Create a material element on this mesh VertexElementMaterial mat = (VertexElementMaterial)box.createElement(VertexElementType.MATERIAL, MappingMode.POLYGON, ReferenceMode.INDEX); // And specify different material index for each plane mat.setIndices(new int[] { 0, 1, 2, 3, 4, 5 }); // Now split it into 6 sub meshes, we specified 6 different materials on each plane, each plane will become a sub mesh. // We used the CloneData policy, each plane will has the same control point information or control point-based vertex element information. Mesh[] planes = PolygonModifier.splitMesh(box, SplitMeshPolicy.CLONE_DATA);
// Now split it into 2 sub meshes, first mesh will contains 0/1/2 planes, and second mesh will contains the 3/4/5th planes.
mat.setIndices(new int[] { 0, 0, 0, 1, 1, 1 });
// We used the CompactData policy, each plane will has its own control point information or control point-based vertex element information.
planes = PolygonModifier.splitMesh(box, SplitMeshPolicy.COMPACT_DATA);
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| scene | [Scene](../../com.aspose.threed/scene) | |
| policy | [SplitMeshPolicy](../../com.aspose.threed/splitmeshpolicy) | |
| removeOldMesh | boolean | |
### toString() {#toString--}
public String toString()
**Returns:**
java.lang.String
### triangulate(Mesh mesh) {#triangulate-com.aspose.threed.Mesh-}
public static Mesh triangulate(Mesh mesh)
Преобразовать полигональную сетку в полную треугольную сетку
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| mesh | [Mesh](../../com.aspose.threed/mesh) | Исходный меш без треугольников |
**Returns:**
[Mesh](../../com.aspose.threed/mesh) - The generated new triangle mesh **Example:** The following code shows how to merge all objects from a scene into a single mesh.
var mesh = new Cylinder().toMesh();
//Triangulate this quadrangle-based mesh to triangle-based
mesh = PolygonModifier.triangulate(mesh);
var scene = new Scene(mesh);
scene.save("test.obj");
### triangulate(Scene scene) {#triangulate-com.aspose.threed.Scene-}
public static void triangulate(Scene scene)
Преобразовать все полигональные сетки в полные треугольные сетки
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| | scene | [Scene](../../com.aspose.threed/scene) | Сцена для обработки **Пример:** Следующий код показывает, как объединить все объекты сцены в один меш. |
var mesh = new Cylinder().toMesh();
//Triangulate this quadrangle-based mesh to triangle-based
mesh = PolygonModifier.triangulate(mesh);
var scene = new Scene(mesh);
scene.save("test.obj");
### triangulate(List<Vector4> controlPoints) {#triangulate-java.util.List-com.aspose.threed.Vector4--}
public static int[][] triangulate(List
Преобразовать полигон в треугольники, порядок полигона определяется `controlPoints`
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| controlPoints | java.util.List<com.aspose.threed.Vector4> | Контрольные точки меша |
**Returns:**
int[][] - Набор треугольников **Пример:** Следующий код показывает, как объединить все объекты сцены в один меш.
var mesh = new Cylinder().toMesh();
//Triangulate this quadrangle-based mesh to triangle-based
mesh = PolygonModifier.triangulate(mesh);
var scene = new Scene(mesh);
scene.save("test.obj");
### triangulate(List<Vector4> controlPoints, int[] polygon) {#triangulate-java.util.List-com.aspose.threed.Vector4--int---}
public static int[][] triangulate(List
Преобразовать полигон в треугольники
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| controlPoints | java.util.List<com.aspose.threed.Vector4> | Контрольные точки меша |
| polygon | int[] | Грань полигона |
**Returns:**
int[][] - Набор треугольников **Пример:** Следующий код показывает, как объединить все объекты сцены в один меш.
var mesh = new Cylinder().toMesh();
//Triangulate this quadrangle-based mesh to triangle-based
mesh = PolygonModifier.triangulate(mesh);
var scene = new Scene(mesh);
scene.save("test.obj");
### triangulate(List<Vector4> controlPoints, List<int[]> polygons) {#triangulate-java.util.List-com.aspose.threed.Vector4--java.util.List-int----}
public static int[][] triangulate(List
Преобразовать полигональную сетку в треугольники
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| controlPoints | java.util.List<com.aspose.threed.Vector4> | Контрольные точки меша |
| polygons | java.util.List<int[]> | Грани полигона |
**Returns:**
int[][] - Набор треугольников **Пример:** Следующий код показывает, как объединить все объекты сцены в один меш.
var mesh = new Cylinder().toMesh();
//Triangulate this quadrangle-based mesh to triangle-based
mesh = PolygonModifier.triangulate(mesh);
var scene = new Scene(mesh);
scene.save("test.obj");
### triangulate(List<Vector4> controlPoints, List<int[]> polygons, boolean generateNormals, Vector3[][] nor_out) {#triangulate-java.util.List-com.aspose.threed.Vector4--java.util.List-int----boolean-com.aspose.threed.Vector3-----}
public static int[][] triangulate(List
Преобразовать полигональную сетку в полную треугольную сетку
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| controlPoints | java.util.List<com.aspose.threed.Vector4> | Контрольные точки меша |
| polygons | java.util.List<int[]> | Грани полигона |
| generateNormals | boolean | Генерировать нормали |
| nor_out | [Vector3\[\]](../../com.aspose.threed/vector3) | Сгенерирована нормаль для каждой контрольной точки |
**Returns:**
int[][] - Набор треугольников **Пример:** Следующий код показывает, как объединить все объекты сцены в один меш.
var mesh = new Cylinder().toMesh();
//Triangulate this quadrangle-based mesh to triangle-based
mesh = PolygonModifier.triangulate(mesh);
var scene = new Scene(mesh);
scene.save("test.obj");
### 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 | |