public static Matrix4D computeTransform(double[] extrusion, double[] coord)
    {
        
        Vector3D Ax = null;
        if(extrusion[0] == 0d && extrusion[1] == 0d && extrusion[2] > 0d && coord[2] == 0d)
        	return null;
        if((extrusion[0] >= 0f ? extrusion[0]:-extrusion[0]) < 0.015625F
        		&&
            (extrusion[1] >= 0f ? extrusion[1]:-extrusion[1]) < 0.015625F){
         
        	Ax = new Vector3D(extrusion[2], 0f, -extrusion[0]);
         }else{
        	 Ax = new Vector3D(-extrusion[1],extrusion[0], 0f);
         }
        double len = Ax.length();
        Ax.scale(1d / len);
        Vector3D upward = new Vector3D(extrusion[0], extrusion[1], extrusion[2]);
        Vector3D Ay = upward.cross(Ax);
  			
        Matrix4D aaa = new Matrix4D(Ax.x, Ay.x, upward.x, coord[2] * upward.x, 
  										Ax.y, Ay.y, upward.y, coord[2] * upward.y,
  										Ax.z, Ay.z, upward.z, coord[2] * upward.z, 
  											0.0F, 0.0F, 0.0F, 1.0F);
  	
        //Creo que la transformacion comentada es para pasar de WCS a OCS, y no al reves
        
        /*
        Matrix4D aaa = new Matrix4D(Ax.x, Ax.y, Ax.z, 0f, 
									Ay.x, Ay.y, Ay.z, 0f,
									upward.x, upward.y, upward.z, 0f,
									coord[2] * upward.x, coord[2] * upward.y, coord[2] * upward.z, 1f);
        
        */
        return aaa;
    }