亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? matrix.java

?? java版本的flash文件(swf)播放器
?? JAVA
字號(hào):
/****************************************************************
 * Copyright (c) 2001, David N. Main, All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the 
 * following conditions are met:
 *
 * 1. Redistributions of source code must retain the above 
 * copyright notice, this list of conditions and the following 
 * disclaimer. 
 * 
 * 2. Redistributions in binary form must reproduce the above 
 * copyright notice, this list of conditions and the following 
 * disclaimer in the documentation and/or other materials 
 * provided with the distribution.
 * 
 * 3. The name of the author may not be used to endorse or 
 * promote products derived from this software without specific 
 * prior written permission. 
 * 
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY 
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 
 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
 * AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 ****************************************************************/
package com.anotherbigidea.flash.structs;

import java.io.*;
import com.anotherbigidea.io.*;
import com.anotherbigidea.flash.SWFConstants;

public class Matrix
{
    protected double scaleX = 1.0;
    protected double scaleY = 1.0;
    
    protected double skew0 = 0.0;
    protected double skew1 = 0.0;
    
    protected double translateX = 0.0;
    protected double translateY = 0.0;      
    
    public double getScaleX()  { return scaleX; }
    public double getScaleY()  { return scaleY; }
    public double getSkew0 ()  { return skew0; }
    public double getSkew1 ()  { return skew1; }
    public double getTranslateX() { return translateX; }
    public double getTranslateY() { return translateY; }

    public void setScaleX    ( double scaleX  ) { this.scaleX = scaleX; }
    public void setScaleY    ( double scaleY  ) { this.scaleY = scaleY; }
    public void setSkew0     ( double skew0   ) { this.skew0  = skew0; }
    public void setSkew1     ( double skew1   ) { this.skew1  = skew1; }
    public void setTranslateX( double translateX ) { this.translateX = translateX; }
    public void setTranslateY( double translateY ) { this.translateY = translateY; }    
    
    /**
     * An identity matrix
     */
    public Matrix()
    {
        this( 1.0, 1.0, 0.0, 0.0, 0, 0 );
    }
    
    public Matrix( double translateX, double translateY )
    {
        this( 1.0, 1.0, 0.0, 0.0, translateX, translateY );
    }    
    
    /**
     * Copy another matrix
     */
    public Matrix( Matrix copy )
    {
        if( copy == null ) return;
        scaleX     = copy.scaleX;
        scaleY     = copy.scaleY;
        skew0      = copy.skew0;
        skew1      = copy.skew1;
        translateX = copy.translateX;
        translateY = copy.translateY;      
    }
    
    public Matrix( double scaleX,  double scaleY, 
                   double skew0,   double skew1,
                   double translateX, double translateY )
    {
        this.scaleX = scaleX;
        this.scaleY = scaleY;

        this.skew0 = skew0;
        this.skew1 = skew1;
        
        setTranslateX( translateX );
        setTranslateY( translateY );
    }
    
    public Matrix( InStream in ) throws IOException 
    {
        in.synchBits();
        
        if( in.readUBits(1) == 1 ) //has scale values
        {
            int scaleBits = (int)in.readUBits(5);
            scaleX = ((double)in.readSBits( scaleBits ))/65536.0;
            scaleY = ((double)in.readSBits( scaleBits ))/65536.0;
        }

        if( in.readUBits(1) == 1 ) //has rotate/skew values
        {
            int skewBits  = (int)in.readUBits(5);
            skew0 = ((double)in.readSBits( skewBits ))/65536.0;
            skew1 = ((double)in.readSBits( skewBits ))/65536.0;
        }
        
        int translateBits = (int)in.readUBits(5);
        translateX = in.readSBits( translateBits );
        translateY = in.readSBits( translateBits );        
    }
    
