亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
日韩伦理av电影| 日韩电影在线看| youjizz国产精品| 亚洲自拍偷拍九九九| 欧美一区三区四区| 在线欧美小视频| 久久国产夜色精品鲁鲁99| 99视频有精品| 亚洲天堂免费在线观看视频| 激情图片小说一区| 日本一区二区视频在线观看| 国产激情精品久久久第一区二区| 欧美一区二区在线免费观看| 青草国产精品久久久久久| 欧美一区二区三区不卡| 蜜臀久久99精品久久久久久9| 欧美日韩一级视频| 日韩高清电影一区| 久久久久一区二区三区四区| 欧美猛男超大videosgay| 欧美在线播放高清精品| 久久精品99国产精品| 亚洲成人动漫在线观看| 欧美丝袜自拍制服另类| 91麻豆高清视频| 国产精品毛片久久久久久久| 日韩一区二区高清| 欧美三级日韩三级| 色综合天天视频在线观看| 国产91丝袜在线观看| 久久激情综合网| 久久丁香综合五月国产三级网站| 天天爽夜夜爽夜夜爽精品视频| 亚洲黄网站在线观看| 国产精品三级久久久久三级| 久久久综合视频| 欧美精品一区二区在线播放| 日韩不卡一二三区| 亚洲一区二区三区精品在线| 精品国产sm最大网站免费看| 亚洲一区二区三区精品在线| 欧美久久久久中文字幕| 美女久久久精品| 色综合久久综合网欧美综合网| 国产精品免费久久久久| 成人av在线资源网| 中文字幕在线不卡一区| 欧美在线看片a免费观看| 视频一区二区三区中文字幕| 精品福利视频一区二区三区| 欧美三级资源在线| 91视频在线观看免费| 麻豆精品一区二区三区| 中文字幕欧美日韩一区| 91精品国产综合久久久久久久| 日本高清不卡视频| 成人午夜碰碰视频| 成人免费看片app下载| 久久福利资源站| 精品一区二区三区在线播放| 乱一区二区av| 久久不见久久见免费视频7| 日韩福利视频导航| 日韩国产欧美在线观看| 亚洲一卡二卡三卡四卡无卡久久| 中文字幕一区二区视频| 亚洲小少妇裸体bbw| 亚洲综合清纯丝袜自拍| 亚洲一区精品在线| 亚洲高清在线视频| 视频一区在线播放| 日本欧美一区二区| 久久99精品一区二区三区| 久久99精品网久久| 福利视频网站一区二区三区| 成人精品视频一区二区三区 | 日本视频免费一区| 免费成人你懂的| 青青草精品视频| 精品在线观看视频| 国产风韵犹存在线视精品| 国产白丝网站精品污在线入口 | 福利电影一区二区三区| 国产不卡免费视频| 92国产精品观看| 在线中文字幕不卡| 777奇米成人网| 日韩精品专区在线| 国产女人aaa级久久久级| 国产精品免费av| 亚洲精品国产a久久久久久 | 蜜桃视频一区二区三区| 精品亚洲成a人在线观看| 丰满亚洲少妇av| 色婷婷精品久久二区二区蜜臀av| 欧美天堂亚洲电影院在线播放| 欧美久久一二三四区| 久久久一区二区三区捆绑**| 亚洲图片你懂的| 日本强好片久久久久久aaa| 麻豆国产欧美一区二区三区| 国产一区二区在线影院| 91视频观看免费| 欧美一区二区三区四区五区 | 色婷婷综合在线| 337p亚洲精品色噜噜| 国产亚洲精久久久久久| 一区二区久久久| 加勒比av一区二区| 日本高清不卡aⅴ免费网站| 欧美电影免费提供在线观看| 成人欧美一区二区三区1314| 日韩影院在线观看| 不卡av免费在线观看| 91久久精品一区二区二区| 7777精品久久久大香线蕉 | 国产午夜亚洲精品午夜鲁丝片 | 日韩激情一二三区| 成人av免费观看| 中文字幕免费在线观看视频一区| 国产欧美日韩三级| 午夜精品久久久久久不卡8050| 成人午夜在线免费| 久久视频一区二区| 五月激情六月综合| 91在线国产观看| 亚洲精品一区二区三区蜜桃下载| 亚洲成a人片在线观看中文| 成人免费不卡视频| 精品国产成人在线影院| 亚洲无人区一区| 成人精品免费视频| 2021久久国产精品不只是精品| 尤物在线观看一区| 成人免费毛片嘿嘿连载视频| 精品国一区二区三区| 亚洲女女做受ⅹxx高潮| 91污在线观看| 日本一区二区三区视频视频| 日本中文在线一区| 欧美日韩中文国产| 亚洲国产视频网站| 色婷婷久久久久swag精品| 最新日韩av在线| 国产精品白丝av| 精品久久国产字幕高潮| 一区二区三区精品视频| 欧美色区777第一页| 亚洲综合图片区| a级高清视频欧美日韩| 欧美国产日韩在线观看| 国产老肥熟一区二区三区| 欧美成人高清电影在线| 久久国产乱子精品免费女| 91精品欧美综合在线观看最新| 一区二区三区不卡视频在线观看 | 亚洲免费伊人电影| 99re66热这里只有精品3直播 | 国产亚洲短视频| 国产成人综合亚洲91猫咪| 久久精品一区二区三区不卡| 狠狠色丁香久久婷婷综合_中| 日韩欧美亚洲一区二区| 蜜桃一区二区三区在线观看| 日韩欧美在线不卡| 日本成人在线一区| 69堂精品视频| 久久精品国产成人一区二区三区| 欧美一区二区三区思思人| 免费成人av在线播放| 精品国产区一区| 国产精品99久久不卡二区| 中文字幕在线视频一区| 色综合久久中文字幕综合网| 亚洲一区二区三区不卡国产欧美 | 日本久久一区二区| 亚洲成人午夜影院| 日韩视频123| 国产一区不卡精品| 中文字幕综合网| 欧美性生活大片视频| 日韩在线a电影| 日本一区二区电影| 日本韩国欧美国产| 蜜桃精品视频在线| 国产农村妇女精品| 成人av手机在线观看| 日韩中文字幕不卡| 国产免费成人在线视频| 91影院在线观看| 日韩精品1区2区3区| 337p粉嫩大胆噜噜噜噜噜91av| 成人小视频在线| 午夜视频在线观看一区二区| 精品国产乱码久久久久久夜甘婷婷 | 亚洲日穴在线视频| 99久久久久久| 亚洲国产日韩一级| 精品国产一区二区精华| 色综合天天性综合|