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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? d3dx8math.h

?? directX8.1版本。的頭文件和庫 雖然現在directX9.0版本
?? H
?? 第 1 頁 / 共 3 頁
字號:
//////////////////////////////////////////////////////////////////////////////
//
//  Copyright (C) Microsoft Corporation.  All Rights Reserved.
//
//  File:       d3dx8math.h
//  Content:    D3DX math types and functions
//
//////////////////////////////////////////////////////////////////////////////

#include "d3dx8.h"

#ifndef __D3DX8MATH_H__
#define __D3DX8MATH_H__

#include <math.h>
#pragma warning(disable:4201) // anonymous unions warning



//===========================================================================
//
// General purpose utilities
//
//===========================================================================
#define D3DX_PI    ((FLOAT)  3.141592654f)
#define D3DX_1BYPI ((FLOAT)  0.318309886f)

#define D3DXToRadian( degree ) ((degree) * (D3DX_PI / 180.0f))
#define D3DXToDegree( radian ) ((radian) * (180.0f / D3DX_PI))



//===========================================================================
//
// Vectors
//
//===========================================================================

//--------------------------
// 2D Vector
//--------------------------
typedef struct D3DXVECTOR2
{
#ifdef __cplusplus
public:
    D3DXVECTOR2() {};
    D3DXVECTOR2( CONST FLOAT * );
    D3DXVECTOR2( FLOAT x, FLOAT y );

    // casting
    operator FLOAT* ();
    operator CONST FLOAT* () const;

    // assignment operators
    D3DXVECTOR2& operator += ( CONST D3DXVECTOR2& );
    D3DXVECTOR2& operator -= ( CONST D3DXVECTOR2& );
    D3DXVECTOR2& operator *= ( FLOAT );
    D3DXVECTOR2& operator /= ( FLOAT );

    // unary operators
    D3DXVECTOR2 operator + () const;
    D3DXVECTOR2 operator - () const;

    // binary operators
    D3DXVECTOR2 operator + ( CONST D3DXVECTOR2& ) const;
    D3DXVECTOR2 operator - ( CONST D3DXVECTOR2& ) const;
    D3DXVECTOR2 operator * ( FLOAT ) const;
    D3DXVECTOR2 operator / ( FLOAT ) const;

    friend D3DXVECTOR2 operator * ( FLOAT, CONST D3DXVECTOR2& );

    BOOL operator == ( CONST D3DXVECTOR2& ) const;
    BOOL operator != ( CONST D3DXVECTOR2& ) const;


public:
#endif //__cplusplus
    FLOAT x, y;
} D3DXVECTOR2, *LPD3DXVECTOR2;


//--------------------------
// 3D Vector
//--------------------------
#ifdef __cplusplus
typedef struct D3DXVECTOR3 : public D3DVECTOR
{
public:
    D3DXVECTOR3() {};
    D3DXVECTOR3( CONST FLOAT * );
    D3DXVECTOR3( CONST D3DVECTOR& );
    D3DXVECTOR3( FLOAT x, FLOAT y, FLOAT z );

    // casting
    operator FLOAT* ();
    operator CONST FLOAT* () const;

    // assignment operators
    D3DXVECTOR3& operator += ( CONST D3DXVECTOR3& );
    D3DXVECTOR3& operator -= ( CONST D3DXVECTOR3& );
    D3DXVECTOR3& operator *= ( FLOAT );
    D3DXVECTOR3& operator /= ( FLOAT );

    // unary operators
    D3DXVECTOR3 operator + () const;
    D3DXVECTOR3 operator - () const;

    // binary operators
    D3DXVECTOR3 operator + ( CONST D3DXVECTOR3& ) const;
    D3DXVECTOR3 operator - ( CONST D3DXVECTOR3& ) const;
    D3DXVECTOR3 operator * ( FLOAT ) const;
    D3DXVECTOR3 operator / ( FLOAT ) const;

    friend D3DXVECTOR3 operator * ( FLOAT, CONST struct D3DXVECTOR3& );

    BOOL operator == ( CONST D3DXVECTOR3& ) const;
    BOOL operator != ( CONST D3DXVECTOR3& ) const;

} D3DXVECTOR3, *LPD3DXVECTOR3;

