code: function(a,b,c,n,uvA,uvB,uvC){
  				//can be 3 args, 4 args, 6 args, or 7 args
  				//if it was 6 swap vars around,
  				if( arguments.length == 6 ){
  					uvC = uvB;
  					uvB = uvA;
  					uvA = n;
  					n = undefined;
  				}
  				//7 param method
  				var va = this.__checkVertex(a);
  				var vb = this.__checkVertex(b);
  				var vc = this.__checkVertex(c);
  
  				if(va.id === vb.id || va.id === vc.id || vb.id === vc.id){
  					//console.log("ignoring invalid face: "+a + ", " +b+ ", "+c);
  				} else {
  					if(n != null ){
  						var nc = va.sub(vc).crossSelf(va.sub(vb));
  						if(n.dot(nc)<0){
  							var t = va;
  							va = vb;
  							vb = t;
  						}
  					}
  					var f = new Face(va,vb,vc,uvA,uvB,uvC);
  					this.faces.push(f);
  				}
  				return this;
  			}
docs: add a Face to the mesh
  @param {Vec3D} a
  @param {Vec3D} b
  @param {Vec3D} c
  @param {Vec3D} [n] the normal
  @param {Vec2D} [uvA]
  @param {Vec2D} [uvB]
  @param {Vec2D} [uvC]
  @returns itself