    public void write( OutStream out ) throws IOException 
    {
        out.flushBits();
        
        if( scaleX != 1.0 || scaleY != 1.0 ) //if non-default values
        {
            int intScaleX = (int)(scaleX * 65536.0);
            int intScaleY = (int)(scaleY * 65536.0);
            
            int scaleBits  = out.determineSignedBitSize( intScaleX );
            int scaleBits2 = out.determineSignedBitSize( intScaleY );
            if( scaleBits < scaleBits2 ) scaleBits = scaleBits2;
            
            out.writeUBits( 1, 1 );
            out.writeUBits( 5, scaleBits );
            out.writeSBits( scaleBits, intScaleX );
            out.writeSBits( scaleBits, intScaleY );            
        }
        else
        {
            out.writeUBits( 1, 0 );
        }
                
        if( skew0 != 0.0 || skew1 != 0.0 ) //if non-default values
        {
            int intSkew0 = (int)(skew0 * 65536.0);
            int intSkew1 = (int)(skew1 * 65536.0);
            
            int skewBits  = out.determineSignedBitSize( intSkew0 );
            int skewBits2 = out.determineSignedBitSize( intSkew1 );
            if( skewBits < skewBits2 ) skewBits = skewBits2;
            
            out.writeUBits( 1, 1 );
            out.writeUBits( 5, skewBits );
            out.writeSBits( skewBits, intSkew0 );
            out.writeSBits( skewBits, intSkew1 );            
        }
        else
        {
            out.writeUBits( 1, 0 );
        }

        if( translateX == 0 && translateY == 0 )
        {
            out.writeUBits( 5, 0 );
        }
        else
        {
            int translateBits  = out.determineSignedBitSize( (int)translateX );
            int translateBits2 = out.determineSignedBitSize( (int)translateY );
            if( translateBits < translateBits2 ) translateBits = translateBits2;   
        
            out.writeUBits( 5, translateBits );
            out.writeSBits( translateBits, (int)translateX );
            out.writeSBits( translateBits, (int)translateY );      
        }
        
        out.flushBits();
    }
    
