package org.mt4j.components.visibleComponents.widgets.menus;
import org.mt4j.MTApplication;
import org.mt4j.components.visibleComponents.widgets.MTOverlayContainer;
import org.mt4j.util.math.Vector3D;
import processing.core.PGraphics;
public class MTCircularMenu extends MTOverlayContainer {
MTCircularItem menuItems[];
MTGLButton mainItem;
public MTCircularMenu(MTApplication app, String name, MTCircularItem items[]) {
super(app, name);
// TODO Auto-generated constructor stub
menuItems = items;
setupChildren();
positionChildren(360);
/*
mainItem = new MTCircularGLItem(app, menuItems);
mainItem.setShape(0f, 0.3f, 360);
mainItem.positionChildren(0.09f,360);
mainItem.setSizeXYRelativeToParent(100, 100);
this.addChild(mainItem);
for (MTCircularGLItem m : menuItems) {
m.setSizeXYRelativeToParent(1.5f, 1.5f);
}
*/
}
public void setupChildren() {
for (MTGLButton m : menuItems) {
this.addChild(m);
m.setSizeXYRelativeToParent(200f, 200f);
}
}
/**
* Position children in various places about the space. Its a bit of a hack right now.
* @param distanceFromCenter
* @param totalArc
*/
public void positionChildren(float totalArc) {
if (menuItems != null) {
float arc = totalArc/menuItems.length;
for (int i = 0; i < menuItems.length; i++) {
MTCircularItem item = menuItems[i];
this.addChild(item);
item.rotateZ(Vector3D.ZERO_VECTOR, arc * i);
item.setArc(arc);
item.setSelected(false);
}
}
}
}