//==========================================================
// 渲染立方体。
//
// 20─21 22─23
// ╱│ ╱│
// 16 24 17 25
//
// 26 27
// │ │
// 28─29 30─31 (D面)
// ╱ ╱
// 18 19 (C面)
// 12 13
// ╱ ╱
// 00─01 02─03
// │ │
// 04 05
//
// 06 14 07 15 (B面) Y Z
// │╱ │╱ | ╱
// 08─09 10─11 (A面) o ─> X
//
// @class
// @author maocy
// @history 150207
//==========================================================
export class BoundGeometry{
// o = MO.Class.inherits(this, o, MO.FE3dRenderable);
// //..........................................................
// // @attribute
// o._outline = MO.Class.register(o, new MO.AGetter('_outline'));
// o._rate = 0.2;
// // @attribute
// o._vertexPositionBuffer = null;
// o._vertexColorBuffer = null;
// //..........................................................
// // @method
// o.construct = MO.FE3dBoundBox_construct;
// // @method
// o.setup = MO.FE3dBoundBox_setup;
// o.upload = MO.FE3dBoundBox_upload;
// return o;
// }
// //==========================================================
// // 构造处理。
// //
// // @method
// //==========================================================
// MO.FE3dBoundBox_construct = function FE3dBoundBox_construct(){
// var o = this;
// o.__base.FE3dRenderable.construct.call(o);
// // 设置属性
// o._material = MO.Class.create(MO.FE3dMaterial);
// o._outline = new MO.SOutline3();
// }
// //==========================================================
// // 配置处理。
// //
// // @method
// //==========================================================
// MO.FE3dBoundBox_setup = function FE3dBoundBox_setup(){
// var o = this;
// var c = o._graphicContext;
// // 创建顶点缓冲
// var buffer = o._vertexPositionBuffer = c.createVertexBuffer();
// buffer.setCode('position');
// buffer.setFormatCd(MO.EG3dAttributeFormat.Float3);
// o.pushVertexBuffer(buffer);
// // 创建颜色缓冲
// var vertexData = new Uint8Array(4 * 32);
// for(var n = 4 * 32 - 1; n >= 0; n--){
// vertexData[n] = 0xFF;
// }
// var buffer = o._vertexColorBuffer = c.createVertexBuffer();
// buffer.setCode('color');
// buffer.setFormatCd(MO.EG3dAttributeFormat.Byte4Normal);
// buffer.upload(vertexData, 1 * 4, 32);
// o.pushVertexBuffer(buffer);
// o._vertexCount = 32;
// //..........................................................
// // 创建索引缓冲
// var indexData = [
// 0, 1, 0, 4, 0, 12,
// 3, 2, 3, 5, 3, 13,
// 8, 6, 8, 9, 8, 14,
// 11, 7, 11, 10, 11, 15,
// 20, 16, 20, 21, 20, 24,
// 23, 17, 23, 22, 23, 25,
// 28, 18, 28, 26, 28, 29,
// 31, 19, 31, 27, 31, 30 ];
// var buffer = o._indexBuffer = c.createIndexBuffer();
// buffer.setDrawModeCd(MO.EG3dDrawMode.Lines);
// buffer.setLineWidth(1);
// buffer.upload(indexData, 48);
// o.pushIndexBuffer(buffer);
// //..........................................................
// // 更新处理
// o.update();
// //..........................................................
// // 设置材质
// var info = o.material().info();
// info.effectCode = 'control';
// info.ambientColor.set(1, 1, 1, 1);
// }
// //==========================================================
// // 上传处理。
// //
// // @method
// //==========================================================
// MO.FE3dBoundBox_upload = function FE3dBoundBox_upload(){
// var o = this;
// // 设置变量
// var l = o._outline;
// var a = l.max;
// var ax = a.x;
// var ay = a.y;
// var az = a.z;
// var i = l.min;
// var ix = i.x;
// var iy = i.y;
// var iz = i.z;
// var r = o._rate;
// var cx = (ax - ix) * r;
// var cy = (ay - iy) * r;
// var cz = (az - iz) * r;
// // 设置顶点数据
// var data = [
// // A面12个点
// ix, ay, iz,
// ix + cx, ay, iz,
// ax - cx, ay, iz,
// ax, ay, iz,
// ix, ay - cy, iz,
// ax, ay - cy, iz,
// ix, iy + cy, iz,
// ax, iy + cy, iz,
// ix, iy, iz,
// ix + cx, iy, iz,
// ax - cx, iy, iz,
// ax, iy, iz,
// // B面4个点
// ix, ay, iz + cz,
// ax, ay, iz + cz,
// ix, iy, iz + cz,
// ax, iy, iz + cz,
// // C面4个点
// ix, ay, az - cz,
// ax, ay, az - cz,
// ix, iy, az - cz,
// ax, iy, az - cz,
// // D面12个点
// ix, ay, az,
// ix + cx, ay, az,
// ax - cx, ay, az,
// ax, ay, az,
// ix, ay - cy, az,
// ax, ay - cy, az,
// ix, iy + cy, az,
// ax, iy + cy, az,
// ix, iy, az,
// ix + cx, iy, az,
// ax - cx, iy, az,
// ax, iy, az];
// // 更新数据
// o._vertexPositionBuffer.upload(data, 4 * 3, 32);
// }
}