MaxstARSDK  3.5.0
All Classes Functions Variables
SurfaceMesh.java
1 /*
2  * Copyright 2017 Maxst, Inc. All Rights Reserved.
3  */
4 package com.maxst.ar;
5 
9 public class SurfaceMesh {
10 
11  private static final int MAX_VERTICES = 1000;
12  private static final int MAX_INDICES = 20000;
13 
14  private long cMemPtr;
15  private int vertexCount;
16  private int indexCount;
17  private static float [] vertexBuffer = null;
18  private static short [] indexBuffer = null;
19 
20  SurfaceMesh() { }
21 
22  void updateSurfaceMesh() {
23  this.cMemPtr = MaxstARJNI.TrackerManager_getSurfaceMesh();
24  if (vertexBuffer == null) {
25  vertexBuffer = new float[MAX_VERTICES * 3];
26  }
27 
28  if (indexBuffer == null) {
29  indexBuffer = new short[MAX_INDICES];
30  }
31 
32  vertexCount = MaxstARJNI.SurfaceMesh_getVertexCount(cMemPtr);
33  indexCount = MaxstARJNI.SurfaceMesh_getIndexCount(cMemPtr);
34  MaxstARJNI.SurfaceMesh_getVertexBuffer(cMemPtr, vertexBuffer, vertexCount * 3);
35  MaxstARJNI.SurfaceMesh_getIndexBuffer(cMemPtr, indexBuffer, indexCount);
36  }
37 
41  public int getVertexCount() {
42  return vertexCount;
43  }
44 
48  public int getIndexCount() {
49  return indexCount;
50  }
51 
55  public float [] getVertexBuffer() {
56  return vertexBuffer;
57  }
58 
62  public short [] getIndexBuffer() {
63  return indexBuffer;
64  }
65 }