docs/csg.js
function() {
            var u = new CSG.Vector3D(this.elements[0], this.elements[4], this.elements[8]);
            var v = new CSG.Vector3D(this.elements[1], this.elements[5], this.elements[9]);
            var w = new CSG.Vector3D(this.elements[2], this.elements[6], this.elements[10]);

            // for a true orthogonal, non-mirrored base, u.cross(v) == w
            // If they have an opposite direction then we are mirroring
            var mirrorvalue = u.cross(v).dot(w);
            var ismirror = (mirrorvalue < 0);
            return ismirror;
        }
function() {
            var u = new CSG.Vector3D(this.elements[0], this.elements[4], this.elements[8]);
            var v = new CSG.Vector3D(this.elements[1], this.elements[5], this.elements[9]);
            var w = new CSG.Vector3D(this.elements[2], this.elements[6], this.elements[10]);

            // for a true orthogonal, non-mirrored base, u.cross(v) == w
            // If they have an opposite direction then we are mirroring
            var mirrorvalue = u.cross(v).dot(w);
            var ismirror = (mirrorvalue < 0);
            return ismirror;
        }
function ( ) { var u = new CSG . Vector3D ( this . elements [ 0 ] , this . elements [ 4 ] , this . elements [ 8 ] ) ; var v = new CSG . Vector3D ( this . elements [ 1 ] , this . elements [ 5 ] , this . elements [ 9 ] ) ; var w = new CSG . Vector3D ( this . elements [ 2 ] , this . elements [ 6 ] , this . elements [ 10 ] ) ; // for a true orthogonal, non-mirrored base, u.cross(v) == w // If they have an opposite direction then we are mirroring var mirrorvalue = u . cross ( v ) . dot ( w ) ; var ismirror = ( mirrorvalue < 0 ) ; return ismirror ; }
determine whether this matrix is a mirroring transformation
determine whether this matrix is a mirroring transformation