TriMesh
Inheritance: java.lang.Object, com.aspose.threed.A3DObject, com.aspose.threed.SceneObject, com.aspose.threed.Entity
All Implemented Interfaces: java.lang.Iterable
public class TriMesh extends Entity implements Iterable<Vertex>
TriMesh содержит необработанные данные, которые могут использоваться GPU напрямую. Этот класс — утилита, помогающая создавать сетку, содержащую только данные для каждой вершины. Пример: Следующий код показывает, как создать TriMesh с пользовательским расположением памяти и экспортировать его в файл.
//Define a vertex declaration as {FVector3 Position; FVector3 Normal; FVector2 UV}
VertexDeclaration vd = new VertexDeclaration();
vd.addField(VertexFieldDataType.F_VECTOR3, VertexFieldSemantic.POSITION);
vd.addField(VertexFieldDataType.F_VECTOR3, VertexFieldSemantic.NORMAL);
vd.addField(VertexFieldDataType.F_VECTOR2, VertexFieldSemantic.UV);
//convert a mesh to tri-mesh using specified memory layout
var mesh = (new Sphere()).toMesh();
var triMesh = TriMesh.fromMesh(vd, mesh);
//save it to a stream, 115 vertices * 32bytes per vertex
try(var s = new FileOutputStream("output.bin")) {
triMesh.writeVerticesTo(s);
//save indices as ushort to stream, 504 indices * 2 bytes per index
triMesh.write16bIndicesTo(s);
}
Конструкторы
| Конструктор | Описание |
|---|---|
| TriMesh(String name, VertexDeclaration declaration) | Инициализировать экземпляр TriMesh |
Методы
| Метод | Описание |
|---|---|
| addTriangle(int a, int b, int c) | Добавить новый треугольник |
| beginVertex() | Начать добавление вершины |
| copyFrom(TriMesh input, VertexDeclaration vd) | Скопировать TriMesh из входных данных с новым расположением вершин |
| endVertex() | Завершить добавление вершины |
| equals(Object arg0) | |
| findProperty(String propertyName) | Находит свойство. |
| fromMesh(Mesh mesh) | Создать TriMesh из заданного объектa сетки, объявление вершин основано на структуре входной сетки. |
| fromMesh(Mesh mesh, boolean useFloat) | Создать TriMesh из заданного объектa сетки, объявление вершин основано на структуре входной сетки. |
| fromMesh(VertexDeclaration declaration, Mesh mesh) | Создать TriMesh из заданного объектa сетки с указанным расположением вершин. |
| fromRawData(VertexDeclaration vd, byte[] vertices, int[] indices, boolean generateVertexMapping) | Создать TriMesh из необработанных данных |
| getBoundingBox() | Получает ограничивающий прямоугольник текущего объекта в системе координат его объектного пространства. |
| getCapacity() | Ёмкость предварительно выделенных вершин. |
| getClass() | |
| getEntityRendererKey() | Получает ключ рендерера сущности, зарегистрированного в рендерере. |
| getExcluded() | Получает, следует ли исключать эту сущность при экспорте. |
| getIndicesCount() | Количество индексов в этом TriMesh |
| getIntIndices() | Преобразовать индексы в массив 32‑битных целых чисел |
| getName() | Получает имя. |
| getParentNode() | Получает первый родительский узел; если установить первый родительский узел, эта сущность будет отсоединена от других родительских узлов. |
| getParentNodes() | Получает все родительские узлы; сущность может быть присоединена к нескольким родительским узлам для инстанцирования геометрии. |
| getProperties() | Получает коллекцию всех свойств. |
| getProperty(String property) | Получить значение указанного свойства |
| getScene() | Получает сцену, к которой принадлежит этот объект |
| getShortIndices() | Преобразовать индексы в массив 16‑битных целых чисел |
| getUnmergedVerticesCount() | Количество неслитых вершин, переданных через beginVertex и endVertex. |
| getVertexDeclaration() | Расположение вершин TriMesh. |
| getVerticesCount() | Количество вершин в этом TriMesh |
| getVerticesSizeInBytes() | Общий размер всех вершин в байтах |
| hashCode() | |
| indicesToArray(int[][] result) | Преобразовать индексы в массив 32‑битных целых чисел |
| indicesToArray(short[][] result) | Преобразовать индексы в массив 16‑битных целых чисел |
| iterator() | Получить перечислитель для перебора Vertex |
| loadVerticesFromBytes(byte[] verticesInBytes) | Загрузить вершины из байтов, длина байтов должна быть целым кратным размеру вершины. |
| notify() | |
| notifyAll() | |
| readDouble(int idx, VertexField field) | Прочитать поле типа double |
| readFVector2(int idx, VertexField field) | Прочитать поле vector2 |
| readFVector3(int idx, VertexField field) | Прочитать поле vector3 |
| readFVector4(int idx, VertexField field) | Прочитать поле vector4 |
| readFloat(int idx, VertexField field) | Прочитать поле float |
| readVector2(int idx, VertexField field) | Прочитать поле vector2 |
| readVector3(int idx, VertexField field) | Прочитать поле vector3 |
| readVector4(int idx, VertexField field) | Прочитать поле vector4 |
| removeProperty(Property property) | Удаляет динамическое свойство. |
| removeProperty(String property) | Удалить указанное свойство, определяемое по имени |
| setExcluded(boolean value) | Устанавливает, следует ли исключать эту сущность при экспорте. |
| setName(String value) | Устанавливает имя. |
| setParentNode(Node value) | Устанавливает первый родительский узел; если установить первый родительский узел, эта сущность будет отсоединена от других родительских узлов. |
| setProperty(String property, Object value) | Устанавливает значение указанного свойства |
| toString() | Получает строковое представление TriMesh |
| verticesToArray() | Преобразовать данные вершин в массив байтов |
| wait() | |
| wait(long arg0) | |
| wait(long arg0, int arg1) | |
| write16bIndicesTo(Stream stream) | Записать данные индексов как 16‑битное целое в поток Example: |
| write16bIndicesTo(OutputStream stream) | Записать данные индексов как 16‑битное целое в поток |
| write32bIndicesTo(Stream stream) | Записать данные индексов как 32‑битное целое в поток Example: |
| write32bIndicesTo(OutputStream stream) | Записать данные индексов как 32‑битное целое в поток |
| writeVerticesTo(Stream stream) | Записать данные вершин в указанный поток |
| writeVerticesTo(OutputStream stream) | Записать данные вершин в указанный поток |
TriMesh(String name, VertexDeclaration declaration)
public TriMesh(String name, VertexDeclaration declaration)
Инициализировать экземпляр TriMesh
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| имя | java.lang.String | Имя этого TriMesh |
| declaration | VertexDeclaration | Объявление вершины |
addTriangle(int a, int b, int c)
public void addTriangle(int a, int b, int c)
Добавить новый треугольник
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| a | int | Индекс первой вершины |
| b | int | Индекс второй вершины |
| c | int | Индекс третьей вершины |
beginVertex()
public Vertex beginVertex()
Начать добавление вершины
Returns: Vertex - The reference of internal vertex object in type Vertex
copyFrom(TriMesh input, VertexDeclaration vd)
public static TriMesh copyFrom(TriMesh input, VertexDeclaration vd)
Скопировать TriMesh из входных данных с новым расположением вершин
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| input | TriMesh | Входной TriMesh для копирования |
| vd | VertexDeclaration | Новое объявление вершины выходного TriMesh |
Returns: TriMesh - A new TriMesh instance with new vertex declaration. Example:
//Define a vertex declaration as {FVector3 Position; FVector3 Normal; FVector2 UV}
VertexDeclaration vd = new VertexDeclaration();
vd.addField(VertexFieldDataType.F_VECTOR3, VertexFieldSemantic.POSITION);
vd.addField(VertexFieldDataType.F_VECTOR3, VertexFieldSemantic.NORMAL);
vd.addField(VertexFieldDataType.F_VECTOR2, VertexFieldSemantic.UV);
//convert a mesh to TriMesh, the layout is automatically inferred from input mesh
var oldTriMesh = TriMesh.fromMesh((new Sphere()).toMesh());
//now create a new TriMesh from old TriMesh, using explicit memory layout defined by vd
var newTriMesh = TriMesh.copyFrom(oldTriMesh, vd);
endVertex()
public int endVertex()
Завершить добавление вершины
Returns: int
equals(Object arg0)
public boolean equals(Object arg0)
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| arg0 | java.lang.Object |
Returns: boolean
findProperty(String propertyName)
public Property findProperty(String propertyName)
Находит свойство. Оно может быть динамическим свойством (созданным с помощью CreateDynamicProperty/SetProperty) или нативным свойством (определяемым по его имени)
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| propertyName | java.lang.String | Имя свойства. |
Returns: Property - The property.
fromMesh(Mesh mesh)
public static TriMesh fromMesh(Mesh mesh)
Создать TriMesh из заданного объектa сетки, объявление вершин основано на структуре входной сетки.
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| mesh | Mesh |
Returns: TriMesh - The TriMesh generated from given Mesh Example: The following code shows how to create a TriMesh with custom memory layout, and export it to file.
//Define a vertex declaration as {FVector3 Position; FVector3 Normal; FVector2 UV}
VertexDeclaration vd = new VertexDeclaration();
vd.addField(VertexFieldDataType.F_VECTOR3, VertexFieldSemantic.POSITION);
vd.addField(VertexFieldDataType.F_VECTOR3, VertexFieldSemantic.NORMAL);
vd.addField(VertexFieldDataType.F_VECTOR2, VertexFieldSemantic.UV);
//convert a mesh to tri-mesh using specified memory layout
var mesh = (new Sphere()).toMesh();
var triMesh = TriMesh.fromMesh(vd, mesh);
//save it to a stream, 115 vertices * 32bytes per vertex
try(var s = new FileOutputStream("output.bin")) {
triMesh.writeVerticesTo(s);
//save indices as ushort to stream, 504 indices * 2 bytes per index
triMesh.write16bIndicesTo(s);
}
fromMesh(Mesh mesh, boolean useFloat)
public static TriMesh fromMesh(Mesh mesh, boolean useFloat)
Создать TriMesh из заданного объектa сетки, объявление вершин основано на структуре входной сетки.
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| mesh | Mesh | |
| useFloat | boolean | Использовать тип float вместо double для каждого компонента элемента вершины. |
Returns: TriMesh - The TriMesh generated from given Mesh Example: The following code shows how to create a TriMesh with custom memory layout, and export it to file.
//Define a vertex declaration as {FVector3 Position; FVector3 Normal; FVector2 UV}
VertexDeclaration vd = new VertexDeclaration();
vd.addField(VertexFieldDataType.F_VECTOR3, VertexFieldSemantic.POSITION);
vd.addField(VertexFieldDataType.F_VECTOR3, VertexFieldSemantic.NORMAL);
vd.addField(VertexFieldDataType.F_VECTOR2, VertexFieldSemantic.UV);
//convert a mesh to tri-mesh using specified memory layout
var mesh = (new Sphere()).toMesh();
var triMesh = TriMesh.fromMesh(vd, mesh);
//save it to a stream, 115 vertices * 32bytes per vertex
try(var s = new FileOutputStream("output.bin")) {
triMesh.writeVerticesTo(s);
//save indices as ushort to stream, 504 indices * 2 bytes per index
triMesh.write16bIndicesTo(s);
}
fromMesh(VertexDeclaration declaration, Mesh mesh)
public static TriMesh fromMesh(VertexDeclaration declaration, Mesh mesh)
Создать TriMesh из заданного объектa сетки с указанным расположением вершин.
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| declaration | VertexDeclaration | Определение типа вершины, или расположение в памяти |
| mesh | Mesh | Исходный меш |
Returns: TriMesh - Instance of TriMesh converted from input mesh with specified vertex’s memory layout Example: The following code shows how to create a TriMesh with custom memory layout, and export it to file.
//Define a vertex declaration as {FVector3 Position; FVector3 Normal; FVector2 UV}
VertexDeclaration vd = new VertexDeclaration();
vd.addField(VertexFieldDataType.F_VECTOR3, VertexFieldSemantic.POSITION);
vd.addField(VertexFieldDataType.F_VECTOR3, VertexFieldSemantic.NORMAL);
vd.addField(VertexFieldDataType.F_VECTOR2, VertexFieldSemantic.UV);
//convert a mesh to tri-mesh using specified memory layout
var mesh = (new Sphere()).toMesh();
var triMesh = TriMesh.fromMesh(vd, mesh);
//save it to a stream, 115 vertices * 32bytes per vertex
try(var s = new FileOutputStream("output.bin")) {
triMesh.writeVerticesTo(s);
//save indices as ushort to stream, 504 indices * 2 bytes per index
triMesh.write16bIndicesTo(s);
}
fromRawData(VertexDeclaration vd, byte[] vertices, int[] indices, boolean generateVertexMapping)
public static TriMesh fromRawData(VertexDeclaration vd, byte[] vertices, int[] indices, boolean generateVertexMapping)
Создать TriMesh из необработанных данных
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| vd | VertexDeclaration | Объявление вершины должно содержать хотя бы одно поле. |
| vertices | byte[] | Входные данные вершин, минимальная длина вершин должна быть больше или равна размеру декларации вершин |
| индексы | int[] | Индексы треугольников |
| generateVertexMapping | boolean | Создайте Vertex для каждой вершины, что не требуется только для сериализации/десериализации. |
Returns: TriMesh - The TriMesh instance that encapsulated the input byte array. Remarks: The returned TriMesh will not copy the input byte array for performance, external changes on the array will be reflected to this instance. Example: The following code shows how to construct a TriMesh from raw bytes, this is useful when build your own 3D format
var indices = new int[] { 0, 1, 2 };
var vertices = new byte[]{
0, 0, 0, 191,
0, 0, 0, 0,
0, 0, 0, 191,
0, 0, 0, 191,
0, 0, 0, 0,
0, 0, 0, 63,
0, 0, 0, 63,
0, 0, 0, 0The string representation,
0, 0, 0, 63
};
VertexDeclaration vd = new VertexDeclaration();
vd.AddField(VertexFieldDataType.FVector3, VertexFieldSemantic.Position);
var triMesh = TriMesh.FromRawData(vd, vertices, indices, true);
getBoundingBox()
public BoundingBox getBoundingBox()
Получает ограничивающий прямоугольник текущего объекта в системе координат его объектного пространства.
Returns: BoundingBox - the bounding box of current entity in its object space coordinate system. Example: The following code shows how to calculate the bounding box of a shape
Entity entity = new Sphere();
entity.setRadius(10);
var bbox = entity.getBoundingBox();
System.out.printf("The bounding box of the entity is %s ~ %s", bbox.getMinimum(), bbox.getMaximum());
getCapacity()
public int getCapacity()
Ёмкость предварительно выделенных вершин.
Returns: int - Ёмкость предварительно выделенных вершин.
getClass()
public final native Class<?> getClass()
Returns: java.lang.Class
getEntityRendererKey()
public EntityRendererKey getEntityRendererKey()
Получает ключ рендерера сущности, зарегистрированного в рендерере.
Returns: EntityRendererKey - the key of the entity renderer registered in the renderer
getExcluded()
public boolean getExcluded()
Получает, следует ли исключать эту сущность при экспорте.
Returns: boolean — следует ли исключать эту сущность при экспорте.
getIndicesCount()
public int getIndicesCount()
Количество индексов в этом TriMesh
Returns: int - Количество индексов в этом TriMesh
getIntIndices()
public int[] getIntIndices()
Преобразовать индексы в массив 32‑битных целых чисел
Returns: int[]
getName()
public String getName()
Получает имя.
Returns: java.lang.String - имя.
getParentNode()
public Node getParentNode()
Получает первый родительский узел; если установить первый родительский узел, эта сущность будет отсоединена от других родительских узлов.
Returns: Node - the first parent node, if set the first parent node, this entity will be detached from other parent nodes.
getParentNodes()
public ArrayList<Node> getParentNodes()
Получает все родительские узлы; сущность может быть присоединена к нескольким родительским узлам для инстанцирования геометрии.
Returns: java.util.ArrayList<com.aspose.threed.Node> - все родительские узлы, объект может быть привязан к нескольким родительским узлам для инстанцирования геометрии
getProperties()
public PropertyCollection getProperties()
Получает коллекцию всех свойств.
Returns: PropertyCollection - the collection of all properties.
getProperty(String property)
public Object getProperty(String property)
Получить значение указанного свойства
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| свойство | java.lang.String | Имя свойства |
Returns: java.lang.Object - Значение найденного свойства
getScene()
public Scene getScene()
Получает сцену, к которой принадлежит этот объект
Returns: Scene - the scene that this object belongs to
getShortIndices()
public short[] getShortIndices()
Преобразовать индексы в массив 16‑битных целых чисел
Returns: short[]
getUnmergedVerticesCount()
public int getUnmergedVerticesCount()
Количество неслитых вершин, переданных через beginVertex и endVertex.
Returns: int - Количество неслитых вершин, переданных через beginVertex и endVertex.
getVertexDeclaration()
public VertexDeclaration getVertexDeclaration()
Расположение вершин TriMesh.
Returns: VertexDeclaration - The vertex layout of the TriMesh.
getVerticesCount()
public int getVerticesCount()
Количество вершин в этом TriMesh
Returns: int - Количество вершин в этом TriMesh
getVerticesSizeInBytes()
public int getVerticesSizeInBytes()
Общий размер всех вершин в байтах
Returns: int - Общий размер всех вершин в байтах
hashCode()
public native int hashCode()
Returns: int
indicesToArray(int[][] result)
public void indicesToArray(int[][] result)
Преобразовать индексы в массив 32‑битных целых чисел
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| результат | int[][] |
indicesToArray(short[][] result)
public void indicesToArray(short[][] result)
Преобразовать индексы в массив 16‑битных целых чисел
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| результат | short[][] |
iterator()
public Iterator<Vertex> iterator()
Получить перечислитель для перебора Vertex
Returns: java.util.Iterator<com.aspose.threed.Vertex>
loadVerticesFromBytes(byte[] verticesInBytes)
public void loadVerticesFromBytes(byte[] verticesInBytes)
Загрузите вершины из байтов, длина байтов должна быть целым кратным размеру вершины. Example: Следующий код показывает, как создать пустой TriMesh и вручную загрузить вершины из необработанных байтов.
var indices = new int[] { 0, 1, 2 };
var vertices = new byte[]{
0, 0, 0, 191,
0, 0, 0, 0,
0, 0, 0, 191,
0, 0, 0, 191,
0, 0, 0, 0,
0, 0, 0, 63,
0, 0, 0, 63,
0, 0, 0, 0,
0, 0, 0, 63
};
VertexDeclaration vd = new VertexDeclaration();
vd.AddField(VertexFieldDataType.FVector3, VertexFieldSemantic.Position);
//create an empty TriMesh with specified vertex declaration
var triMesh = new TriMesh("", vd);
//load vertices directly from bytes
triMesh.LoadVerticesFromBytes(vertices);
triMesh.AddTriangle(0, 1, 2);
int[] indices = new int[] { 0, 1, 2 };
byte[] vertices = new byte[]{
0, 0, 0, 191,
0, 0, 0, 0,
0, 0, 0, 191,
0, 0, 0, 191,
0, 0, 0, 0,
0, 0, 0, 63,
0, 0, 0, 63,
0, 0, 0, 0,
0, 0, 0, 63
};
VertexDeclaration vd = new VertexDeclaration();
vd.addField(VertexFieldDataType.F_VECTOR3, VertexFieldSemantic.POSITION);
//create an empty TriMesh with specified vertex declaration
var triMesh = new TriMesh("", vd);
//load vertices directly from bytes
triMesh.loadVerticesFromBytes(vertices);
triMesh.addTriangle(0, 1, 2);
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| verticesInBytes | byte[] |
notify()
public final native void notify()
notifyAll()
public final native void notifyAll()
readDouble(int idx, VertexField field)
public double readDouble(int idx, VertexField field)
Прочитать поле типа double
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| idx | int | Индекс вершины для чтения |
| field | VertexField | Поле с типом данных, совместимым с float/double |
Returns: double - Значение типа double указанного поля вершины
readFVector2(int idx, VertexField field)
public FVector2 readFVector2(int idx, VertexField field)
Прочитать поле vector2
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| idx | int | Индекс вершины для чтения |
| field | VertexField | Поле с типом данных Vector2/FVector2 |
Returns: FVector2 - FVector2 of specified vertex’s field
readFVector3(int idx, VertexField field)
public FVector3 readFVector3(int idx, VertexField field)
Прочитать поле vector3
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| idx | int | Индекс вершины для чтения |
| field | VertexField | Поле с типом данных Vector3/FVector3 |
Returns: FVector3
readFVector4(int idx, VertexField field)
public FVector4 readFVector4(int idx, VertexField field)
Прочитать поле vector4
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| idx | int | Индекс вершины для чтения |
| field | VertexField | Поле с типом данных Vector4/FVector4 |
Returns: FVector4
readFloat(int idx, VertexField field)
public float readFloat(int idx, VertexField field)
Прочитать поле float
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| idx | int | Индекс вершины для чтения |
| field | VertexField | Поле с типом данных, совместимым с float/double |
Returns: float - Значение типа float указанного поля вершины
readVector2(int idx, VertexField field)
public Vector2 readVector2(int idx, VertexField field)
Прочитать поле vector2
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| idx | int | Индекс вершины для чтения |
| field | VertexField | Поле с типом данных Vector2/FVector2 |
Returns: Vector2 - Vector2 of specified vertex’s field
readVector3(int idx, VertexField field)
public Vector3 readVector3(int idx, VertexField field)
Прочитать поле vector3
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| idx | int | Индекс вершины для чтения |
| field | VertexField | Поле с типом данных Vector3/FVector3 |
Returns: Vector3
readVector4(int idx, VertexField field)
public Vector4 readVector4(int idx, VertexField field)
Прочитать поле vector4
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| idx | int | Индекс вершины для чтения |
| field | VertexField | Поле с типом данных Vector4/FVector4 |
Returns: Vector4
removeProperty(Property property)
public boolean removeProperty(Property property)
Удаляет динамическое свойство.
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| property | Property | Какое свойство удалить |
Returns: boolean - true, если свойство успешно удалено
removeProperty(String property)
public boolean removeProperty(String property)
Удалить указанное свойство, определяемое по имени
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| свойство | java.lang.String | Какое свойство удалить |
Returns: boolean - true, если свойство успешно удалено
setExcluded(boolean value)
public void setExcluded(boolean value)
Устанавливает, следует ли исключать эту сущность при экспорте.
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| значение | boolean | Новое значение |
setName(String value)
public void setName(String value)
Устанавливает имя.
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| значение | java.lang.String | Новое значение |
setParentNode(Node value)
public void setParentNode(Node value)
Устанавливает первый родительский узел; если установить первый родительский узел, эта сущность будет отсоединена от других родительских узлов.
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| value | Node | Новое значение |
setProperty(String property, Object value)
public void setProperty(String property, Object value)
Устанавливает значение указанного свойства
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| свойство | java.lang.String | Имя свойства |
| значение | java.lang.Object | Значение свойства |
toString()
public String toString()
Получает строковое представление TriMesh
Returns: java.lang.String - Строковое представление
verticesToArray()
public byte[] verticesToArray()
Преобразовать данные вершин в массив байтов
Returns: byte[]
wait()
public final void wait()
wait(long arg0)
public final void wait(long arg0)
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| arg0 | long |
wait(long arg0, int arg1)
public final void wait(long arg0, int arg1)
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| arg0 | long | |
| arg1 | int |
write16bIndicesTo(Stream stream)
public void write16bIndicesTo(Stream stream)
Записать данные индексов как 16‑битное целое в поток Example:
//convert a mesh to TriMesh, the layout is automatically inferred from input mesh
var mesh = (new Sphere()).toMesh();
var triMesh = TriMesh.fromMesh(mesh);
//save it to a stream, 115 vertices * 32bytes per vertex
var stream = new ByteArrayOutputStream();
try(var s = Stream.wrap(stream)) {
triMesh.writeVerticesTo(s);
//save indices as ushort to stream, 504 indices * 2 bytes per index
triMesh.write16bIndicesTo(s);
}
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| stream | Stream |
write16bIndicesTo(OutputStream stream)
public void write16bIndicesTo(OutputStream stream)
Записать данные индексов как 16‑битное целое в поток
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| поток | java.io.OutputStream |
//convert a mesh to TriMesh, the layout is automatically inferred from input mesh
var mesh = (new Sphere()).toMesh();
var triMesh = TriMesh.fromMesh(mesh);
//save it to a stream, 115 vertices * 32bytes per vertex
var stream = new ByteArrayOutputStream();
triMesh.writeVerticesTo(stream);
//save indices as ushort to stream, 504 indices * 2 bytes per index
triMesh.write16bIndicesTo(stream);
``` |
### write32bIndicesTo(Stream stream) {#write32bIndicesTo-com.aspose.threed.Stream-}
public void write32bIndicesTo(Stream stream)
Записать данные индексов как 32‑битное целое в поток **Example:**
//convert a mesh to TriMesh, the layout is automatically inferred from input mesh var mesh = (new Sphere()).toMesh(); var triMesh = TriMesh.fromMesh(mesh); //save it to a stream, 115 vertices * 32bytes per vertex var stream = new ByteArrayOutputStream(); try(var s = Stream.wrap(stream)) { triMesh.writeVerticesTo(s); //save indices as ushort to stream, 504 indices * 2 bytes per index triMesh.write32bIndicesTo(s); }
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| stream | [Stream](../../com.aspose.threed/stream) | |
### write32bIndicesTo(OutputStream stream) {#write32bIndicesTo-java.io.OutputStream-}
public void write32bIndicesTo(OutputStream stream)
Записать данные индексов как 32‑битное целое в поток
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| | поток | java.io.OutputStream | **Пример:** |
//convert a mesh to TriMesh, the layout is automatically inferred from input mesh
var mesh = (new Sphere()).toMesh();
var triMesh = TriMesh.fromMesh(mesh);
//save it to a stream, 115 vertices * 32bytes per vertex
var stream = new ByteArrayOutputStream();
triMesh.writeVerticesTo(stream);
//save indices as ushort to stream, 504 indices * 2 bytes per index
triMesh.write32bIndicesTo(stream);
### writeVerticesTo(Stream stream) {#writeVerticesTo-com.aspose.threed.Stream-}
public void writeVerticesTo(Stream stream)
Записать данные вершин в указанный поток
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| | stream | [Stream](../../com.aspose.threed/stream) | Поток, в который будут записаны данные вершин **Пример:** |
//convert a mesh to TriMesh, the layout is automatically inferred from input mesh var mesh = (new Sphere()).toMesh(); var triMesh = TriMesh.fromMesh(mesh); //save it to a stream, 115 vertices * 32bytes per vertex var stream = new ByteArrayOutputStream(); try(var s = Stream.wrap(stream)) { triMesh.writeVerticesTo(s); //save indices as ushort to stream, 504 indices * 2 bytes per index triMesh.write16bIndicesTo(s); }
### writeVerticesTo(OutputStream stream) {#writeVerticesTo-java.io.OutputStream-}
public void writeVerticesTo(OutputStream stream)
Записать данные вершин в указанный поток
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| | поток | java.io.OutputStream | Поток, в который будут записаны данные вершин **Пример:** |
//convert a mesh to TriMesh, the layout is automatically inferred from input mesh
var mesh = (new Sphere()).toMesh();
var triMesh = TriMesh.fromMesh(mesh);
//save it to a stream, 115 vertices * 32bytes per vertex
var stream = new ByteArrayOutputStream();
triMesh.writeVerticesTo(stream);
//save indices as ushort to stream, 504 indices * 2 bytes per index
triMesh.write16bIndicesTo(stream);