function drawFace( me, face, primary, secondary, planeIdx, line1, line2, drawMinFace, cond2, cond3 ) { // if this face is visible, draw it if( ( me.Min[primary] < me.Max[primary] ) && ( me.Min[secondary] < me.Max[secondary] ) ) { var world3D = new Vector( 0,0,0 ); world3D[face] = drawMinFace ? me.Min[face] : me.Max[face]; world3D[primary] = me.Min[primary]; world3D[secondary] = me.Min[secondary]; var screen2D = me.Parent.ScreenPos( world3D ); // calculate and construct Bbox rectangle path ss = "M " + screen2D.x + " " + screen2D.y + " "; // move to corner 1 world3D[primary] = me.Max[primary]; screen2D = me.Parent.ScreenPos( world3D ); ss += "L " + screen2D.x + " " + screen2D.y + " "; // line to corner 2 world3D[secondary] = me.Max[secondary]; screen2D = me.Parent.ScreenPos( world3D ); ss += "L " + screen2D.x + " " + screen2D.y + " "; // line to corner 3 world3D[primary] = me.Min[primary]; screen2D = me.Parent.ScreenPos( world3D ); ss += "L " + screen2D.x + " " + screen2D.y + " z"; // line to corner 4 and close back to corner 1 me.Plane[planeIdx].setAttribute( "d", ss ); // [d]efine the path for this panes Bbox world3D[face] = 1; world3D[primary] = 0; world3D[secondary] = 0; // and set its attributes me.Plane[planeIdx].setAttribute( "fill", me.Parent.GetColor( me.FillColor, me.FillColor, world3D, drawMinFace ? me.Min : me.Max ) ); me.Plane[planeIdx].setAttribute( "stroke", me.StrokeColor ); me.Plane[planeIdx].setAttribute( "stroke-width", me.StrokeWeight ); me.Plane[planeIdx].setAttribute( "visibility", "visible" ); world3D[face] = drawMinFace ? me.Min[face] : me.Max[face]; // Draw the horizontal and vertical grid lines on this Bbox face drawGrid( me, face, primary, secondary, line1, cond3, cond2, world3D ); // horizontal drawGrid( me, face, secondary, primary, line2, cond2, cond3, world3D ); // vertical } else { // else hide it. me.Plane[planeIdx].setAttribute( "visibility", "hidden" ); for( var ii = 0; ii < 11; ii++ ) me.Line[line1][ii].setAttribute( "visibility", "hidden" ); for( var ii = 0; ii < 11; ii++ ) me.Line[line2][ii].setAttribute( "visibility", "hidden" ); } }