public static Model concatenate(Model... models) {

		int newSize = 0;
		for (Model model : models) newSize += model.elementCapacity;

		Model newModel = new Model(newSize);

		for (Model model : models) {

			model.rewindBuffers();

			// copy over other data
			for (int i = 0; i < model.elementCapacity * VERTEX_STRIDE; i++)
				newModel.vertices.put(model.vertices.get());
			for (int i = 0; i < model.elementCapacity * NORMAL_STRIDE; i++)
				newModel.normals.put(model.normals.get());
			for (int i = 0; i < model.elementCapacity * TEXTURE_STRIDE; i++)
				newModel.texCoords.put(model.texCoords.get());
		}

		return newModel;
	}