public void internalProcessAllTriangles(
      InternalTriangleIndexCallback callback, Vector3f aabbMin, Vector3f aabbMax) {
    int graphicssubparts = getNumSubParts();
    Vector3f[] triangle /*[3]*/ =
        new Vector3f[] {
          Stack.alloc(Vector3f.class), Stack.alloc(Vector3f.class), Stack.alloc(Vector3f.class)
        };

    Vector3f meshScaling = getScaling(Stack.alloc(Vector3f.class));

    for (int part = 0; part < graphicssubparts; part++) {
      VertexData data = getLockedReadOnlyVertexIndexBase(part);

      for (int i = 0, cnt = data.getIndexCount() / 3; i < cnt; i++) {
        data.getTriangle(i * 3, meshScaling, triangle);
        callback.internalProcessTriangleIndex(triangle, part, i);
      }

      unLockReadOnlyVertexBase(part);
    }
  }