ArMesh
Represents a polygon mesh describing geometry.
Obtained by ArStreetscapeGeometry_acquireMesh
.
Summary
Typedefs
struct ArMesh_
Functions
ArMesh_getIndexList
(const ArSession
*session, const ArMesh
*mesh, const uint32_t **out_indices)
void
ArMesh_getIndexListSize
(const ArSession
*session, const ArMesh
*mesh, int32_t *out_num_indices)
void
ArMesh_getVertexList
(const ArSession
*session, const ArMesh
*mesh, const float **out_vertex_positions_xyz)
void
ArMesh_getVertexListSize
(const ArSession
*session, const ArMesh
*mesh, int32_t *out_num_vertices)
void
ArMesh_release
( ArMesh
*mesh)
void
Typedefs
ArMesh
struct ArMesh_ ArMesh
A triangulated mesh representing a surface reconstruction of the scene.
( reference type, large data ).
- Release with:
ArMesh_release
Functions
ArMesh_getIndexList
void ArMesh_getIndexList ( const ArSession * session , const ArMesh * mesh , const uint32_t ** out_indices )
Retrieves the triangle data for this mesh in an array of length ArMesh_getIndexListSize
.
Each face is a triplet of indices into the vertices array. The indices should always be used as a triangle list, with three indices per triangle. The result can be passed as the "indices" parameter to glDrawElements
or copied into a buffer bound via vkCmdBindIndexBuffer
.
session
|
The ARCore session.
|
mesh
|
The mesh object to query.
|
out_indices
|
Where to store the concatenated indices of mesh vertices that correspond to each face. This length is
out_num_indices
from ArMesh_getIndexListSize()
. |
ArMesh_getIndexListSize
void ArMesh_getIndexListSize ( const ArSession * session , const ArMesh * mesh , int32_t * out_num_indices )
Retrieves the number of triangle indices (represented by ArMesh_getIndexList
) in this mesh.
The indices should always be used as a triangle list, with three indices per triangle. The result can be passed as the indices
parameter to glDrawElements
or copied into a buffer bound via vkCmdDrawIndexed
.
session
|
The ARCore session.
|
mesh
|
The mesh object to query.
|
out_num_indices
|
The number of indices in this mesh. This will always be a multiple of 3.
|
ArMesh_getVertexList
void ArMesh_getVertexList ( const ArSession * session , const ArMesh * mesh , const float ** out_vertex_positions_xyz )
Retrieves the vertex coordinate data for this mesh.
Each vertex is three float
values, stored in XYZ order. The total number of float
values in out_vertex_positions_xyz
is 3 * ArMesh_getVertexListSize
.
The array returned in out_vertex_positions_xyz
will only remain valid as long as mesh
is valid.
session
|
The ARCore session.
|
mesh
|
The mesh object to query.
|
out_vertex_positions_xyz
|
Where to store the vertex positions positions.
|
ArMesh_getVertexListSize
void ArMesh_getVertexListSize ( const ArSession * session , const ArMesh * mesh , int32_t * out_num_vertices )
Retrieves the number of vertices in this mesh.
session
|
The ARCore session.
|
mesh
|
The mesh object to query.
|
out_num_vertices
|
The number of vertices in this mesh.
|
ArMesh_release
void ArMesh_release( ArMesh *mesh )
Releases a reference to the Mesh.
This must match a call to ArStreetscapeGeometry_acquireMesh
.
This function may safely be called with NULL
- it will do nothing.