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 nodes)Преобразовать весь узел в одну трансформированную сетку Элементы вершины, такие как нормали/текстурные координаты, пока не поддерживаются
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)Преобразовать полигон в треугольники, порядок полигона определяется controlPoints
triangulate(List controlPoints, int[] polygon)Преобразовать полигон в треугольники
triangulate(List controlPoints, List<int[]> polygons)Преобразовать полигональную сетку в треугольники
triangulate(List controlPoints, List<int[]> polygons, boolean generateNormals, Vector3[][] nor_out)Преобразовать полигональную сетку в полную треугольную сетку
wait()
wait(long arg0)
wait(long arg0, int arg1)

applyTransform(Node node, Matrix4 transform)

public static void applyTransform(Node node, Matrix4 transform)

Применить матрицу преобразования к контрольным точкам всех геометрий

Parameters:

ПараметрТипОписание
nodeNodeГеометрии какого узла будут применены с заданным преобразованием
transformMatrix4Матрица трансформации, которая будет применена к контрольным точкам.

buildTangentBinormal(Mesh mesh)

public static void buildTangentBinormal(Mesh mesh)

Это создаст касательные и бинормали в сетке. Нормаль требуется, если нормаль отсутствует в сетке, она также будет создана из позиции. UV также требуется, будет выброшено исключение, если UV не найдено.

Parameters:

ПараметрТипОписание
meshMesh

buildTangentBinormal(Scene scene)

public static void buildTangentBinormal(Scene scene)

Это создаст касательные и бинормали во всех сетках сцены. Нормаль требуется, если нормаль отсутствует в сетке, она также будет создана из позиции. UV также требуется, сетка будет игнорироваться, если UV не определено.

Parameters:

ПараметрТипОписание
sceneScene

equals(Object arg0)

public boolean equals(Object arg0)

Parameters:

ПараметрТипОписание
arg0java.lang.Object

Returns: boolean

generateNormal(Mesh mesh)

public static VertexElementNormal generateNormal(Mesh mesh)

Сгенерировать данные нормали из определения Mesh

Parameters:

ПараметрТипОписание
meshMesh

Returns: VertexElementNormal - VertexElementNormal instance with normal data.

generateUV(Mesh mesh)

public static VertexElementUV generateUV(Mesh mesh)

Сгенерировать UV‑данные из заданной входной сетки

Parameters:

ПараметрТипОписание
meshMeshВходная сетка

Returns: VertexElementUV - Generated UV data

generateUV(Mesh mesh, VertexElementNormal normals)

public static VertexElementUV generateUV(Mesh mesh, VertexElementNormal normals)

Сгенерировать UV‑данные из заданной входной сетки и указанных данных нормали.

Parameters:

ПараметрТипОписание
meshMeshВходная сетка
normalsVertexElementNormalДанные нормали

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:

ПараметрТипОписание
nodeNodeУзел для объединения

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:

ПараметрТипОписание
sceneSceneСцена для объединения

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:

ПараметрТипОписание
nodeNodeУзел для масштабирования
scaleVector3
//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)



Преобразовать полигон в треугольники, порядок полигона определяется `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 controlPoints, int[] polygon)



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

**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 controlPoints, List<int[]> polygons)



Преобразовать полигональную сетку в треугольники

**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 controlPoints, List<int[]> polygons, boolean generateNormals, Vector3[][] nor_out)



Преобразовать полигональную сетку в полную треугольную сетку

**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 |  |