package org.goko.tools.viewer.jogl.utils.render.coordinate;
import javax.media.opengl.GL3;
import javax.vecmath.Color3f;
import javax.vecmath.Color4f;
import javax.vecmath.Point3d;
import javax.vecmath.Vector3d;
import org.goko.core.common.exception.GkException;
import org.goko.tools.viewer.jogl.preferences.JoglViewerPreference;
import org.goko.tools.viewer.jogl.preferences.JoglViewerPreference.EnumRotaryAxisDirection;
import org.goko.tools.viewer.jogl.service.AbstractCoreJoglMultipleRenderer;
import org.goko.tools.viewer.jogl.utils.render.coordinate.measurement.ArrowRenderer;
import org.goko.tools.viewer.jogl.utils.render.text.v2.TextRenderer;
public class FourAxisOriginRenderer extends AbstractCoreJoglMultipleRenderer {
private FourAxisRenderer axisRenderer;
public FourAxisOriginRenderer(boolean displayRotaryAxis) {
super();
TextRenderer xTextRenderer = new TextRenderer("X",2, new Point3d(10.2,0.45,0), TextRenderer.MIDDLE | TextRenderer.LEFT);
xTextRenderer.setColor(1,0,0,1);
addRenderer(new ArrowRenderer(new Point3d(10,0,0.01), new Vector3d(1,0,0), new Vector3d(0,1,0), new Color4f(1,0,0,1)));
TextRenderer yTextRenderer = new TextRenderer("Y",2, new Point3d(-0.475,10.2,0), TextRenderer.BOTTOM | TextRenderer.LEFT);
yTextRenderer.setColor(0,1,0,1);
addRenderer(new ArrowRenderer(new Point3d(0,10,0.01), new Vector3d(0,1,0), new Vector3d(1,0,0), new Color4f(0,1,0,1)));
TextRenderer zTextRenderer = new TextRenderer("Z",2, new Point3d(-0.4,0,10.2), new Vector3d(1,0,0), new Vector3d(0,0,1), TextRenderer.BOTTOM | TextRenderer.LEFT);
addRenderer(new ArrowRenderer(new Point3d(0,0,10), new Vector3d(0,0,1), new Vector3d(1,0,0), new Color4f(0,0,1,1)));
zTextRenderer.setColor(0,0,1,1);
addRenderer(xTextRenderer);
addRenderer(yTextRenderer);
addRenderer(zTextRenderer);
axisRenderer = new FourAxisRenderer(10, JoglViewerPreference.getInstance().getRotaryAxisDirection(), new Color3f(1,0,0), new Color3f(0,1,0), new Color3f(0,0,1), new Color3f(1,1,0));
axisRenderer.setDisplayRotaryAxis(displayRotaryAxis);
addRenderer(axisRenderer);
}
/** (inheritDoc)
* @see org.goko.tools.viewer.jogl.service.AbstractCoreJoglRenderer#performInitialize(javax.media.opengl.GL3)
*/
@Override
protected void performInitialize(GL3 gl) throws GkException {
// TODO Auto-generated method stub
}
/**
* @return the rotationAxis
*/
protected EnumRotaryAxisDirection getRotationAxis() {
return axisRenderer.getRotationAxis();
}
/**
* @param rotationAxis the rotationAxis to set
* @throws GkException GkException
*/
public void setRotationAxis(EnumRotaryAxisDirection rotationAxis) throws GkException {
axisRenderer.setRotationAxis(rotationAxis);
axisRenderer.updateGeometry();
}
/**
* @return the displayRotaryAxis
*/
public boolean isDisplayRotaryAxis() {
return axisRenderer.isDisplayRotaryAxis();
}
/**
* @param displayRotaryAxis the displayRotaryAxis to set
*/
public void setDisplayRotaryAxis(boolean displayRotaryAxis) {
axisRenderer.setDisplayRotaryAxis(displayRotaryAxis);
}
}