package org.wheelmap.android.tango.renderer.objects;
import org.rajawali3d.Object3D;
import org.rajawali3d.materials.Material;
import org.rajawali3d.math.vector.Vector3;
import java.util.Stack;
import rx.Completable;
public class Polygon3D extends Object3D {
private Stack<Vector3> points;
private int color;
public Polygon3D(Stack<Vector3> points, int color) {
super();
this.points = points;
this.color = color;
init();
}
private void init() {
isContainer(true);
if (points.size() < 3) {
throw new IllegalStateException("points must have at least 3 elements");
}
Vector3 first = points.get(0);
for (int i = 1, pointsSize = points.size(); i < pointsSize - 1; i++) {
Stack<Vector3> stack = new Stack<>();
stack.add(first);
stack.add(points.get(i));
stack.add(points.get(i + 1));
addChild(new Triangle(stack, color));
}
}
@Override
public void setMaterial(Material material) {
super.setMaterial(material);
for (int i = 0; i < getNumChildren(); i++) {
getChildAt(i).setMaterial(material);
}
}
@Override
public void setColor(int color) {
super.setColor(color);
for (int i = 0; i < getNumChildren(); i++) {
getChildAt(i).setColor(color);
}
}
@Override
public void setAlpha(int alpha) {
super.setAlpha(alpha);
for (int i = 0; i < getNumChildren(); i++) {
getChildAt(i).setAlpha(alpha);
}
}
@Override
public void setTransparent(boolean value) {
super.setTransparent(value);
for (int i = 0; i < getNumChildren(); i++) {
getChildAt(i).setTransparent(value);
}
}
}