#else //!__cplusplus
typedef struct _D3DVECTOR D3DXVECTOR3, *LPD3DXVECTOR3;
#endif //!__cplusplus


//--------------------------
// 4D Vector
//--------------------------
typedef struct D3DXVECTOR4
{
#ifdef __cplusplus
public:
    D3DXVECTOR4() {};
    D3DXVECTOR4( CONST FLOAT* );
    D3DXVECTOR4( FLOAT x, FLOAT y, FLOAT z, FLOAT w );

    // casting
    operator FLOAT* ();
    operator CONST FLOAT* () const;

    // assignment operators
    D3DXVECTOR4& operator += ( CONST D3DXVECTOR4& );
    D3DXVECTOR4& operator -= ( CONST D3DXVECTOR4& );
    D3DXVECTOR4& operator *= ( FLOAT );
    D3DXVECTOR4& operator /= ( FLOAT );

    // unary operators
    D3DXVECTOR4 operator + () const;
    D3DXVECTOR4 operator - () const;

    // binary operators
    D3DXVECTOR4 operator + ( CONST D3DXVECTOR4& ) const;
    D3DXVECTOR4 operator - ( CONST D3DXVECTOR4& ) const;
    D3DXVECTOR4 operator * ( FLOAT ) const;
    D3DXVECTOR4 operator / ( FLOAT ) const;

    friend D3DXVECTOR4 operator * ( FLOAT, CONST D3DXVECTOR4& );

    BOOL operator == ( CONST D3DXVECTOR4& ) const;
    BOOL operator != ( CONST D3DXVECTOR4& ) const;

public:
#endif //__cplusplus
    FLOAT x, y, z, w;
} D3DXVECTOR4, *LPD3DXVECTOR4;


//===========================================================================
//
// Matrices
//
//===========================================================================
#ifdef __cplusplus
typedef struct D3DXMATRIX : public D3DMATRIX
{
public:
    D3DXMATRIX() {};
    D3DXMATRIX( CONST FLOAT * );
    D3DXMATRIX( CONST D3DMATRIX& );
    D3DXMATRIX( FLOAT _11, FLOAT _12, FLOAT _13, FLOAT _14,
                FLOAT _21, FLOAT _22, FLOAT _23, FLOAT _24,
                FLOAT _31, FLOAT _32, FLOAT _33, FLOAT _34,
                FLOAT _41, FLOAT _42, FLOAT _43, FLOAT _44 );


    // access grants
    FLOAT& operator () ( UINT Row, UINT Col );
    FLOAT  operator () ( UINT Row, UINT Col ) const;

    // casting operators
    operator FLOAT* ();
    operator CONST FLOAT* () const;

    // assignment operators
    D3DXMATRIX& operator *= ( CONST D3DXMATRIX& );
    D3DXMATRIX& operator += ( CONST D3DXMATRIX& );
    D3DXMATRIX& operator -= ( CONST D3DXMATRIX& );
    D3DXMATRIX& operator *= ( FLOAT );
    D3DXMATRIX& operator /= ( FLOAT );

    // unary operators
    D3DXMATRIX operator + () const;
    D3DXMATRIX operator - () const;

    // binary operators
    D3DXMATRIX operator * ( CONST D3DXMATRIX& ) const;
    D3DXMATRIX operator + ( CONST D3DXMATRIX& ) const;
    D3DXMATRIX operator - ( CONST D3DXMATRIX& ) const;
    D3DXMATRIX operator * ( FLOAT ) const;
    D3DXMATRIX operator / ( FLOAT ) const;

    friend D3DXMATRIX operator * ( FLOAT, CONST D3DXMATRIX& );

    BOOL operator == ( CONST D3DXMATRIX& ) const;
    BOOL operator != ( CONST D3DXMATRIX& ) const;

} D3DXMATRIX, *LPD3DXMATRIX;

#else //!__cplusplus
typedef struct _D3DMATRIX D3DXMATRIX, *LPD3DXMATRIX;
#endif //!__cplusplus

