package away3dPlus.objects
{
import away3d.core.proto.Object3D;
import away3d.core.material.ISegmentMaterial;
import away3d.core.Init;
import away3d.core.material.WireframeMaterial;
import away3d.core.geom.Vertex3D;
import away3d.core.proto.ObjectContainer3D;
public class Axes extends ObjectContainer3D
{
private var unit:Number;
private var guage:int;
private var _xUnits:Number;
private var _yUnits:Number;
private var _zUnits:Number;
private var xRGB:int;
private var yRGB:int;
private var zRGB:int;
private var wireAlpha:Number;
public var xAxis:WireCurve;
public var xAxisMaterial:ISegmentMaterial;
public var yAxis:WireCurve;
public var yAxisMaterial:ISegmentMaterial;
public var zAxis:WireCurve;
public var zAxisMaterial:ISegmentMaterial;
function Axes(init:Object = null) {
super(init);
init = Init.parse(init);
unit = init.getNumber("unit", 100);
guage = init.getNumber("guage", 3);
_xUnits = init.getNumber("xUnits", 5);
_yUnits = init.getNumber("yUnits", 5);
_zUnits = init.getNumber("zUnits", 5);
xRGB = init.getNumber("xRGB", 0xff0000);
yRGB = init.getNumber("yRGB", 0x0000ff); zRGB = init.getNumber("zRGB", 0x00ff00);
wireAlpha = init.getNumber("alpha", 1.0);
xAxisMaterial = new WireframeMaterial(xRGB, wireAlpha, guage);
xAxis = new WireCurve(xAxisMaterial);
xAxis.addVertex3D(new Vertex3D());
xAxis.addVertex3D(new Vertex3D(xUnits*unit, 0, 0));
addChild(xAxis);
yAxisMaterial = new WireframeMaterial(yRGB, wireAlpha, guage);
yAxis = new WireCurve(yAxisMaterial);
yAxis.addVertex3D(new Vertex3D());
yAxis.addVertex3D(new Vertex3D(0, yUnits*unit, 0));
addChild(yAxis);
zAxisMaterial = new WireframeMaterial(zRGB, wireAlpha, guage);
zAxis = new WireCurve(zAxisMaterial);
zAxis.addVertex3D(new Vertex3D());
zAxis.addVertex3D(new Vertex3D(0, 0, zUnits*unit));
addChild(zAxis);
}
public function get xUnits():Number {
return _xUnits;
}
public function set xUnits(u:Number):void {
_xUnits = u;
xAxis.vertex(1).x = xUnits*unit;
}
public function get yUnits():Number {
return _yUnits;
}
public function set yUnits(u:Number):void {
_yUnits = u;
yAxis.vertex(1).y = yUnits*unit;
}
public function get zUnits():Number {
return _zUnits;
}
public function set zUnits(u:Number):void {
_zUnits = u;
zAxis.vertex(1).z = zUnits*unit;
}
}
}