### Question:
AbstractGeographicProjection extends AbstractProjection { @Override public List<Vector3d> convertLinesToModel(List<? extends GeographicPosition> positions, int limit, LineType type, Vector3d modelCenter) { Utilities.checkNull(modelCenter, MODEL_CENTER_PARAMETER_NAME); List<Vector3d> positionList = New.list(); int vertexCount = positions.size(); Pair<Tessera<GeographicPosition>, ProjectionCursor> tessera = null; Vector3d previousModelPosition = null; for (int i = 1; i < limit; ++i) { int lineEndIndex = i % vertexCount; GeographicPosition lineEnd = positions.get(lineEndIndex); if (tessera == null) { tessera = convertLineToModel(positions.get(0), lineEnd, type, modelCenter); } else { tessera = convertLineToModel(tessera.getSecondObject(), lineEnd, type, modelCenter); } if (tessera.getFirstObject() != null) { List<? extends TesseraVertex<GeographicPosition>> modelVertices = tessera.getFirstObject().getTesseraVertices(); int modelVertexCount = modelVertices.size(); if (modelVertexCount > 0) { if (i == 1) { Vector3d modelPos = ((GeographicTesseraVertex)modelVertices.get(0)).getModelCoordinates(); if (previousModelPosition == null || !modelPos.equals(previousModelPosition)) { positionList.add(modelPos); previousModelPosition = modelPos; } } for (int j = 1; j < modelVertexCount; j++) { Vector3d modelPos = ((GeographicTesseraVertex)modelVertices.get(j)).getModelCoordinates(); if (previousModelPosition == null || !modelPos.equals(previousModelPosition)) { positionList.add(modelPos); previousModelPosition = modelPos; } } } } } return positionList; }  @Override List<Vector3d> convertLinesToModel(List<? extends GeographicPosition> positions, int limit, LineType type,
            Vector3d modelCenter); @Override Pair<Tessera<GeographicPosition>, ProjectionCursor> convertLineToModel(GeographicPosition start,
            GeographicPosition end, LineType type, Vector3d modelCenter); @Override Pair<Tessera<GeographicPosition>, ProjectionCursor> convertLineToModel(ProjectionCursor start, GeographicPosition end,
            LineType type, Vector3d modelCenter); @Override TesseraList<? extends GeographicProjectedTesseraVertex> convertPolygonToModelMesh(Polygon polygon,
            Vector3d modelCenter); @Override Collection<Vector3d> convertPositionsToModel(Collection<? extends GeographicPosition> positions, Vector3d modelCenter); @Override TesseraList<? extends GeographicProjectedTesseraVertex> convertQuadToModel(GeographicPosition vert1,
            GeographicPosition vert2, GeographicPosition vert3, GeographicPosition vert4, Vector3d modelCenter); @Override TesseraList<? extends GeographicProjectedTesseraVertex> convertTriangleToModel(GeographicPosition vert1,
            GeographicPosition vert2, GeographicPosition vert3, Vector3d modelCenter); @Override Ellipsoid getBoundingEllipsoid(BoundingBox<GeographicPosition> bbox, Vector3d modelCenter, boolean forceGenerate); @Override Sphere getBoundingSphere(BoundingBox<GeographicPosition> bbox, Vector3d modelCenter, boolean forceGenerate); @Override double getMinimumTerrainDistance(Viewer view); @Override double getModelHeight(); @Override double getModelWidth(); @Override void resetProjection(boolean highAccuracy);  }### Answer:
@Test @Ignore public void testConvertLinesToModel() { fail(NOT_YET_IMPLEMENTED); }