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
declarationVertexDeclarationОбъявление вершины

addTriangle(int a, int b, int c)

public void addTriangle(int a, int b, int c)

Добавить новый треугольник

Parameters:

ПараметрТипОписание
aintИндекс первой вершины
bintИндекс второй вершины
cintИндекс третьей вершины

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:

ПараметрТипОписание
inputTriMeshВходной TriMesh для копирования
vdVertexDeclarationНовое объявление вершины выходного 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:

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

Returns: boolean

findProperty(String propertyName)

public Property findProperty(String propertyName)

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

Parameters:

ПараметрТипОписание
propertyNamejava.lang.StringИмя свойства.

Returns: Property - The property.

fromMesh(Mesh mesh)

public static TriMesh fromMesh(Mesh mesh)

Создать TriMesh из заданного объектa сетки, объявление вершин основано на структуре входной сетки.

Parameters:

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

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:

ПараметрТипОписание
meshMesh
useFloatbooleanИспользовать тип 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:

ПараметрТипОписание
declarationVertexDeclarationОпределение типа вершины, или расположение в памяти
meshMeshИсходный меш

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:

ПараметрТипОписание
vdVertexDeclarationОбъявление вершины должно содержать хотя бы одно поле.
verticesbyte[]Входные данные вершин, минимальная длина вершин должна быть больше или равна размеру декларации вершин
индексыint[]Индексы треугольников
generateVertexMappingbooleanСоздайте 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:

ПараметрТипОписание
verticesInBytesbyte[]

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:

ПараметрТипОписание
idxintИндекс вершины для чтения
fieldVertexFieldПоле с типом данных, совместимым с float/double

Returns: double - Значение типа double указанного поля вершины

readFVector2(int idx, VertexField field)

public FVector2 readFVector2(int idx, VertexField field)

Прочитать поле vector2

Parameters:

ПараметрТипОписание
idxintИндекс вершины для чтения
fieldVertexFieldПоле с типом данных Vector2/FVector2

Returns: FVector2 - FVector2 of specified vertex’s field

readFVector3(int idx, VertexField field)

public FVector3 readFVector3(int idx, VertexField field)

Прочитать поле vector3

Parameters:

ПараметрТипОписание
idxintИндекс вершины для чтения
fieldVertexFieldПоле с типом данных Vector3/FVector3

Returns: FVector3

readFVector4(int idx, VertexField field)

public FVector4 readFVector4(int idx, VertexField field)

Прочитать поле vector4

Parameters:

ПараметрТипОписание
idxintИндекс вершины для чтения
fieldVertexFieldПоле с типом данных Vector4/FVector4

Returns: FVector4

readFloat(int idx, VertexField field)

public float readFloat(int idx, VertexField field)

Прочитать поле float

Parameters:

ПараметрТипОписание
idxintИндекс вершины для чтения
fieldVertexFieldПоле с типом данных, совместимым с float/double

Returns: float - Значение типа float указанного поля вершины

readVector2(int idx, VertexField field)

public Vector2 readVector2(int idx, VertexField field)

Прочитать поле vector2

Parameters:

ПараметрТипОписание
idxintИндекс вершины для чтения
fieldVertexFieldПоле с типом данных Vector2/FVector2

Returns: Vector2 - Vector2 of specified vertex’s field

readVector3(int idx, VertexField field)

public Vector3 readVector3(int idx, VertexField field)

Прочитать поле vector3

Parameters:

ПараметрТипОписание
idxintИндекс вершины для чтения
fieldVertexFieldПоле с типом данных Vector3/FVector3

Returns: Vector3

readVector4(int idx, VertexField field)

public Vector4 readVector4(int idx, VertexField field)

Прочитать поле vector4

Parameters:

ПараметрТипОписание
idxintИндекс вершины для чтения
fieldVertexFieldПоле с типом данных Vector4/FVector4

Returns: Vector4

removeProperty(Property property)

public boolean removeProperty(Property property)

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

Parameters:

ПараметрТипОписание
propertyPropertyКакое свойство удалить

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:

ПараметрТипОписание
valueNodeНовое значение

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:

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

wait(long arg0, int arg1)

public final void wait(long arg0, int arg1)

Parameters:

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

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:

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

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);