//===========================================================================
//
// Aligned Matrices
//
// This class helps keep matrices 16-byte aligned as preferred by P4 cpus.
// It aligns matrices on the stack and on the heap or in global scope.
// It does this using __declspec(align(16)) which works on VC7 and on VC 6
// with the processor pack. Unfortunately there is no way to detect the 
// latter so this is turned on only on VC7. On other compilers this is the
// the same as D3DXMATRIX.
// Using this class on a compiler that does not actually do the alignment
// can be dangerous since it will not expose bugs that ignore alignment.
// E.g if an object of this class in inside a struct or class, and some code
// memcopys data in it assuming tight packing. This could break on a compiler
// that eventually start aligning the matrix.
//
//===========================================================================
#ifdef __cplusplus
typedef struct _D3DXMATRIXA16 : public D3DXMATRIX
{
    _D3DXMATRIXA16() {}
    _D3DXMATRIXA16( CONST FLOAT * f): D3DXMATRIX(f) {}
    _D3DXMATRIXA16( CONST D3DMATRIX& m): D3DXMATRIX(m) {}
    _D3DXMATRIXA16( FLOAT _11, FLOAT _12, FLOAT _13, FLOAT _14,
                    FLOAT _21, FLOAT _22, FLOAT _23, FLOAT _24,
                    FLOAT _31, FLOAT _32, FLOAT _33, FLOAT _34,
                    FLOAT _41, FLOAT _42, FLOAT _43, FLOAT _44 ) :
                D3DXMATRIX(_11, _12, _13, _14,
                           _21, _22, _23, _24,
                           _31, _32, _33, _34,
                           _41, _42, _43, _44) {}
    void* operator new(size_t s)
    {
        LPBYTE p = ::new BYTE[s + 16];
        if (p)
        {
            BYTE offset = (BYTE)(16 - ((UINT_PTR)p & 15));
            p += offset;
            p[-1] = offset;
        }
        return p;
    };

    void* operator new[](size_t s)
    {
        LPBYTE p = ::new BYTE[s + 16];
        if (p)
        {
            BYTE offset = (BYTE)(16 - ((UINT_PTR)p & 15));
            p += offset;
            p[-1] = offset;
        }
        return p;
    };

    // This is NOT a virtual operator. If you cast
    // to D3DXMATRIX, do not delete using that
    void operator delete(void* p)
    {
        if(p)
        {
            BYTE* pb = static_cast<BYTE*>(p);
            pb -= pb[-1];
            ::delete [] pb;
        }
    };

    // This is NOT a virtual operator. If you cast
    // to D3DXMATRIX, do not delete using that
    void operator delete[](void* p)
    {
        if(p)
        {
            BYTE* pb = static_cast<BYTE*>(p);
            pb -= pb[-1];
            ::delete [] pb;
        }
    };

    struct _D3DXMATRIXA16& operator=(CONST D3DXMATRIX& rhs)
    {
        memcpy(&_11, &rhs, sizeof(D3DXMATRIX));
        return *this;
    };
} _D3DXMATRIXA16;

#else //!__cplusplus
typedef D3DXMATRIX  _D3DXMATRIXA16;
#endif //!__cplusplus

#if _MSC_VER >= 1300        // VC7
#define _ALIGN_16 __declspec(align(16))
#else
#define _ALIGN_16                   // Earlier compiler may not understand this, do nothing.
#endif

#define D3DXMATRIXA16 _ALIGN_16 _D3DXMATRIXA16

typedef D3DXMATRIXA16 *LPD3DXMATRIXA16;

//===========================================================================
//
//    Quaternions
//
//===========================================================================
typedef struct D3DXQUATERNION
{
#ifdef __cplusplus
public:
    D3DXQUATERNION() {}
    D3DXQUATERNION( CONST FLOAT * );
    D3DXQUATERNION( FLOAT x, FLOAT y, FLOAT z, FLOAT w );

    // casting
    operator FLOAT* ();
    operator CONST FLOAT* () const;

    // assignment operators
    D3DXQUATERNION& operator += ( CONST D3DXQUATERNION& );
    D3DXQUATERNION& operator -= ( CONST D3DXQUATERNION& );
    D3DXQUATERNION& operator *= ( CONST D3DXQUATERNION& );
    D3DXQUATERNION& operator *= ( FLOAT );
    D3DXQUATERNION& operator /= ( FLOAT );

    // unary operators
    D3DXQUATERNION  operator + () const;
    D3DXQUATERNION  operator - () const;

    // binary operators
    D3DXQUATERNION operator + ( CONST D3DXQUATERNION& ) const;
    D3DXQUATERNION operator - ( CONST D3DXQUATERNION& ) const;
    D3DXQUATERNION operator * ( CONST D3DXQUATERNION& ) const;
    D3DXQUATERNION operator * ( FLOAT ) const;
    D3DXQUATERNION operator / ( FLOAT ) const;

    friend D3DXQUATERNION operator * (FLOAT, CONST D3DXQUATERNION& );

    BOOL operator == ( CONST D3DXQUATERNION& ) const;
    BOOL operator != ( CONST D3DXQUATERNION& ) const;

#endif //__cplusplus
    FLOAT x, y, z, w;
} D3DXQUATERNION, *LPD3DXQUATERNION;