    public String toString()
    {
        return " Matrix(sx,sy,s0,s1,tx,ty)=(" +
               scaleX + "," + scaleY + "," + skew0 + "," + skew1 + "," +
               translateX + "," + translateY + ")";
    }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲精品aa午夜观看| 国产精品成人一区二区三区夜夜夜 | 亚洲福利视频导航| 国产午夜一区二区三区| 91麻豆精品国产91久久久使用方法| 粉嫩久久99精品久久久久久夜| 日本伊人色综合网| 亚洲免费av高清| 国产三级久久久| 日韩色视频在线观看| 欧美在线999| 97se亚洲国产综合自在线观| 国产精品自拍av| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲成人资源在线| 亚洲九九爱视频| 中文字幕亚洲欧美在线不卡| 日本一区二区综合亚洲| 精品国产亚洲在线| 欧美一区二区精品| 欧美区在线观看| 91在线免费视频观看| www.99精品| 成人av手机在线观看| 粉嫩久久99精品久久久久久夜| 美女视频黄久久| 日本不卡视频一二三区| 午夜电影一区二区| 亚洲高清免费观看高清完整版在线观看| 国产精品国产自产拍在线| 欧美韩日一区二区三区| 国产日韩欧美不卡| 中文字幕欧美区| 国产日韩欧美a| 国产精品欧美一级免费| 中文字幕的久久| 欧美国产精品v| 国产精品国产三级国产aⅴ中文 | 一区二区免费在线| 亚洲欧美成aⅴ人在线观看| 中文字幕日韩av资源站| 中文一区二区在线观看| 国产精品丝袜一区| 国产精品国产三级国产| 亚洲视频在线观看三级| 一区二区久久久久| 午夜欧美大尺度福利影院在线看| 日产精品久久久久久久性色| 老鸭窝一区二区久久精品| 精品亚洲国内自在自线福利| 精品中文字幕一区二区| 国产suv精品一区二区6| 成人97人人超碰人人99| 一本大道久久a久久综合婷婷| 在线亚洲精品福利网址导航| 欧美日韩久久一区| 日韩视频免费观看高清完整版在线观看 | 亚洲成a人片在线不卡一二三区| 日日噜噜夜夜狠狠视频欧美人| 日韩精品久久久久久| 久久se这里有精品| 成人av电影观看| 欧美人妇做爰xxxⅹ性高电影| 日韩精品一区在线| 中文幕一区二区三区久久蜜桃| 亚洲靠逼com| 美女高潮久久久| 不卡电影一区二区三区| 欧美精品在线一区二区| 久久免费偷拍视频| 一区二区三区国产精品| 蜜桃视频一区二区| 99久久久久免费精品国产 | 日韩精品中文字幕一区| 中文字幕av不卡| 婷婷六月综合亚洲| 福利一区二区在线| 欧美亚洲动漫精品| 久久精品男人天堂av| 亚洲国产另类精品专区| 国产大陆a不卡| 欧美熟乱第一页| 中文字幕巨乱亚洲| 秋霞国产午夜精品免费视频| 99精品久久只有精品| 91精品国产综合久久精品 | 亚洲欧美一区二区久久 | 在线视频欧美精品| 国产色爱av资源综合区| 午夜久久久久久电影| 国产91对白在线观看九色| 欧美男人的天堂一二区| 国产精品午夜电影| 久久机这里只有精品| 色88888久久久久久影院按摩| 成人欧美一区二区三区在线播放| 午夜视频一区在线观看| 99国产欧美久久久精品| 精品日韩一区二区| 亚洲成a人v欧美综合天堂下载| 成人99免费视频| 久久夜色精品一区| 日韩成人午夜精品| 在线观看国产91| 中文字幕在线一区二区三区| 美女久久久精品| 欧美精品一二三| 亚洲黄色在线视频| 9久草视频在线视频精品| 国产亚洲综合在线| 久久精品免费观看| 欧美高清www午色夜在线视频| 亚洲精品免费播放| 色综合 综合色| 亚洲欧美在线高清| 高清成人免费视频| 国产欧美日韩视频在线观看| 韩国av一区二区三区在线观看| 91精品国产综合久久福利| 午夜欧美视频在线观看| 91国偷自产一区二区三区成为亚洲经典 | 国产精品亲子乱子伦xxxx裸| 国产精品一二一区| 久久品道一品道久久精品| 久久91精品久久久久久秒播| 欧美一区二区三区免费视频 | 亚洲成a人在线观看| 欧美综合在线视频| 一区二区激情小说| 欧美午夜精品久久久久久孕妇 | 中文字幕中文字幕在线一区| 福利一区在线观看| 国产精品美女久久久久久久久 | 亚洲乱码精品一二三四区日韩在线| 99久久婷婷国产精品综合| 亚洲欧洲日韩av| 91亚洲精品久久久蜜桃| 亚洲乱码中文字幕综合| 在线看国产日韩| 天天综合色天天| 欧美精品xxxxbbbb| 欧美aⅴ一区二区三区视频| 日韩精品一区二区三区在线 | 国产一区二区三区在线观看免费| 久久亚洲精精品中文字幕早川悠里| 国产揄拍国内精品对白| 国产精品天美传媒| 色天天综合久久久久综合片| 一区二区欧美视频| 在线不卡欧美精品一区二区三区| 日本不卡123| 2欧美一区二区三区在线观看视频| 国产乱子轮精品视频| 国产精品国产三级国产普通话蜜臀| 91蜜桃在线免费视频| 水野朝阳av一区二区三区| 日韩一级大片在线| 成人深夜在线观看| 一区二区成人在线视频| 欧美一二三在线| 成人激情免费网站| 亚洲国产日韩av| 欧美tickling网站挠脚心| 成人免费不卡视频| 午夜精品福利久久久| 久久久一区二区三区| 日本乱人伦aⅴ精品| 久久精品国产一区二区三 | 一区2区3区在线看| 日韩欧美成人一区| 北岛玲一区二区三区四区 | av在线不卡电影| 天堂成人国产精品一区| 欧美极品少妇xxxxⅹ高跟鞋| 在线看一区二区| 狠狠色狠狠色综合系列| 亚洲欧美电影一区二区| 精品国产亚洲在线| 在线观看一区二区视频| 久久99精品国产.久久久久久| 日韩一区在线看| 精品久久久久香蕉网| 91国模大尺度私拍在线视频| 国产一区欧美一区| 一区二区三区日韩精品视频| ww亚洲ww在线观看国产| 91久久精品日日躁夜夜躁欧美| 国内成人免费视频| 亚洲成人免费在线观看| 国产精品久线在线观看| 欧美一区二区大片| 色欧美片视频在线观看在线视频| 久久国产精品99久久人人澡| 一区二区三区四区不卡视频| 国产日产精品1区| 日韩午夜精品视频| 欧美怡红院视频| 成人一区二区三区在线观看| 捆绑紧缚一区二区三区视频| 亚洲在线观看免费视频|