/*
* Copyright (c) 2012. HappyDroids LLC, All rights reserved.
*/
package com.happydroids.droidtowers.graphics;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import com.badlogic.gdx.math.Vector2;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
import java.util.List;
import static com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType;
public class TransitLine {
private List<Vector2> points;
private Color color = Color.RED;
private int highlightPoint;
private boolean visible;
public TransitLine() {
points = Lists.newArrayList();
}
public void addPoint(Vector2 point) {
points.add(point);
}
public void render(ShapeRenderer shapeRenderer) {
if (!visible || points.size() < 2) {
return;
}
shapeRenderer.begin(ShapeType.Line);
shapeRenderer.setColor(color);
Vector2 prevGridPoint = points.get(0);
for (int i = 1; i < points.size(); i++) {
Vector2 point = points.get(i);
shapeRenderer.line(prevGridPoint.x, prevGridPoint.y, point.x, point.y);
prevGridPoint = point;
}
shapeRenderer.end();
shapeRenderer.begin(ShapeType.Filled);
for (Vector2 point : points) {
shapeRenderer.setColor(color);
shapeRenderer.circle(point.x, point.y, points.indexOf(point) == highlightPoint ? 8f : 5f);
}
shapeRenderer.end();
}
public ImmutableList<Vector2> getPoints() {
return ImmutableList.copyOf(points);
}
public void setColor(Color color) {
this.color = color;
}
public void addPoint(float x, float y) {
points.add(new Vector2(x, y));
}
public void addPoints(List<Vector2> points) {
this.points.addAll(points);
}
public void clear() {
points.clear();
}
public void highlightPoint(int highlightPoint) {
this.highlightPoint = highlightPoint;
}
public void setVisible(boolean visible) {
this.visible = visible;
}
}