//===========================================================================
//
// Planes
//
//===========================================================================
typedef struct D3DXPLANE
{
#ifdef __cplusplus
public:
    D3DXPLANE() {}
    D3DXPLANE( CONST FLOAT* );
    D3DXPLANE( FLOAT a, FLOAT b, FLOAT c, FLOAT d );

    // casting
    operator FLOAT* ();
    operator CONST FLOAT* () const;

    // unary operators
    D3DXPLANE operator + () const;
    D3DXPLANE operator - () const;

    // binary operators
    BOOL operator == ( CONST D3DXPLANE& ) const;
    BOOL operator != ( CONST D3DXPLANE& ) const;

#endif //__cplusplus
    FLOAT a, b, c, d;
} D3DXPLANE, *LPD3DXPLANE;


//===========================================================================
//
// Colors
//
//===========================================================================

typedef struct D3DXCOLOR
{
#ifdef __cplusplus

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚洲高清一区二区三区不卡| 亚洲欧美在线另类| 3d动漫精品啪啪1区2区免费| 欧美做爰猛烈大尺度电影无法无天| 粉嫩蜜臀av国产精品网站| 国产一区二区三区黄视频 | 2023国产精华国产精品| 欧美一级黄色大片| 日韩欧美中文字幕制服| 宅男在线国产精品| 欧美一区二区三区播放老司机| 欧美美女网站色| 日韩视频免费直播| www欧美成人18+| 久久精品视频在线看| 国产精品网友自拍| 一区在线观看免费| 亚洲图片有声小说| 日本一不卡视频| 国产一区二区中文字幕| 国产成人午夜99999| 99视频精品全部免费在线| 99久久99久久精品国产片果冻| 91丝袜美女网| 4438成人网| 久久久久九九视频| 亚洲色图在线播放| 日本va欧美va瓶| 国产69精品久久777的优势| www.日韩av| 欧美人动与zoxxxx乱| 日韩久久久精品| 一区二区中文字幕在线| 亚洲黄色av一区| 蜜桃视频免费观看一区| 大陆成人av片| 欧美日韩精品欧美日韩精品一| 日韩情涩欧美日韩视频| 中文字幕不卡在线播放| 一区二区三区欧美日| 日本不卡中文字幕| 国产91丝袜在线播放| 一本一道综合狠狠老| 91精品国产aⅴ一区二区| 国产清纯白嫩初高生在线观看91 | www国产成人免费观看视频 深夜成人网| 精品少妇一区二区三区在线播放| 国产精品欧美久久久久一区二区 | 色婷婷久久久亚洲一区二区三区 | 一区二区中文视频| 青青青爽久久午夜综合久久午夜| 成人午夜短视频| 欧美日韩国产首页在线观看| 久久久综合视频| 香蕉影视欧美成人| 丰满亚洲少妇av| 日韩欧美一区在线观看| 亚洲欧美日韩精品久久久久| 精品写真视频在线观看| 欧美午夜不卡在线观看免费| 国产日产欧美一区二区三区| 日本午夜精品一区二区三区电影| 99re视频这里只有精品| 欧美成人国产一区二区| 亚洲精品中文字幕乱码三区| 国内不卡的二区三区中文字幕| 欧美日韩美女一区二区| 欧美韩国日本不卡| 免费成人深夜小野草| 91日韩精品一区| 久久久国产精品麻豆| 无吗不卡中文字幕| 色综合久久天天| 国产欧美日韩综合| 狠狠色2019综合网| 欧美久久高跟鞋激| 亚洲欧美日韩在线| 成人深夜在线观看| 国产午夜亚洲精品羞羞网站| 日韩高清不卡一区二区| 欧美日韩中文国产| 亚洲欧美日韩国产成人精品影院| 国产福利一区在线| 精品少妇一区二区三区在线播放| 天天操天天干天天综合网| 99re在线视频这里只有精品| 欧美国产一区在线| 高清不卡在线观看av| 337p粉嫩大胆噜噜噜噜噜91av| 日本欧美肥老太交大片| 欧美日韩视频在线第一区| 亚洲男人的天堂在线aⅴ视频| 成人在线一区二区三区| 国产亚洲精品aa午夜观看| 狠狠色综合色综合网络| 欧美成人a∨高清免费观看| 日韩av电影天堂| 欧美一级理论性理论a| 午夜伦欧美伦电影理论片| 欧美日韩在线直播| 亚洲chinese男男1069| 欧美视频精品在线观看| 亚洲成人在线网站| 欧美久久久久久蜜桃| 日韩中文字幕区一区有砖一区| 欧美日韩一级二级| 午夜激情久久久| 欧美一区二区三区电影| 久久国产精品99久久久久久老狼 | 亚洲成人免费看| 欧美喷水一区二区| 日韩高清不卡在线| 精品美女在线观看| 国产二区国产一区在线观看| 国产欧美久久久精品影院| 成人一区二区三区视频在线观看| 日本一区二区三区在线不卡| 不卡视频免费播放| 亚洲综合色网站| 日韩一区二区三区视频在线观看| 国产最新精品精品你懂的| 久久久亚洲综合| 91在线观看高清| 亚洲成人在线免费| 欧美v国产在线一区二区三区| 国内成人免费视频| 中文字幕综合网| 欧美精品久久99久久在免费线 | 91精品国产91久久久久久一区二区 | 亚洲人成网站色在线观看| 91麻豆自制传媒国产之光| 婷婷中文字幕综合| 久久女同精品一区二区| 91在线无精精品入口| 天天影视涩香欲综合网| 久久久久久久久久看片| 91在线播放网址| 久久精品噜噜噜成人av农村| 国产欧美日韩在线| 欧美日本不卡视频| 成人精品小蝌蚪| 亚洲福利视频一区| 久久综合色一综合色88| 成人美女视频在线观看| 亚洲影视在线播放| xnxx国产精品| 欧美亚洲动漫另类| 国产伦精一区二区三区| 亚洲一区二区中文在线| 精品少妇一区二区| 一本大道久久a久久综合婷婷| 天堂一区二区在线免费观看| 日本一区二区三区在线不卡| 欧美精品一卡两卡| 成人av在线一区二区三区| 婷婷激情综合网| 国产精品免费网站在线观看| 4438x成人网最大色成网站| 成人黄动漫网站免费app| 日本欧洲一区二区| 亚洲欧美另类久久久精品2019| 精品福利在线导航| 欧美体内she精视频| 国产精品伊人色| 琪琪久久久久日韩精品| 亚洲人成小说网站色在线| 久久夜色精品一区| 欧美丰满一区二区免费视频 | 精品欧美一区二区在线观看| 91偷拍与自偷拍精品| 寂寞少妇一区二区三区| 亚洲综合精品久久| 国产精品久久看| 久久久久久麻豆| 日韩欧美三级在线| 欧美日韩你懂得| 91老司机福利 在线| 国产美女精品一区二区三区| 免费在线观看一区| 亚洲国产精品久久一线不卡| 国产精品久久久久aaaa樱花| 26uuu欧美| 欧美变态凌虐bdsm| 制服丝袜激情欧洲亚洲| 91精品91久久久中77777| 成人激情小说网站| 国产一区二区三区在线观看免费视频| 日韩专区中文字幕一区二区| 一区二区三区**美女毛片| 亚洲日本在线视频观看| 欧美高清在线精品一区| 国产三级精品三级| 久久精品视频一区二区| 精品国产伦理网| 精品国产在天天线2019| 日韩精品一区二区三区中文不卡 | 久久久久久久网| 久久这里只有精品6| 精品国产制服丝袜高跟| 日韩精品专区在线|