Artifact 2818c66b17c430a299245e843a184aac21b757d9:
- File
src/win32/directx/d3dx10math.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a /*************** 0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 0d 0a 2a 20 20 20 20 ********\..* 0050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0060: 20 20 20 20 20 20 20 20 20 20 64 33 64 78 31 30 d3dx10 0070: 6d 61 74 68 2e 64 20 20 20 20 20 20 20 20 20 20 math.d 0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0090: 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 20 *..* 00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d *. 00e0: 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .* 00f0: 20 20 20 20 20 20 20 20 20 57 69 6e 64 6f 77 73 Windows 0100: 20 41 50 49 20 68 65 61 64 65 72 20 6d 6f 64 75 API header modu 0110: 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le 0120: 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 20 *..* 0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0170: 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 *..* 0180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 P 0190: 6c 61 63 65 64 20 69 6e 74 6f 20 70 75 62 6c 69 laced into publi 01a0: 63 20 64 6f 6d 61 69 6e 20 20 20 20 20 20 20 20 c domain 01b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a * 01c0: 0d 0a 5c 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ..\************* 01d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 01e0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 01f0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0200: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0d 0a 6d 6f 64 **********/..mod 0210: 75 6c 65 20 77 69 6e 33 32 2e 64 69 72 65 63 74 ule win32.direct 0220: 78 2e 64 33 64 78 31 30 6d 61 74 68 3b 0d 0a 0d x.d3dx10math;... 0230: 0a 76 65 72 73 69 6f 6e 28 54 61 6e 67 6f 29 20 .version(Tango) 0240: 7b 0d 0a 20 20 20 20 69 6d 70 6f 72 74 20 74 61 {.. import ta 0250: 6e 67 6f 2e 6d 61 74 68 2e 4d 61 74 68 3b 0d 0a ngo.math.Math;.. 0260: 20 20 20 20 61 6c 69 61 73 20 73 71 72 74 20 73 alias sqrt s 0270: 71 72 74 66 3b 0d 0a 7d 20 65 6c 73 65 20 7b 0d qrtf;..} else {. 0280: 0a 20 20 20 20 76 65 72 73 69 6f 6e 20 28 44 5f . version (D_ 0290: 56 65 72 73 69 6f 6e 32 29 0d 0a 20 20 20 20 20 Version2).. 02a0: 20 20 20 69 6d 70 6f 72 74 20 63 6f 72 65 2e 73 import core.s 02b0: 74 64 63 2e 6d 61 74 68 3b 0d 0a 20 20 20 20 65 tdc.math;.. e 02c0: 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 6d 70 lse.. imp 02d0: 6f 72 74 20 73 74 64 2e 63 2e 6d 61 74 68 3b 0d ort std.c.math;. 02e0: 0a 7d 0d 0a 0d 0a 70 72 69 76 61 74 65 20 69 6d .}....private im 02f0: 70 6f 72 74 20 77 69 6e 33 32 2e 77 69 6e 64 6f port win32.windo 0300: 77 73 3b 0d 0a 70 72 69 76 61 74 65 20 69 6d 70 ws;..private imp 0310: 6f 72 74 20 77 69 6e 33 32 2e 64 69 72 65 63 74 ort win32.direct 0320: 78 2e 64 33 64 78 31 30 3b 0d 0a 0d 0a 73 74 72 x.d3dx10;....str 0330: 75 63 74 20 44 33 44 56 45 43 54 4f 52 20 7b 0d uct D3DVECTOR {. 0340: 0a 09 66 6c 6f 61 74 20 78 3b 0d 0a 09 66 6c 6f ..float x;...flo 0350: 61 74 20 79 3b 0d 0a 09 66 6c 6f 61 74 20 7a 3b at y;...float z; 0360: 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 44 33 ..}....struct D3 0370: 44 4d 41 54 52 49 58 20 7b 0d 0a 09 75 6e 69 6f DMATRIX {...unio 0380: 6e 20 7b 0d 0a 09 09 73 74 72 75 63 74 20 7b 0d n {....struct {. 0390: 0a 09 09 09 66 6c 6f 61 74 20 5f 31 31 2c 20 5f ....float _11, _ 03a0: 31 32 2c 20 5f 31 33 2c 20 5f 31 34 3b 0d 0a 09 12, _13, _14;... 03b0: 09 09 66 6c 6f 61 74 20 5f 32 31 2c 20 5f 32 32 ..float _21, _22 03c0: 2c 20 5f 32 33 2c 20 5f 32 34 3b 0d 0a 09 09 09 , _23, _24;..... 03d0: 66 6c 6f 61 74 20 5f 33 31 2c 20 5f 33 32 2c 20 float _31, _32, 03e0: 5f 33 33 2c 20 5f 33 34 3b 0d 0a 09 09 09 66 6c _33, _34;.....fl 03f0: 6f 61 74 20 5f 34 31 2c 20 5f 34 32 2c 20 5f 34 oat _41, _42, _4 0400: 33 2c 20 5f 34 34 3b 0d 0a 09 09 7d 0d 0a 09 09 3, _44;....}.... 0410: 66 6c 6f 61 74 5b 34 5d 5b 34 5d 20 6d 3b 0d 0a float[4][4] m;.. 0420: 09 7d 0d 0a 7d 0d 0a 0d 0a 63 6f 6e 73 74 20 44 .}..}....const D 0430: 33 44 58 5f 50 49 20 3d 20 33 2e 31 34 31 35 39 3DX_PI = 3.14159 0440: 32 36 35 33 35 38 39 37 39 33 32 33 38 34 36 3b 265358979323846; 0450: 0d 0a 63 6f 6e 73 74 20 44 33 44 58 5f 31 42 59 ..const D3DX_1BY 0460: 50 49 20 3d 20 31 2e 30 20 2f 20 44 33 44 58 5f PI = 1.0 / D3DX_ 0470: 50 49 3b 0d 0a 0d 0a 66 6c 6f 61 74 20 44 33 44 PI;....float D3D 0480: 58 54 6f 52 61 64 69 61 6e 28 66 6c 6f 61 74 20 XToRadian(float 0490: 64 65 67 72 65 65 29 20 7b 0d 0a 09 72 65 74 75 degree) {...retu 04a0: 72 6e 20 64 65 67 72 65 65 20 2a 20 28 44 33 44 rn degree * (D3D 04b0: 58 5f 50 49 20 2f 20 31 38 30 2e 30 29 3b 0d 0a X_PI / 180.0);.. 04c0: 7d 0d 0a 0d 0a 66 6c 6f 61 74 20 44 33 44 58 54 }....float D3DXT 04d0: 6f 44 65 67 72 65 65 28 66 6c 6f 61 74 20 72 61 oDegree(float ra 04e0: 64 69 61 6e 29 20 7b 0d 0a 09 72 65 74 75 72 6e dian) {...return 04f0: 20 72 61 64 69 61 6e 20 2a 20 28 31 38 30 2e 30 radian * (180.0 0500: 20 2f 20 44 33 44 58 5f 50 49 29 3b 0d 0a 7d 0d / D3DX_PI);..}. 0510: 0a 0d 0a 63 6f 6e 73 74 20 44 33 44 58 5f 31 36 ...const D3DX_16 0520: 46 5f 44 49 47 09 09 09 3d 20 33 3b 0d 0a 63 6f F_DIG...= 3;..co 0530: 6e 73 74 20 44 33 44 58 5f 31 36 46 5f 45 50 53 nst D3DX_16F_EPS 0540: 49 4c 4f 4e 09 09 3d 20 34 2e 38 38 37 35 38 30 ILON..= 4.887580 0550: 39 65 2d 34 66 3b 0d 0a 63 6f 6e 73 74 20 44 33 9e-4f;..const D3 0560: 44 58 5f 31 36 46 5f 4d 41 4e 54 5f 44 49 47 09 DX_16F_MANT_DIG. 0570: 09 3d 20 31 31 3b 0d 0a 63 6f 6e 73 74 20 44 33 .= 11;..const D3 0580: 44 58 5f 31 36 46 5f 4d 41 58 09 09 09 3d 20 36 DX_16F_MAX...= 6 0590: 2e 35 35 30 34 30 30 65 2b 30 30 34 3b 0d 0a 63 .550400e+004;..c 05a0: 6f 6e 73 74 20 44 33 44 58 5f 31 36 46 5f 4d 41 onst D3DX_16F_MA 05b0: 58 5f 31 30 5f 45 58 50 09 3d 20 34 3b 0d 0a 63 X_10_EXP.= 4;..c 05c0: 6f 6e 73 74 20 44 33 44 58 5f 31 36 46 5f 4d 41 onst D3DX_16F_MA 05d0: 58 5f 45 58 50 09 09 3d 20 31 35 3b 0d 0a 63 6f X_EXP..= 15;..co 05e0: 6e 73 74 20 44 33 44 58 5f 31 36 46 5f 4d 49 4e nst D3DX_16F_MIN 05f0: 09 09 09 3d 20 36 2e 31 30 33 35 31 35 36 65 2d ...= 6.1035156e- 0600: 35 66 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 58 5f 5f;..const D3DX_ 0610: 31 36 46 5f 4d 49 4e 5f 31 30 5f 45 58 50 09 3d 16F_MIN_10_EXP.= 0620: 20 2d 34 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 58 -4;..const D3DX 0630: 5f 31 36 46 5f 4d 49 4e 5f 45 58 50 09 09 3d 20 _16F_MIN_EXP..= 0640: 2d 31 34 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 58 -14;..const D3DX 0650: 5f 31 36 46 5f 52 41 44 49 58 09 09 3d 20 32 3b _16F_RADIX..= 2; 0660: 0d 0a 63 6f 6e 73 74 20 44 33 44 58 5f 31 36 46 ..const D3DX_16F 0670: 5f 52 4f 55 4e 44 53 09 09 3d 20 31 3b 0d 0a 63 _ROUNDS..= 1;..c 0680: 6f 6e 73 74 20 44 33 44 58 5f 31 36 46 5f 53 49 onst D3DX_16F_SI 0690: 47 4e 5f 4d 41 53 4b 09 3d 20 30 78 38 30 30 30 GN_MASK.= 0x8000 06a0: 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 58 5f 31 36 ;..const D3DX_16 06b0: 46 5f 45 58 50 5f 4d 41 53 4b 09 09 3d 20 30 78 F_EXP_MASK..= 0x 06c0: 37 43 30 30 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 7C00;..const D3D 06d0: 58 5f 31 36 46 5f 46 52 41 43 5f 4d 41 53 4b 09 X_16F_FRAC_MASK. 06e0: 3d 20 30 78 30 33 46 46 3b 0d 0a 0d 0a 73 74 72 = 0x03FF;....str 06f0: 75 63 74 20 44 33 44 58 46 4c 4f 41 54 31 36 20 uct D3DXFLOAT16 0700: 7b 0d 0a 09 2f 2f 54 4f 44 4f 0d 0a 70 72 6f 74 {...//TODO..prot 0710: 65 63 74 65 64 3a 0d 0a 20 20 20 20 57 4f 52 44 ected:.. WORD 0720: 20 76 61 6c 75 65 3b 0d 0a 7d 0d 0a 0d 0a 73 74 value;..}....st 0730: 72 75 63 74 20 44 33 44 58 56 45 43 54 4f 52 32 ruct D3DXVECTOR2 0740: 20 7b 0d 0a 09 2f 2f 54 4f 44 4f 0d 0a 09 66 6c {...//TODO...fl 0750: 6f 61 74 20 78 2c 20 79 3b 0d 0a 7d 0d 0a 0d 0a oat x, y;..}.... 0760: 73 74 72 75 63 74 20 44 33 44 58 56 45 43 54 4f struct D3DXVECTO 0770: 52 32 5f 31 36 46 20 7b 0d 0a 09 2f 2f 54 4f 44 R2_16F {...//TOD 0780: 4f 0d 0a 09 44 33 44 58 46 4c 4f 41 54 31 36 20 O...D3DXFLOAT16 0790: 78 2c 20 79 3b 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 x, y;..}....stru 07a0: 63 74 20 44 33 44 58 56 45 43 54 4f 52 33 20 7b ct D3DXVECTOR3 { 07b0: 0d 0a 09 2f 2f 54 4f 44 4f 0d 0a 09 66 6c 6f 61 ...//TODO...floa 07c0: 74 20 78 2c 20 79 2c 20 7a 3b 0d 0a 7d 0d 0a 0d t x, y, z;..}... 07d0: 0a 73 74 72 75 63 74 20 44 33 44 58 56 45 43 54 .struct D3DXVECT 07e0: 4f 52 33 5f 31 36 46 20 7b 0d 0a 09 2f 2f 54 4f OR3_16F {...//TO 07f0: 44 4f 0d 0a 09 44 33 44 58 46 4c 4f 41 54 31 36 DO...D3DXFLOAT16 0800: 20 78 2c 20 79 2c 20 7a 3b 0d 0a 7d 0d 0a 0d 0a x, y, z;..}.... 0810: 73 74 72 75 63 74 20 44 33 44 58 56 45 43 54 4f struct D3DXVECTO 0820: 52 34 20 7b 0d 0a 09 2f 2f 54 4f 44 4f 0d 0a 09 R4 {...//TODO... 0830: 66 6c 6f 61 74 20 78 2c 20 79 2c 20 7a 2c 20 77 float x, y, z, w 0840: 3b 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 44 ;..}....struct D 0850: 33 44 58 56 45 43 54 4f 52 34 5f 31 36 46 20 7b 3DXVECTOR4_16F { 0860: 0d 0a 09 2f 2f 54 4f 44 4f 0d 0a 09 44 33 44 58 ...//TODO...D3DX 0870: 46 4c 4f 41 54 31 36 20 78 2c 20 79 2c 20 7a 2c FLOAT16 x, y, z, 0880: 20 77 3b 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 w;..}....struct 0890: 20 44 33 44 58 4d 41 54 52 49 58 20 7b 0d 0a 09 D3DXMATRIX {... 08a0: 2f 2f 54 4f 44 4f 0d 0a 09 75 6e 69 6f 6e 20 7b //TODO...union { 08b0: 0d 0a 09 09 73 74 72 75 63 74 20 7b 0d 0a 09 09 ....struct {.... 08c0: 09 66 6c 6f 61 74 20 5f 31 31 2c 20 5f 31 32 2c .float _11, _12, 08d0: 20 5f 31 33 2c 20 5f 31 34 3b 0d 0a 09 09 09 66 _13, _14;.....f 08e0: 6c 6f 61 74 20 5f 32 31 2c 20 5f 32 32 2c 20 5f loat _21, _22, _ 08f0: 32 33 2c 20 5f 32 34 3b 0d 0a 09 09 09 66 6c 6f 23, _24;.....flo 0900: 61 74 20 5f 33 31 2c 20 5f 33 32 2c 20 5f 33 33 at _31, _32, _33 0910: 2c 20 5f 33 34 3b 0d 0a 09 09 09 66 6c 6f 61 74 , _34;.....float 0920: 20 5f 34 31 2c 20 5f 34 32 2c 20 5f 34 33 2c 20 _41, _42, _43, 0930: 5f 34 34 3b 0d 0a 09 09 7d 0d 0a 09 09 66 6c 6f _44;....}....flo 0940: 61 74 5b 34 5d 5b 34 5d 20 6d 3b 0d 0a 09 7d 0d at[4][4] m;...}. 0950: 0a 7d 0d 0a 0d 0a 2f 2f 54 4f 44 4f 20 73 74 72 .}....//TODO str 0960: 75 63 74 20 5f 44 33 44 58 4d 41 54 52 49 58 41 uct _D3DXMATRIXA 0970: 31 36 20 3a 20 44 33 44 58 4d 41 54 52 49 58 0d 16 : D3DXMATRIX. 0980: 0a 0d 0a 73 74 72 75 63 74 20 44 33 44 58 51 55 ...struct D3DXQU 0990: 41 54 45 52 4e 49 4f 4e 20 7b 0d 0a 09 2f 2f 54 ATERNION {...//T 09a0: 4f 44 4f 0d 0a 09 66 6c 6f 61 74 20 78 2c 20 79 ODO...float x, y 09b0: 2c 20 7a 2c 20 77 3b 0d 0a 7d 0d 0a 0d 0a 73 74 , z, w;..}....st 09c0: 72 75 63 74 20 44 33 44 58 50 4c 41 4e 45 20 7b ruct D3DXPLANE { 09d0: 0d 0a 09 2f 2f 54 4f 44 4f 0d 0a 09 66 6c 6f 61 ...//TODO...floa 09e0: 74 20 61 2c 20 62 2c 20 63 2c 20 64 3b 0d 0a 7d t a, b, c, d;..} 09f0: 0d 0a 0d 0a 73 74 72 75 63 74 20 44 33 44 58 43 ....struct D3DXC 0a00: 4f 4c 4f 52 20 7b 0d 0a 09 2f 2f 54 4f 44 4f 0d OLOR {...//TODO. 0a10: 0a 09 66 6c 6f 61 74 20 72 2c 20 67 2c 20 62 2c ..float r, g, b, 0a20: 20 61 3b 0d 0a 7d 0d 0a 0d 0a 65 78 74 65 72 6e a;..}....extern 0a30: 28 57 69 6e 64 6f 77 73 29 20 7b 0d 0a 09 44 33 (Windows) {...D3 0a40: 44 58 46 4c 4f 41 54 31 36 2a 20 44 33 44 58 46 DXFLOAT16* D3DXF 0a50: 6c 6f 61 74 33 32 54 6f 31 36 41 72 72 61 79 28 loat32To16Array( 0a60: 44 33 44 58 46 4c 4f 41 54 31 36 2a 20 70 4f 75 D3DXFLOAT16* pOu 0a70: 74 2c 20 66 6c 6f 61 74 2a 20 70 49 6e 2c 20 55 t, float* pIn, U 0a80: 49 4e 54 20 6e 29 3b 0d 0a 09 66 6c 6f 61 74 2a INT n);...float* 0a90: 20 44 33 44 58 46 6c 6f 61 74 31 36 54 6f 33 32 D3DXFloat16To32 0aa0: 41 72 72 61 79 28 66 6c 6f 61 74 2a 20 70 4f 75 Array(float* pOu 0ab0: 74 2c 20 44 33 44 58 46 4c 4f 41 54 31 36 2a 20 t, D3DXFLOAT16* 0ac0: 70 49 6e 2c 20 55 49 4e 54 20 6e 29 3b 0d 0a 7d pIn, UINT n);..} 0ad0: 0d 0a 0d 0a 66 6c 6f 61 74 20 44 33 44 58 56 65 ....float D3DXVe 0ae0: 63 32 4c 65 6e 67 74 68 28 44 33 44 58 56 45 43 c2Length(D3DXVEC 0af0: 54 4f 52 32 2a 20 70 56 29 20 7b 0d 0a 09 64 65 TOR2* pV) {...de 0b00: 62 75 67 28 44 33 44 58 31 30 5f 44 45 42 55 47 bug(D3DX10_DEBUG 0b10: 29 20 7b 0d 0a 09 09 69 66 20 28 70 56 20 69 73 ) {....if (pV is 0b20: 20 6e 75 6c 6c 29 20 72 65 74 75 72 6e 20 30 2e null) return 0. 0b30: 30 3b 0d 0a 09 7d 0d 0a 09 72 65 74 75 72 6e 20 0;...}...return 0b40: 73 71 72 74 66 28 28 70 56 2e 78 20 2a 20 70 56 sqrtf((pV.x * pV 0b50: 2e 78 29 20 2b 20 28 70 56 2e 79 20 2a 20 70 56 .x) + (pV.y * pV 0b60: 2e 79 29 29 3b 0d 0a 7d 0d 0a 0d 0a 66 6c 6f 61 .y));..}....floa 0b70: 74 20 44 33 44 58 56 65 63 32 4c 65 6e 67 74 68 t D3DXVec2Length 0b80: 53 71 28 44 33 44 58 56 45 43 54 4f 52 32 2a 20 Sq(D3DXVECTOR2* 0b90: 70 56 29 20 7b 0d 0a 09 64 65 62 75 67 28 44 33 pV) {...debug(D3 0ba0: 44 58 31 30 5f 44 45 42 55 47 29 20 7b 0d 0a 09 DX10_DEBUG) {... 0bb0: 09 69 66 20 28 70 56 20 69 73 20 6e 75 6c 6c 29 .if (pV is null) 0bc0: 20 72 65 74 75 72 6e 20 30 2e 30 3b 0d 0a 09 7d return 0.0;...} 0bd0: 0d 0a 09 72 65 74 75 72 6e 20 28 70 56 2e 78 20 ...return (pV.x 0be0: 2a 20 70 56 2e 78 29 20 2b 20 28 70 56 2e 79 20 * pV.x) + (pV.y 0bf0: 2a 20 70 56 2e 79 29 3b 0d 0a 7d 0d 0a 0d 0a 66 * pV.y);..}....f 0c00: 6c 6f 61 74 20 44 33 44 58 56 65 63 32 44 6f 74 loat D3DXVec2Dot 0c10: 28 44 33 44 58 56 45 43 54 4f 52 32 2a 20 70 56 (D3DXVECTOR2* pV 0c20: 31 2c 20 44 33 44 58 56 45 43 54 4f 52 32 2a 20 1, D3DXVECTOR2* 0c30: 70 56 32 29 20 7b 0d 0a 09 64 65 62 75 67 28 44 pV2) {...debug(D 0c40: 33 44 58 31 30 5f 44 45 42 55 47 29 20 7b 0d 0a 3DX10_DEBUG) {.. 0c50: 09 09 69 66 20 28 28 70 56 31 20 69 73 20 6e 75 ..if ((pV1 is nu 0c60: 6c 6c 29 20 7c 7c 20 28 70 56 32 20 69 73 20 6e ll) || (pV2 is n 0c70: 75 6c 6c 29 29 20 72 65 74 75 72 6e 20 30 2e 30 ull)) return 0.0 0c80: 3b 0d 0a 09 7d 0d 0a 09 72 65 74 75 72 6e 20 28 ;...}...return ( 0c90: 70 56 31 2e 78 20 2a 20 70 56 32 2e 78 29 20 2b pV1.x * pV2.x) + 0ca0: 20 28 70 56 31 2e 79 20 2a 20 70 56 32 2e 79 29 (pV1.y * pV2.y) 0cb0: 3b 0d 0a 7d 0d 0a 0d 0a 66 6c 6f 61 74 20 44 33 ;..}....float D3 0cc0: 44 58 56 65 63 32 43 43 57 28 44 33 44 58 56 45 DXVec2CCW(D3DXVE 0cd0: 43 54 4f 52 32 2a 20 70 56 31 2c 20 44 33 44 58 CTOR2* pV1, D3DX 0ce0: 56 45 43 54 4f 52 32 2a 20 70 56 32 29 20 7b 0d VECTOR2* pV2) {. 0cf0: 0a 09 64 65 62 75 67 28 44 33 44 58 31 30 5f 44 ..debug(D3DX10_D 0d00: 45 42 55 47 29 20 7b 0d 0a 09 09 69 66 20 28 28 EBUG) {....if (( 0d10: 70 56 31 20 69 73 20 6e 75 6c 6c 29 20 7c 7c 20 pV1 is null) || 0d20: 28 70 56 32 20 69 73 20 6e 75 6c 6c 29 29 20 72 (pV2 is null)) r 0d30: 65 74 75 72 6e 20 30 2e 30 3b 0d 0a 09 7d 0d 0a eturn 0.0;...}.. 0d40: 09 72 65 74 75 72 6e 20 28 70 56 31 2e 78 20 2a .return (pV1.x * 0d50: 20 70 56 32 2e 79 29 20 2b 20 28 70 56 31 2e 79 pV2.y) + (pV1.y 0d60: 20 2a 20 70 56 32 2e 78 29 3b 0d 0a 7d 0d 0a 0d * pV2.x);..}... 0d70: 0a 44 33 44 58 56 45 43 54 4f 52 32 2a 20 44 33 .D3DXVECTOR2* D3 0d80: 44 58 56 65 63 32 41 64 64 28 44 33 44 58 56 45 DXVec2Add(D3DXVE 0d90: 43 54 4f 52 32 2a 20 70 4f 75 74 2c 20 44 33 44 CTOR2* pOut, D3D 0da0: 58 56 45 43 54 4f 52 32 2a 20 70 56 31 2c 20 44 XVECTOR2* pV1, D 0db0: 33 44 58 56 45 43 54 4f 52 32 2a 20 70 56 32 29 3DXVECTOR2* pV2) 0dc0: 20 7b 0d 0a 09 64 65 62 75 67 28 44 33 44 58 31 {...debug(D3DX1 0dd0: 30 5f 44 45 42 55 47 29 20 7b 0d 0a 09 09 69 66 0_DEBUG) {....if 0de0: 20 28 28 70 4f 75 74 20 69 73 20 6e 75 6c 6c 29 ((pOut is null) 0df0: 20 7c 7c 20 28 70 56 31 20 69 73 20 6e 75 6c 6c || (pV1 is null 0e00: 29 20 7c 7c 20 28 70 56 32 20 69 73 20 6e 75 6c ) || (pV2 is nul 0e10: 6c 29 29 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b l)) return null; 0e20: 0d 0a 09 7d 0d 0a 09 70 4f 75 74 2e 78 20 3d 20 ...}...pOut.x = 0e30: 70 56 31 2e 78 20 2b 20 70 56 32 2e 78 3b 0d 0a pV1.x + pV2.x;.. 0e40: 09 70 4f 75 74 2e 79 20 3d 20 70 56 31 2e 79 20 .pOut.y = pV1.y 0e50: 2b 20 70 56 32 2e 79 3b 0d 0a 09 72 65 74 75 72 + pV2.y;...retur 0e60: 6e 20 70 4f 75 74 3b 0d 0a 7d 0d 0a 0d 0a 44 33 n pOut;..}....D3 0e70: 44 58 56 45 43 54 4f 52 32 2a 20 44 33 44 58 56 DXVECTOR2* D3DXV 0e80: 65 63 32 53 75 62 74 72 61 63 74 28 44 33 44 58 ec2Subtract(D3DX 0e90: 56 45 43 54 4f 52 32 2a 20 70 4f 75 74 2c 20 44 VECTOR2* pOut, D 0ea0: 33 44 58 56 45 43 54 4f 52 32 2a 20 70 56 31 2c 3DXVECTOR2* pV1, 0eb0: 20 44 33 44 58 56 45 43 54 4f 52 32 2a 20 70 56 D3DXVECTOR2* pV 0ec0: 32 29 20 7b 0d 0a 09 64 65 62 75 67 28 44 33 44 2) {...debug(D3D 0ed0: 58 31 30 5f 44 45 42 55 47 29 20 7b 0d 0a 09 09 X10_DEBUG) {.... 0ee0: 69 66 20 28 28 70 4f 75 74 20 69 73 20 6e 75 6c if ((pOut is nul 0ef0: 6c 29 20 7c 7c 20 28 70 56 31 20 69 73 20 6e 75 l) || (pV1 is nu 0f00: 6c 6c 29 20 7c 7c 20 28 70 56 32 20 69 73 20 6e ll) || (pV2 is n 0f10: 75 6c 6c 29 29 20 72 65 74 75 72 6e 20 6e 75 6c ull)) return nul 0f20: 6c 3b 0d 0a 09 7d 0d 0a 09 70 4f 75 74 2e 78 20 l;...}...pOut.x 0f30: 3d 20 70 56 31 2e 78 20 2d 20 70 56 32 2e 78 3b = pV1.x - pV2.x; 0f40: 0d 0a 09 70 4f 75 74 2e 79 20 3d 20 70 56 31 2e ...pOut.y = pV1. 0f50: 79 20 2d 20 70 56 32 2e 79 3b 0d 0a 09 72 65 74 y - pV2.y;...ret 0f60: 75 72 6e 20 70 4f 75 74 3b 0d 0a 7d 0d 0a 0d 0a urn pOut;..}.... 0f70: 44 33 44 58 56 45 43 54 4f 52 32 2a 20 44 33 44 D3DXVECTOR2* D3D 0f80: 58 56 65 63 32 4d 69 6e 69 6d 69 7a 65 28 44 33 XVec2Minimize(D3 0f90: 44 58 56 45 43 54 4f 52 32 2a 20 70 4f 75 74 2c DXVECTOR2* pOut, 0fa0: 20 44 33 44 58 56 45 43 54 4f 52 32 2a 20 70 56 D3DXVECTOR2* pV 0fb0: 31 2c 20 44 33 44 58 56 45 43 54 4f 52 32 2a 20 1, D3DXVECTOR2* 0fc0: 70 56 32 29 20 7b 0d 0a 09 64 65 62 75 67 28 44 pV2) {...debug(D 0fd0: 33 44 58 31 30 5f 44 45 42 55 47 29 20 7b 0d 0a 3DX10_DEBUG) {.. 0fe0: 09 09 69 66 20 28 28 70 4f 75 74 20 69 73 20 6e ..if ((pOut is n 0ff0: 75 6c 6c 29 20 7c 7c 20 28 70 56 31 20 69 73 20 ull) || (pV1 is 1000: 6e 75 6c 6c 29 20 7c 7c 20 28 70 56 32 20 69 73 null) || (pV2 is 1010: 20 6e 75 6c 6c 29 29 20 72 65 74 75 72 6e 20 6e null)) return n 1020: 75 6c 6c 3b 0d 0a 09 7d 0d 0a 09 70 4f 75 74 2e ull;...}...pOut. 1030: 78 20 3d 20 70 56 31 2e 78 20 3c 20 70 56 32 2e x = pV1.x < pV2. 1040: 78 20 3f 20 70 56 31 2e 78 20 3a 20 70 56 32 2e x ? pV1.x : pV2. 1050: 78 3b 0d 0a 09 70 4f 75 74 2e 79 20 3d 20 70 56 x;...pOut.y = pV 1060: 31 2e 79 20 3c 20 70 56 32 2e 79 20 3f 20 70 56 1.y < pV2.y ? pV 1070: 31 2e 79 20 3a 20 70 56 32 2e 79 3b 0d 0a 09 72 1.y : pV2.y;...r 1080: 65 74 75 72 6e 20 70 4f 75 74 3b 0d 0a 7d 0d 0a eturn pOut;..}.. 1090: 0d 0a 44 33 44 58 56 45 43 54 4f 52 32 2a 20 44 ..D3DXVECTOR2* D 10a0: 33 44 58 56 65 63 32 4d 61 78 69 6d 69 7a 65 28 3DXVec2Maximize( 10b0: 44 33 44 58 56 45 43 54 4f 52 32 2a 20 70 4f 75 D3DXVECTOR2* pOu 10c0: 74 2c 20 44 33 44 58 56 45 43 54 4f 52 32 2a 20 t, D3DXVECTOR2* 10d0: 70 56 31 2c 20 44 33 44 58 56 45 43 54 4f 52 32 pV1, D3DXVECTOR2 10e0: 2a 20 70 56 32 29 20 7b 0d 0a 09 64 65 62 75 67 * pV2) {...debug 10f0: 28 44 33 44 58 31 30 5f 44 45 42 55 47 29 20 7b (D3DX10_DEBUG) { 1100: 0d 0a 09 09 69 66 20 28 28 70 4f 75 74 20 69 73 ....if ((pOut is 1110: 20 6e 75 6c 6c 29 20 7c 7c 20 28 70 56 31 20 69 null) || (pV1 i 1120: 73 20 6e 75 6c 6c 29 20 7c 7c 20 28 70 56 32 20 s null) || (pV2 1130: 69 73 20 6e 75 6c 6c 29 29 20 72 65 74 75 72 6e is null)) return 1140: 20 6e 75 6c 6c 3b 0d 0a 09 7d 0d 0a 09 70 4f 75 null;...}...pOu 1150: 74 2e 78 20 3d 20 70 56 31 2e 78 20 3e 20 70 56 t.x = pV1.x > pV 1160: 32 2e 78 20 3f 20 70 56 31 2e 78 20 3a 20 70 56 2.x ? pV1.x : pV 1170: 32 2e 78 3b 0d 0a 09 70 4f 75 74 2e 79 20 3d 20 2.x;...pOut.y = 1180: 70 56 31 2e 79 20 3e 20 70 56 32 2e 79 20 3f 20 pV1.y > pV2.y ? 1190: 70 56 31 2e 79 20 3a 20 70 56 32 2e 79 3b 0d 0a pV1.y : pV2.y;.. 11a0: 09 72 65 74 75 72 6e 20 70 4f 75 74 3b 0d 0a 7d .return pOut;..} 11b0: 0d 0a 0d 0a 44 33 44 58 56 45 43 54 4f 52 32 2a ....D3DXVECTOR2* 11c0: 20 44 33 44 58 56 65 63 32 53 63 61 6c 65 28 44 D3DXVec2Scale(D 11d0: 33 44 58 56 45 43 54 4f 52 32 2a 20 70 4f 75 74 3DXVECTOR2* pOut 11e0: 2c 20 44 33 44 58 56 45 43 54 4f 52 32 2a 20 70 , D3DXVECTOR2* p 11f0: 56 2c 20 66 6c 6f 61 74 20 73 29 20 7b 0d 0a 09 V, float s) {... 1200: 64 65 62 75 67 28 44 33 44 58 31 30 5f 44 45 42 debug(D3DX10_DEB 1210: 55 47 29 20 7b 0d 0a 09 09 69 66 20 28 28 70 4f UG) {....if ((pO 1220: 75 74 20 69 73 20 6e 75 6c 6c 29 20 7c 7c 20 28 ut is null) || ( 1230: 70 56 20 69 73 20 6e 75 6c 6c 29 29 20 72 65 74 pV is null)) ret 1240: 75 72 6e 20 6e 75 6c 6c 3b 0d 0a 09 7d 0d 0a 09 urn null;...}... 1250: 70 4f 75 74 2e 78 20 3d 20 70 56 2e 78 20 2a 20 pOut.x = pV.x * 1260: 73 3b 0d 0a 09 70 4f 75 74 2e 79 20 3d 20 70 56 s;...pOut.y = pV 1270: 2e 79 20 2a 20 73 3b 0d 0a 09 72 65 74 75 72 6e .y * s;...return 1280: 20 70 4f 75 74 3b 0d 0a 7d 0d 0a 0d 0a 44 33 44 pOut;..}....D3D 1290: 58 56 45 43 54 4f 52 32 2a 20 44 33 44 58 56 65 XVECTOR2* D3DXVe 12a0: 63 32 4c 65 72 70 28 44 33 44 58 56 45 43 54 4f c2Lerp(D3DXVECTO 12b0: 52 32 2a 20 70 4f 75 74 2c 20 44 33 44 58 56 45 R2* pOut, D3DXVE 12c0: 43 54 4f 52 32 2a 20 70 56 31 2c 20 44 33 44 58 CTOR2* pV1, D3DX 12d0: 56 45 43 54 4f 52 32 2a 20 70 56 32 2c 20 66 6c VECTOR2* pV2, fl 12e0: 6f 61 74 20 73 29 20 7b 0d 0a 09 64 65 62 75 67 oat s) {...debug 12f0: 28 44 33 44 58 31 30 5f 44 45 42 55 47 29 20 7b (D3DX10_DEBUG) { 1300: 0d 0a 09 09 69 66 20 28 28 70 4f 75 74 20 69 73 ....if ((pOut is 1310: 20 6e 75 6c 6c 29 20 7c 7c 20 28 70 56 31 20 69 null) || (pV1 i 1320: 73 20 6e 75 6c 6c 29 20 7c 7c 20 28 70 56 32 20 s null) || (pV2 1330: 69 73 20 6e 75 6c 6c 29 29 20 72 65 74 75 72 6e is null)) return 1340: 20 6e 75 6c 6c 3b 0d 0a 09 7d 0d 0a 09 70 4f 75 null;...}...pOu 1350: 74 2e 78 20 3d 20 70 56 31 2e 78 20 2b 20 73 20 t.x = pV1.x + s 1360: 2a 20 28 70 56 32 2e 78 20 2d 20 70 56 31 2e 78 * (pV2.x - pV1.x 1370: 29 3b 0d 0a 09 70 4f 75 74 2e 79 20 3d 20 70 56 );...pOut.y = pV 1380: 31 2e 79 20 2b 20 73 20 2a 20 28 70 56 32 2e 79 1.y + s * (pV2.y 1390: 20 2d 20 70 56 31 2e 79 29 3b 0d 0a 09 72 65 74 - pV1.y);...ret 13a0: 75 72 6e 20 70 4f 75 74 3b 0d 0a 7d 0d 0a 0d 0a urn pOut;..}.... 13b0: 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 extern(Windows) 13c0: 7b 0d 0a 09 44 33 44 58 56 45 43 54 4f 52 32 2a {...D3DXVECTOR2* 13d0: 20 44 33 44 58 56 65 63 32 4e 6f 72 6d 61 6c 69 D3DXVec2Normali 13e0: 7a 65 28 44 33 44 58 56 45 43 54 4f 52 32 2a 20 ze(D3DXVECTOR2* 13f0: 70 4f 75 74 2c 20 44 33 44 58 56 45 43 54 4f 52 pOut, D3DXVECTOR 1400: 32 2a 20 70 56 29 3b 0d 0a 09 44 33 44 58 56 45 2* pV);...D3DXVE 1410: 43 54 4f 52 32 2a 20 44 33 44 58 56 65 63 32 48 CTOR2* D3DXVec2H 1420: 65 72 6d 69 74 65 28 44 33 44 58 56 45 43 54 4f ermite(D3DXVECTO 1430: 52 32 2a 20 70 4f 75 74 2c 20 44 33 44 58 56 45 R2* pOut, D3DXVE 1440: 43 54 4f 52 32 2a 20 70 56 31 2c 20 44 33 44 58 CTOR2* pV1, D3DX 1450: 56 45 43 54 4f 52 32 2a 20 70 54 31 2c 20 44 33 VECTOR2* pT1, D3 1460: 44 58 56 45 43 54 4f 52 32 2a 20 70 56 32 2c 20 DXVECTOR2* pV2, 1470: 44 33 44 58 56 45 43 54 4f 52 32 2a 20 70 54 32 D3DXVECTOR2* pT2 1480: 2c 20 66 6c 6f 61 74 20 73 29 3b 0d 0a 09 44 33 , float s);...D3 1490: 44 58 56 45 43 54 4f 52 32 2a 20 44 33 44 58 56 DXVECTOR2* D3DXV 14a0: 65 63 32 43 61 74 6d 75 6c 6c 52 6f 6d 28 44 33 ec2CatmullRom(D3 14b0: 44 58 56 45 43 54 4f 52 32 2a 20 70 4f 75 74 2c DXVECTOR2* pOut, 14c0: 20 44 33 44 58 56 45 43 54 4f 52 32 2a 20 70 56 D3DXVECTOR2* pV 14d0: 30 2c 20 44 33 44 58 56 45 43 54 4f 52 32 2a 20 0, D3DXVECTOR2* 14e0: 70 56 31 2c 20 44 33 44 58 56 45 43 54 4f 52 32 pV1, D3DXVECTOR2 14f0: 2a 20 70 56 32 2c 20 44 33 44 58 56 45 43 54 4f * pV2, D3DXVECTO 1500: 52 32 2a 20 70 56 33 2c 20 66 6c 6f 61 74 20 73 R2* pV3, float s 1510: 29 3b 0d 0a 09 44 33 44 58 56 45 43 54 4f 52 32 );...D3DXVECTOR2 1520: 2a 20 44 33 44 58 56 65 63 32 42 61 72 79 43 65 * D3DXVec2BaryCe 1530: 6e 74 72 69 63 28 44 33 44 58 56 45 43 54 4f 52 ntric(D3DXVECTOR 1540: 32 2a 20 70 4f 75 74 2c 20 44 33 44 58 56 45 43 2* pOut, D3DXVEC 1550: 54 4f 52 32 2a 20 70 56 31 2c 20 44 33 44 58 56 TOR2* pV1, D3DXV 1560: 45 43 54 4f 52 32 2a 20 70 56 32 2c 20 44 33 44 ECTOR2* pV2, D3D 1570: 58 56 45 43 54 4f 52 32 2a 20 70 56 33 2c 20 66 XVECTOR2* pV3, f 1580: 6c 6f 61 74 20 66 2c 20 66 6c 6f 61 74 20 67 29 loat f, float g) 1590: 3b 0d 0a 09 44 33 44 58 56 45 43 54 4f 52 34 2a ;...D3DXVECTOR4* 15a0: 20 44 33 44 58 56 65 63 32 54 72 61 6e 73 66 6f D3DXVec2Transfo 15b0: 72 6d 28 44 33 44 58 56 45 43 54 4f 52 34 2a 20 rm(D3DXVECTOR4* 15c0: 70 4f 75 74 2c 20 44 33 44 58 56 45 43 54 4f 52 pOut, D3DXVECTOR 15d0: 32 2a 20 70 56 2c 20 44 33 44 58 4d 41 54 52 49 2* pV, D3DXMATRI 15e0: 58 2a 20 70 4d 29 3b 0d 0a 09 44 33 44 58 56 45 X* pM);...D3DXVE 15f0: 43 54 4f 52 32 2a 20 44 33 44 58 56 65 63 32 54 CTOR2* D3DXVec2T 1600: 72 61 6e 73 66 6f 72 6d 43 6f 6f 72 64 28 44 33 ransformCoord(D3 1610: 44 58 56 45 43 54 4f 52 32 2a 20 70 4f 75 74 2c DXVECTOR2* pOut, 1620: 20 44 33 44 58 56 45 43 54 4f 52 32 2a 20 70 56 D3DXVECTOR2* pV 1630: 2c 20 44 33 44 58 4d 41 54 52 49 58 2a 20 70 4d , D3DXMATRIX* pM 1640: 29 3b 0d 0a 09 44 33 44 58 56 45 43 54 4f 52 32 );...D3DXVECTOR2 1650: 2a 20 44 33 44 58 56 65 63 32 54 72 61 6e 73 66 * D3DXVec2Transf 1660: 6f 72 6d 4e 6f 72 6d 61 6c 28 44 33 44 58 56 45 ormNormal(D3DXVE 1670: 43 54 4f 52 32 2a 20 70 4f 75 74 2c 20 44 33 44 CTOR2* pOut, D3D 1680: 58 56 45 43 54 4f 52 32 2a 20 70 56 2c 20 44 33 XVECTOR2* pV, D3 1690: 44 58 4d 41 54 52 49 58 2a 20 70 4d 29 3b 0d 0a DXMATRIX* pM);.. 16a0: 09 44 33 44 58 56 45 43 54 4f 52 34 2a 20 44 33 .D3DXVECTOR4* D3 16b0: 44 58 56 65 63 32 54 72 61 6e 73 66 6f 72 6d 41 DXVec2TransformA 16c0: 72 72 61 79 28 44 33 44 58 56 45 43 54 4f 52 34 rray(D3DXVECTOR4 16d0: 2a 20 70 4f 75 74 2c 20 55 49 4e 54 20 4f 75 74 * pOut, UINT Out 16e0: 53 74 72 69 64 65 2c 20 44 33 44 58 56 45 43 54 Stride, D3DXVECT 16f0: 4f 52 32 2a 20 70 56 2c 20 55 49 4e 54 20 56 53 OR2* pV, UINT VS 1700: 74 72 69 64 65 2c 20 44 33 44 58 4d 41 54 52 49 tride, D3DXMATRI 1710: 58 2a 20 70 4d 2c 20 55 49 4e 54 20 6e 29 3b 0d X* pM, UINT n);. 1720: 0a 09 44 33 44 58 56 45 43 54 4f 52 32 2a 20 44 ..D3DXVECTOR2* D 1730: 33 44 58 56 65 63 32 54 72 61 6e 73 66 6f 72 6d 3DXVec2Transform 1740: 43 6f 6f 72 64 41 72 72 61 79 28 44 33 44 58 56 CoordArray(D3DXV 1750: 45 43 54 4f 52 32 2a 20 70 4f 75 74 2c 20 55 49 ECTOR2* pOut, UI 1760: 4e 54 20 4f 75 74 53 74 72 69 64 65 2c 20 44 33 NT OutStride, D3 1770: 44 58 56 45 43 54 4f 52 32 2a 20 70 56 2c 20 55 DXVECTOR2* pV, U 1780: 49 4e 54 20 56 53 74 72 69 64 65 2c 20 44 33 44 INT VStride, D3D 1790: 58 4d 41 54 52 49 58 2a 20 70 4d 2c 20 55 49 4e XMATRIX* pM, UIN 17a0: 54 20 6e 29 3b 0d 0a 09 44 33 44 58 56 45 43 54 T n);...D3DXVECT 17b0: 4f 52 32 2a 20 44 33 44 58 56 65 63 32 54 72 61 OR2* D3DXVec2Tra 17c0: 6e 73 66 6f 72 6d 4e 6f 72 6d 61 6c 41 72 72 61 nsformNormalArra 17d0: 79 28 44 33 44 58 56 45 43 54 4f 52 32 2a 20 70 y(D3DXVECTOR2* p 17e0: 4f 75 74 2c 20 55 49 4e 54 20 4f 75 74 53 74 72 Out, UINT OutStr 17f0: 69 64 65 2c 20 44 33 44 58 56 45 43 54 4f 52 32 ide, D3DXVECTOR2 1800: 2a 20 70 56 2c 20 55 49 4e 54 20 56 53 74 72 69 * pV, UINT VStri 1810: 64 65 2c 20 44 33 44 58 4d 41 54 52 49 58 2a 20 de, D3DXMATRIX* 1820: 70 4d 2c 20 55 49 4e 54 20 6e 29 3b 0d 0a 7d 0d pM, UINT n);..}. 1830: 0a 0d 0a 66 6c 6f 61 74 20 44 33 44 58 56 65 63 ...float D3DXVec 1840: 33 4c 65 6e 67 74 68 28 44 33 44 58 56 45 43 54 3Length(D3DXVECT 1850: 4f 52 33 2a 20 70 56 29 20 7b 0d 0a 09 64 65 62 OR3* pV) {...deb 1860: 75 67 28 44 33 44 58 31 30 5f 44 45 42 55 47 29 ug(D3DX10_DEBUG) 1870: 20 7b 0d 0a 09 09 69 66 20 28 70 56 20 69 73 20 {....if (pV is 1880: 6e 75 6c 6c 29 20 72 65 74 75 72 6e 20 30 2e 30 null) return 0.0 1890: 3b 0d 0a 09 7d 0d 0a 09 72 65 74 75 72 6e 20 73 ;...}...return s 18a0: 71 72 74 66 28 28 70 56 2e 78 20 2a 20 70 56 2e qrtf((pV.x * pV. 18b0: 78 29 20 2b 20 28 70 56 2e 79 20 2a 20 70 56 2e x) + (pV.y * pV. 18c0: 79 29 20 2b 20 28 70 56 2e 7a 20 2a 20 70 56 2e y) + (pV.z * pV. 18d0: 7a 29 29 3b 0d 0a 7d 0d 0a 0d 0a 66 6c 6f 61 74 z));..}....float 18e0: 20 44 33 44 58 56 65 63 33 4c 65 6e 67 74 68 53 D3DXVec3LengthS 18f0: 71 28 44 33 44 58 56 45 43 54 4f 52 33 2a 20 70 q(D3DXVECTOR3* p 1900: 56 29 20 7b 0d 0a 09 64 65 62 75 67 28 44 33 44 V) {...debug(D3D 1910: 58 31 30 5f 44 45 42 55 47 29 20 7b 0d 0a 09 09 X10_DEBUG) {.... 1920: 69 66 20 28 70 56 20 69 73 20 6e 75 6c 6c 29 20 if (pV is null) 1930: 72 65 74 75 72 6e 20 30 2e 30 3b 0d 0a 09 7d 0d return 0.0;...}. 1940: 0a 09 72 65 74 75 72 6e 20 28 70 56 2e 78 20 2a ..return (pV.x * 1950: 20 70 56 2e 78 29 20 2b 20 28 70 56 2e 79 20 2a pV.x) + (pV.y * 1960: 20 70 56 2e 79 29 20 2b 20 28 70 56 2e 7a 20 2a pV.y) + (pV.z * 1970: 20 70 56 2e 7a 29 3b 0d 0a 7d 0d 0a 0d 0a 66 6c pV.z);..}....fl 1980: 6f 61 74 20 44 33 44 58 56 65 63 33 44 6f 74 28 oat D3DXVec3Dot( 1990: 44 33 44 58 56 45 43 54 4f 52 33 2a 20 70 56 31 D3DXVECTOR3* pV1 19a0: 2c 20 44 33 44 58 56 45 43 54 4f 52 33 2a 20 70 , D3DXVECTOR3* p 19b0: 56 32 29 20 7b 0d 0a 09 64 65 62 75 67 28 44 33 V2) {...debug(D3 19c0: 44 58 31 30 5f 44 45 42 55 47 29 20 7b 0d 0a 09 DX10_DEBUG) {... 19d0: 09 69 66 20 28 28 70 56 31 20 69 73 20 6e 75 6c .if ((pV1 is nul 19e0: 6c 29 20 7c 7c 20 28 70 56 32 20 69 73 20 6e 75 l) || (pV2 is nu 19f0: 6c 6c 29 29 20 72 65 74 75 72 6e 20 30 2e 30 3b ll)) return 0.0; 1a00: 0d 0a 09 7d 0d 0a 09 72 65 74 75 72 6e 20 28 70 ...}...return (p 1a10: 56 31 2e 78 20 2a 20 70 56 32 2e 78 29 20 2b 20 V1.x * pV2.x) + 1a20: 28 70 56 31 2e 79 20 2a 20 70 56 32 2e 79 29 20 (pV1.y * pV2.y) 1a30: 2b 20 28 70 56 31 2e 7a 20 2a 20 70 56 32 2e 7a + (pV1.z * pV2.z 1a40: 29 3b 0d 0a 7d 0d 0a 0d 0a 44 33 44 58 56 45 43 );..}....D3DXVEC 1a50: 54 4f 52 33 2a 20 44 33 44 58 56 65 63 33 43 72 TOR3* D3DXVec3Cr 1a60: 6f 73 73 28 44 33 44 58 56 45 43 54 4f 52 33 2a oss(D3DXVECTOR3* 1a70: 20 70 4f 75 74 2c 20 44 33 44 58 56 45 43 54 4f pOut, D3DXVECTO 1a80: 52 33 2a 20 70 56 31 2c 20 44 33 44 58 56 45 43 R3* pV1, D3DXVEC 1a90: 54 4f 52 33 2a 20 70 56 32 29 20 7b 0d 0a 09 64 TOR3* pV2) {...d 1aa0: 65 62 75 67 28 44 33 44 58 31 30 5f 44 45 42 55 ebug(D3DX10_DEBU 1ab0: 47 29 20 7b 0d 0a 09 09 69 66 20 28 28 70 4f 75 G) {....if ((pOu 1ac0: 74 20 69 73 20 6e 75 6c 6c 29 20 7c 7c 20 28 70 t is null) || (p 1ad0: 56 31 20 69 73 20 6e 75 6c 6c 29 20 7c 7c 20 28 V1 is null) || ( 1ae0: 70 56 32 20 69 73 20 6e 75 6c 6c 29 29 20 72 65 pV2 is null)) re 1af0: 74 75 72 6e 20 30 2e 30 3b 0d 0a 09 7d 0d 0a 09 turn 0.0;...}... 1b00: 44 33 44 58 56 45 43 54 4f 52 33 20 76 3b 0d 0a D3DXVECTOR3 v;.. 1b10: 09 76 2e 78 20 3d 20 28 70 56 31 2e 79 20 2a 20 .v.x = (pV1.y * 1b20: 70 56 32 2e 7a 29 20 2d 20 28 70 56 31 2e 7a 20 pV2.z) - (pV1.z 1b30: 2a 20 70 56 32 2e 79 29 3b 0d 0a 09 76 2e 79 20 * pV2.y);...v.y 1b40: 3d 20 28 70 56 31 2e 7a 20 2a 20 70 56 32 2e 78 = (pV1.z * pV2.x 1b50: 29 20 2d 20 28 70 56 31 2e 78 20 2a 20 70 56 32 ) - (pV1.x * pV2 1b60: 2e 7a 29 3b 0d 0a 09 76 2e 7a 20 3d 20 28 70 56 .z);...v.z = (pV 1b70: 31 2e 78 20 2a 20 70 56 32 2e 79 29 20 2d 20 28 1.x * pV2.y) - ( 1b80: 70 56 31 2e 79 20 2a 20 70 56 32 2e 78 29 3b 0d pV1.y * pV2.x);. 1b90: 0a 09 2a 70 4f 75 74 20 3d 20 76 3b 0d 0a 09 72 ..*pOut = v;...r 1ba0: 65 74 75 72 6e 20 70 4f 75 74 3b 0d 0a 7d 0d 0a eturn pOut;..}.. 1bb0: 0d 0a 44 33 44 58 56 45 43 54 4f 52 33 2a 20 44 ..D3DXVECTOR3* D 1bc0: 33 44 58 56 65 63 33 41 64 64 28 44 33 44 58 56 3DXVec3Add(D3DXV 1bd0: 45 43 54 4f 52 33 2a 20 70 4f 75 74 2c 20 44 33 ECTOR3* pOut, D3 1be0: 44 58 56 45 43 54 4f 52 33 2a 20 70 56 31 2c 20 DXVECTOR3* pV1, 1bf0: 44 33 44 58 56 45 43 54 4f 52 33 2a 20 70 56 32 D3DXVECTOR3* pV2 1c00: 29 20 7b 0d 0a 09 64 65 62 75 67 28 44 33 44 58 ) {...debug(D3DX 1c10: 31 30 5f 44 45 42 55 47 29 20 7b 0d 0a 09 09 69 10_DEBUG) {....i 1c20: 66 20 28 28 70 4f 75 74 20 69 73 20 6e 75 6c 6c f ((pOut is null 1c30: 29 20 7c 7c 20 28 70 56 31 20 69 73 20 6e 75 6c ) || (pV1 is nul 1c40: 6c 29 20 7c 7c 20 28 70 56 32 20 69 73 20 6e 75 l) || (pV2 is nu 1c50: 6c 6c 29 29 20 72 65 74 75 72 6e 20 6e 75 6c 6c ll)) return null 1c60: 3b 0d 0a 09 7d 0d 0a 09 70 4f 75 74 2e 78 20 3d ;...}...pOut.x = 1c70: 20 70 56 31 2e 78 20 2b 20 70 56 32 2e 78 3b 0d pV1.x + pV2.x;. 1c80: 0a 09 70 4f 75 74 2e 79 20 3d 20 70 56 31 2e 79 ..pOut.y = pV1.y 1c90: 20 2b 20 70 56 32 2e 79 3b 0d 0a 09 70 4f 75 74 + pV2.y;...pOut 1ca0: 2e 7a 20 3d 20 70 56 31 2e 7a 20 2b 20 70 56 32 .z = pV1.z + pV2 1cb0: 2e 7a 3b 0d 0a 09 72 65 74 75 72 6e 20 70 4f 75 .z;...return pOu 1cc0: 74 3b 0d 0a 7d 0d 0a 0d 0a 44 33 44 58 56 45 43 t;..}....D3DXVEC 1cd0: 54 4f 52 33 2a 20 44 33 44 58 56 65 63 33 53 75 TOR3* D3DXVec3Su 1ce0: 62 74 72 61 63 74 28 44 33 44 58 56 45 43 54 4f btract(D3DXVECTO 1cf0: 52 33 2a 20 70 4f 75 74 2c 20 44 33 44 58 56 45 R3* pOut, D3DXVE 1d00: 43 54 4f 52 33 2a 20 70 56 31 2c 20 44 33 44 58 CTOR3* pV1, D3DX 1d10: 56 45 43 54 4f 52 33 2a 20 70 56 32 29 20 7b 0d VECTOR3* pV2) {. 1d20: 0a 09 64 65 62 75 67 28 44 33 44 58 31 30 5f 44 ..debug(D3DX10_D 1d30: 45 42 55 47 29 20 7b 0d 0a 09 09 69 66 20 28 28 EBUG) {....if (( 1d40: 70 4f 75 74 20 69 73 20 6e 75 6c 6c 29 20 7c 7c pOut is null) || 1d50: 20 28 70 56 31 20 69 73 20 6e 75 6c 6c 29 20 7c (pV1 is null) | 1d60: 7c 20 28 70 56 32 20 69 73 20 6e 75 6c 6c 29 29 | (pV2 is null)) 1d70: 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0d 0a 09 return null;... 1d80: 7d 0d 0a 09 70 4f 75 74 2e 78 20 3d 20 70 56 31 }...pOut.x = pV1 1d90: 2e 78 20 2d 20 70 56 32 2e 78 3b 0d 0a 09 70 4f .x - pV2.x;...pO 1da0: 75 74 2e 79 20 3d 20 70 56 31 2e 79 20 2d 20 70 ut.y = pV1.y - p 1db0: 56 32 2e 79 3b 0d 0a 09 70 4f 75 74 2e 7a 20 3d V2.y;...pOut.z = 1dc0: 20 70 56 31 2e 7a 20 2d 20 70 56 32 2e 7a 3b 0d pV1.z - pV2.z;. 1dd0: 0a 09 72 65 74 75 72 6e 20 70 4f 75 74 3b 0d 0a ..return pOut;.. 1de0: 7d 0d 0a 0d 0a 44 33 44 58 56 45 43 54 4f 52 33 }....D3DXVECTOR3 1df0: 2a 20 44 33 44 58 56 65 63 33 4d 69 6e 69 6d 69 * D3DXVec3Minimi 1e00: 7a 65 28 44 33 44 58 56 45 43 54 4f 52 33 2a 20 ze(D3DXVECTOR3* 1e10: 70 4f 75 74 2c 20 44 33 44 58 56 45 43 54 4f 52 pOut, D3DXVECTOR 1e20: 33 2a 20 70 56 31 2c 20 44 33 44 58 56 45 43 54 3* pV1, D3DXVECT 1e30: 4f 52 33 2a 20 70 56 32 29 20 7b 0d 0a 09 64 65 OR3* pV2) {...de 1e40: 62 75 67 28 44 33 44 58 31 30 5f 44 45 42 55 47 bug(D3DX10_DEBUG 1e50: 29 20 7b 0d 0a 09 09 69 66 20 28 28 70 4f 75 74 ) {....if ((pOut 1e60: 20 69 73 20 6e 75 6c 6c 29 20 7c 7c 20 28 70 56 is null) || (pV 1e70: 31 20 69 73 20 6e 75 6c 6c 29 20 7c 7c 20 28 70 1 is null) || (p 1e80: 56 32 20 69 73 20 6e 75 6c 6c 29 29 20 72 65 74 V2 is null)) ret 1e90: 75 72 6e 20 6e 75 6c 6c 3b 0d 0a 09 7d 0d 0a 09 urn null;...}... 1ea0: 70 4f 75 74 2e 78 20 3d 20 70 56 31 2e 78 20 3c pOut.x = pV1.x < 1eb0: 20 70 56 32 2e 78 20 3f 20 70 56 31 2e 78 20 3a pV2.x ? pV1.x : 1ec0: 20 70 56 32 2e 78 3b 0d 0a 09 70 4f 75 74 2e 79 pV2.x;...pOut.y 1ed0: 20 3d 20 70 56 31 2e 79 20 3c 20 70 56 32 2e 79 = pV1.y < pV2.y 1ee0: 20 3f 20 70 56 31 2e 79 20 3a 20 70 56 32 2e 79 ? pV1.y : pV2.y 1ef0: 3b 0d 0a 09 70 4f 75 74 2e 7a 20 3d 20 70 56 31 ;...pOut.z = pV1 1f00: 2e 7a 20 3c 20 70 56 32 2e 7a 20 3f 20 70 56 31 .z < pV2.z ? pV1 1f10: 2e 7a 20 3a 20 70 56 32 2e 7a 3b 0d 0a 09 72 65 .z : pV2.z;...re 1f20: 74 75 72 6e 20 70 4f 75 74 3b 0d 0a 7d 0d 0a 0d turn pOut;..}... 1f30: 0a 44 33 44 58 56 45 43 54 4f 52 33 2a 20 44 33 .D3DXVECTOR3* D3 1f40: 44 58 56 65 63 33 4d 61 78 69 6d 69 7a 65 28 44 DXVec3Maximize(D 1f50: 33 44 58 56 45 43 54 4f 52 33 2a 20 70 4f 75 74 3DXVECTOR3* pOut 1f60: 2c 20 44 33 44 58 56 45 43 54 4f 52 33 2a 20 70 , D3DXVECTOR3* p 1f70: 56 31 2c 20 44 33 44 58 56 45 43 54 4f 52 33 2a V1, D3DXVECTOR3* 1f80: 20 70 56 32 29 20 7b 0d 0a 09 64 65 62 75 67 28 pV2) {...debug( 1f90: 44 33 44 58 31 30 5f 44 45 42 55 47 29 20 7b 0d D3DX10_DEBUG) {. 1fa0: 0a 09 09 69 66 20 28 28 70 4f 75 74 20 69 73 20 ...if ((pOut is 1fb0: 6e 75 6c 6c 29 20 7c 7c 20 28 70 56 31 20 69 73 null) || (pV1 is 1fc0: 20 6e 75 6c 6c 29 20 7c 7c 20 28 70 56 32 20 69 null) || (pV2 i 1fd0: 73 20 6e 75 6c 6c 29 29 20 72 65 74 75 72 6e 20 s null)) return 1fe0: 6e 75 6c 6c 3b 0d 0a 09 7d 0d 0a 09 70 4f 75 74 null;...}...pOut 1ff0: 2e 78 20 3d 20 70 56 31 2e 78 20 3e 20 70 56 32 .x = pV1.x > pV2 2000: 2e 78 20 3f 20 70 56 31 2e 78 20 3a 20 70 56 32 .x ? pV1.x : pV2 2010: 2e 78 3b 0d 0a 09 70 4f 75 74 2e 79 20 3d 20 70 .x;...pOut.y = p 2020: 56 31 2e 79 20 3e 20 70 56 32 2e 79 20 3f 20 70 V1.y > pV2.y ? p 2030: 56 31 2e 79 20 3a 20 70 56 32 2e 79 3b 0d 0a 09 V1.y : pV2.y;... 2040: 70 4f 75 74 2e 7a 20 3d 20 70 56 31 2e 7a 20 3e pOut.z = pV1.z > 2050: 20 70 56 32 2e 7a 20 3f 20 70 56 31 2e 7a 20 3a pV2.z ? pV1.z : 2060: 20 70 56 32 2e 7a 3b 0d 0a 09 72 65 74 75 72 6e pV2.z;...return 2070: 20 70 4f 75 74 3b 0d 0a 7d 0d 0a 0d 0a 44 33 44 pOut;..}....D3D 2080: 58 56 45 43 54 4f 52 33 2a 20 44 33 44 58 56 65 XVECTOR3* D3DXVe 2090: 63 33 53 63 61 6c 65 28 44 33 44 58 56 45 43 54 c3Scale(D3DXVECT 20a0: 4f 52 33 2a 20 70 4f 75 74 2c 20 44 33 44 58 56 OR3* pOut, D3DXV 20b0: 45 43 54 4f 52 33 2a 20 70 56 2c 20 66 6c 6f 61 ECTOR3* pV, floa 20c0: 74 20 73 29 20 7b 0d 0a 09 64 65 62 75 67 28 44 t s) {...debug(D 20d0: 33 44 58 31 30 5f 44 45 42 55 47 29 20 7b 0d 0a 3DX10_DEBUG) {.. 20e0: 09 09 69 66 20 28 28 70 4f 75 74 20 69 73 20 6e ..if ((pOut is n 20f0: 75 6c 6c 29 20 7c 7c 20 28 70 56 20 69 73 20 6e ull) || (pV is n 2100: 75 6c 6c 29 29 20 72 65 74 75 72 6e 20 6e 75 6c ull)) return nul 2110: 6c 3b 0d 0a 09 7d 0d 0a 09 70 4f 75 74 2e 78 20 l;...}...pOut.x 2120: 3d 20 70 56 2e 78 20 2a 20 73 3b 0d 0a 09 70 4f = pV.x * s;...pO 2130: 75 74 2e 79 20 3d 20 70 56 2e 79 20 2a 20 73 3b ut.y = pV.y * s; 2140: 0d 0a 09 70 4f 75 74 2e 7a 20 3d 20 70 56 2e 7a ...pOut.z = pV.z 2150: 20 2a 20 73 3b 0d 0a 09 72 65 74 75 72 6e 20 70 * s;...return p 2160: 4f 75 74 3b 0d 0a 7d 0d 0a 0d 0a 44 33 44 58 56 Out;..}....D3DXV 2170: 45 43 54 4f 52 33 2a 20 44 33 44 58 56 65 63 33 ECTOR3* D3DXVec3 2180: 4c 65 72 70 28 44 33 44 58 56 45 43 54 4f 52 33 Lerp(D3DXVECTOR3 2190: 2a 20 70 4f 75 74 2c 20 44 33 44 58 56 45 43 54 * pOut, D3DXVECT 21a0: 4f 52 33 2a 20 70 56 31 2c 20 44 33 44 58 56 45 OR3* pV1, D3DXVE 21b0: 43 54 4f 52 33 2a 20 70 56 32 2c 20 66 6c 6f 61 CTOR3* pV2, floa 21c0: 74 20 73 29 20 7b 0d 0a 09 64 65 62 75 67 28 44 t s) {...debug(D 21d0: 33 44 58 31 30 5f 44 45 42 55 47 29 20 7b 0d 0a 3DX10_DEBUG) {.. 21e0: 09 09 69 66 20 28 28 70 4f 75 74 20 69 73 20 6e ..if ((pOut is n 21f0: 75 6c 6c 29 20 7c 7c 20 28 70 56 31 20 69 73 20 ull) || (pV1 is 2200: 6e 75 6c 6c 29 20 7c 7c 20 28 70 56 32 20 69 73 null) || (pV2 is 2210: 20 6e 75 6c 6c 29 29 20 72 65 74 75 72 6e 20 6e null)) return n 2220: 75 6c 6c 3b 0d 0a 09 7d 0d 0a 09 70 4f 75 74 2e ull;...}...pOut. 2230: 78 20 3d 20 70 56 31 2e 78 20 2b 20 73 20 2a 20 x = pV1.x + s * 2240: 28 70 56 32 2e 78 20 2d 20 70 56 31 2e 78 29 3b (pV2.x - pV1.x); 2250: 0d 0a 09 70 4f 75 74 2e 79 20 3d 20 70 56 31 2e ...pOut.y = pV1. 2260: 79 20 2b 20 73 20 2a 20 28 70 56 32 2e 79 20 2d y + s * (pV2.y - 2270: 20 70 56 31 2e 79 29 3b 0d 0a 09 70 4f 75 74 2e pV1.y);...pOut. 2280: 7a 20 3d 20 70 56 31 2e 7a 20 2b 20 73 20 2a 20 z = pV1.z + s * 2290: 28 70 56 32 2e 7a 20 2d 20 70 56 31 2e 7a 29 3b (pV2.z - pV1.z); 22a0: 0d 0a 09 72 65 74 75 72 6e 20 70 4f 75 74 3b 0d ...return pOut;. 22b0: 0a 7d 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e .}....extern(Win 22c0: 64 6f 77 73 29 20 7b 0d 0a 09 44 33 44 58 56 45 dows) {...D3DXVE 22d0: 43 54 4f 52 33 2a 20 44 33 44 58 56 65 63 33 4e CTOR3* D3DXVec3N 22e0: 6f 72 6d 61 6c 69 7a 65 28 44 33 44 58 56 45 43 ormalize(D3DXVEC 22f0: 54 4f 52 33 2a 20 70 4f 75 74 2c 20 44 33 44 58 TOR3* pOut, D3DX 2300: 56 45 43 54 4f 52 33 2a 20 70 56 29 3b 0d 0a 09 VECTOR3* pV);... 2310: 44 33 44 58 56 45 43 54 4f 52 33 2a 20 44 33 44 D3DXVECTOR3* D3D 2320: 58 56 65 63 33 48 65 72 6d 69 74 65 28 44 33 44 XVec3Hermite(D3D 2330: 58 56 45 43 54 4f 52 33 2a 20 70 4f 75 74 2c 20 XVECTOR3* pOut, 2340: 44 33 44 58 56 45 43 54 4f 52 33 2a 20 70 56 31 D3DXVECTOR3* pV1 2350: 2c 20 44 33 44 58 56 45 43 54 4f 52 33 2a 20 70 , D3DXVECTOR3* p 2360: 54 31 2c 20 44 33 44 58 56 45 43 54 4f 52 33 2a T1, D3DXVECTOR3* 2370: 20 70 56 32 2c 20 44 33 44 58 56 45 43 54 4f 52 pV2, D3DXVECTOR 2380: 33 2a 20 70 54 32 2c 20 46 4c 4f 41 54 20 73 29 3* pT2, FLOAT s) 2390: 3b 0d 0a 09 44 33 44 58 56 45 43 54 4f 52 33 2a ;...D3DXVECTOR3* 23a0: 20 44 33 44 58 56 65 63 33 43 61 74 6d 75 6c 6c D3DXVec3Catmull 23b0: 52 6f 6d 28 44 33 44 58 56 45 43 54 4f 52 33 2a Rom(D3DXVECTOR3* 23c0: 20 70 4f 75 74 2c 20 44 33 44 58 56 45 43 54 4f pOut, D3DXVECTO 23d0: 52 33 2a 20 70 56 30 2c 20 44 33 44 58 56 45 43 R3* pV0, D3DXVEC 23e0: 54 4f 52 33 2a 20 70 56 31 2c 20 44 33 44 58 56 TOR3* pV1, D3DXV 23f0: 45 43 54 4f 52 33 2a 20 70 56 32 2c 20 44 33 44 ECTOR3* pV2, D3D 2400: 58 56 45 43 54 4f 52 33 2a 20 70 56 33 2c 20 46 XVECTOR3* pV3, F 2410: 4c 4f 41 54 20 73 29 3b 0d 0a 09 44 33 44 58 56 LOAT s);...D3DXV 2420: 45 43 54 4f 52 33 2a 20 44 33 44 58 56 65 63 33 ECTOR3* D3DXVec3 2430: 42 61 72 79 43 65 6e 74 72 69 63 28 44 33 44 58 BaryCentric(D3DX 2440: 56 45 43 54 4f 52 33 2a 20 70 4f 75 74 2c 20 44 VECTOR3* pOut, D 2450: 33 44 58 56 45 43 54 4f 52 33 2a 20 70 56 31 2c 3DXVECTOR3* pV1, 2460: 20 44 33 44 58 56 45 43 54 4f 52 33 2a 20 70 56 D3DXVECTOR3* pV 2470: 32 2c 20 44 33 44 58 56 45 43 54 4f 52 33 2a 20 2, D3DXVECTOR3* 2480: 70 56 33 2c 20 46 4c 4f 41 54 20 66 2c 20 46 4c pV3, FLOAT f, FL 2490: 4f 41 54 20 67 29 3b 0d 0a 09 44 33 44 58 56 45 OAT g);...D3DXVE 24a0: 43 54 4f 52 34 2a 20 44 33 44 58 56 65 63 33 54 CTOR4* D3DXVec3T 24b0: 72 61 6e 73 66 6f 72 6d 28 44 33 44 58 56 45 43 ransform(D3DXVEC 24c0: 54 4f 52 34 2a 20 70 4f 75 74 2c 20 44 33 44 58 TOR4* pOut, D3DX 24d0: 56 45 43 54 4f 52 33 2a 20 70 56 2c 20 44 33 44 VECTOR3* pV, D3D 24e0: 58 4d 41 54 52 49 58 2a 20 70 4d 29 3b 0d 0a 09 XMATRIX* pM);... 24f0: 44 33 44 58 56 45 43 54 4f 52 33 2a 20 44 33 44 D3DXVECTOR3* D3D 2500: 58 56 65 63 33 54 72 61 6e 73 66 6f 72 6d 43 6f XVec3TransformCo 2510: 6f 72 64 28 44 33 44 58 56 45 43 54 4f 52 33 2a ord(D3DXVECTOR3* 2520: 20 70 4f 75 74 2c 20 44 33 44 58 56 45 43 54 4f pOut, D3DXVECTO 2530: 52 33 2a 20 70 56 2c 20 44 33 44 58 4d 41 54 52 R3* pV, D3DXMATR 2540: 49 58 2a 20 70 4d 29 3b 0d 0a 09 44 33 44 58 56 IX* pM);...D3DXV 2550: 45 43 54 4f 52 33 2a 20 44 33 44 58 56 65 63 33 ECTOR3* D3DXVec3 2560: 54 72 61 6e 73 66 6f 72 6d 4e 6f 72 6d 61 6c 28 TransformNormal( 2570: 44 33 44 58 56 45 43 54 4f 52 33 2a 20 70 4f 75 D3DXVECTOR3* pOu 2580: 74 2c 20 44 33 44 58 56 45 43 54 4f 52 33 2a 20 t, D3DXVECTOR3* 2590: 70 56 2c 20 44 33 44 58 4d 41 54 52 49 58 2a 20 pV, D3DXMATRIX* 25a0: 70 4d 29 3b 0d 0a 09 44 33 44 58 56 45 43 54 4f pM);...D3DXVECTO 25b0: 52 34 2a 20 44 33 44 58 56 65 63 33 54 72 61 6e R4* D3DXVec3Tran 25c0: 73 66 6f 72 6d 41 72 72 61 79 28 44 33 44 58 56 sformArray(D3DXV 25d0: 45 43 54 4f 52 34 2a 20 70 4f 75 74 2c 20 55 49 ECTOR4* pOut, UI 25e0: 4e 54 20 4f 75 74 53 74 72 69 64 65 2c 20 44 33 NT OutStride, D3 25f0: 44 58 56 45 43 54 4f 52 33 2a 20 70 56 2c 20 55 DXVECTOR3* pV, U 2600: 49 4e 54 20 56 53 74 72 69 64 65 2c 20 44 33 44 INT VStride, D3D 2610: 58 4d 41 54 52 49 58 2a 20 70 4d 2c 20 55 49 4e XMATRIX* pM, UIN 2620: 54 20 6e 29 3b 0d 0a 09 44 33 44 58 56 45 43 54 T n);...D3DXVECT 2630: 4f 52 33 2a 20 44 33 44 58 56 65 63 33 54 72 61 OR3* D3DXVec3Tra 2640: 6e 73 66 6f 72 6d 43 6f 6f 72 64 41 72 72 61 79 nsformCoordArray 2650: 28 44 33 44 58 56 45 43 54 4f 52 33 2a 20 70 4f (D3DXVECTOR3* pO 2660: 75 74 2c 20 55 49 4e 54 20 4f 75 74 53 74 72 69 ut, UINT OutStri 2670: 64 65 2c 20 44 33 44 58 56 45 43 54 4f 52 33 2a de, D3DXVECTOR3* 2680: 20 70 56 2c 20 55 49 4e 54 20 56 53 74 72 69 64 pV, UINT VStrid 2690: 65 2c 20 44 33 44 58 4d 41 54 52 49 58 2a 20 70 e, D3DXMATRIX* p 26a0: 4d 2c 20 55 49 4e 54 20 6e 29 3b 0d 0a 09 44 33 M, UINT n);...D3 26b0: 44 58 56 45 43 54 4f 52 33 2a 20 44 33 44 58 56 DXVECTOR3* D3DXV 26c0: 65 63 33 54 72 61 6e 73 66 6f 72 6d 4e 6f 72 6d ec3TransformNorm 26d0: 61 6c 41 72 72 61 79 28 44 33 44 58 56 45 43 54 alArray(D3DXVECT 26e0: 4f 52 33 2a 20 70 4f 75 74 2c 20 55 49 4e 54 20 OR3* pOut, UINT 26f0: 4f 75 74 53 74 72 69 64 65 2c 20 44 33 44 58 56 OutStride, D3DXV 2700: 45 43 54 4f 52 33 2a 20 70 56 2c 20 55 49 4e 54 ECTOR3* pV, UINT 2710: 20 56 53 74 72 69 64 65 2c 20 44 33 44 58 4d 41 VStride, D3DXMA 2720: 54 52 49 58 2a 20 70 4d 2c 20 55 49 4e 54 20 6e TRIX* pM, UINT n 2730: 29 3b 0d 0a 09 44 33 44 58 56 45 43 54 4f 52 33 );...D3DXVECTOR3 2740: 2a 20 44 33 44 58 56 65 63 33 50 72 6f 6a 65 63 * D3DXVec3Projec 2750: 74 28 44 33 44 58 56 45 43 54 4f 52 33 2a 20 70 t(D3DXVECTOR3* p 2760: 4f 75 74 2c 20 44 33 44 58 56 45 43 54 4f 52 33 Out, D3DXVECTOR3 2770: 2a 20 70 56 2c 20 44 33 44 31 30 5f 56 49 45 57 * pV, D3D10_VIEW 2780: 50 4f 52 54 2a 20 70 56 69 65 77 70 6f 72 74 2c PORT* pViewport, 2790: 20 44 33 44 58 4d 41 54 52 49 58 2a 20 70 50 72 D3DXMATRIX* pPr 27a0: 6f 6a 65 63 74 69 6f 6e 2c 20 44 33 44 58 4d 41 ojection, D3DXMA 27b0: 54 52 49 58 2a 20 70 56 69 65 77 2c 20 44 33 44 TRIX* pView, D3D 27c0: 58 4d 41 54 52 49 58 2a 20 70 57 6f 72 6c 64 29 XMATRIX* pWorld) 27d0: 3b 0d 0a 09 44 33 44 58 56 45 43 54 4f 52 33 2a ;...D3DXVECTOR3* 27e0: 20 44 33 44 58 56 65 63 33 55 6e 70 72 6f 6a 65 D3DXVec3Unproje 27f0: 63 74 28 44 33 44 58 56 45 43 54 4f 52 33 2a 20 ct(D3DXVECTOR3* 2800: 70 4f 75 74 2c 20 44 33 44 58 56 45 43 54 4f 52 pOut, D3DXVECTOR 2810: 33 2a 20 70 56 2c 20 44 33 44 31 30 5f 56 49 45 3* pV, D3D10_VIE 2820: 57 50 4f 52 54 2a 20 70 56 69 65 77 70 6f 72 74 WPORT* pViewport 2830: 2c 20 44 33 44 58 4d 41 54 52 49 58 2a 20 70 50 , D3DXMATRIX* pP 2840: 72 6f 6a 65 63 74 69 6f 6e 2c 20 44 33 44 58 4d rojection, D3DXM 2850: 41 54 52 49 58 2a 20 70 56 69 65 77 2c 20 44 33 ATRIX* pView, D3 2860: 44 58 4d 41 54 52 49 58 2a 20 70 57 6f 72 6c 64 DXMATRIX* pWorld 2870: 29 3b 0d 0a 09 44 33 44 58 56 45 43 54 4f 52 33 );...D3DXVECTOR3 2880: 2a 20 44 33 44 58 56 65 63 33 50 72 6f 6a 65 63 * D3DXVec3Projec 2890: 74 41 72 72 61 79 28 44 33 44 58 56 45 43 54 4f tArray(D3DXVECTO 28a0: 52 33 2a 20 70 4f 75 74 2c 20 55 49 4e 54 20 4f R3* pOut, UINT O 28b0: 75 74 53 74 72 69 64 65 2c 44 33 44 58 56 45 43 utStride,D3DXVEC 28c0: 54 4f 52 33 2a 20 70 56 2c 20 55 49 4e 54 20 56 TOR3* pV, UINT V 28d0: 53 74 72 69 64 65 2c 44 33 44 31 30 5f 56 49 45 Stride,D3D10_VIE 28e0: 57 50 4f 52 54 2a 20 70 56 69 65 77 70 6f 72 74 WPORT* pViewport 28f0: 2c 20 44 33 44 58 4d 41 54 52 49 58 2a 20 70 50 , D3DXMATRIX* pP 2900: 72 6f 6a 65 63 74 69 6f 6e 2c 20 44 33 44 58 4d rojection, D3DXM 2910: 41 54 52 49 58 2a 20 70 56 69 65 77 2c 20 44 33 ATRIX* pView, D3 2920: 44 58 4d 41 54 52 49 58 2a 20 70 57 6f 72 6c 64 DXMATRIX* pWorld 2930: 2c 20 55 49 4e 54 20 6e 29 3b 0d 0a 09 44 33 44 , UINT n);...D3D 2940: 58 56 45 43 54 4f 52 33 2a 20 44 33 44 58 56 65 XVECTOR3* D3DXVe 2950: 63 33 55 6e 70 72 6f 6a 65 63 74 41 72 72 61 79 c3UnprojectArray 2960: 28 44 33 44 58 56 45 43 54 4f 52 33 2a 20 70 4f (D3DXVECTOR3* pO 2970: 75 74 2c 20 55 49 4e 54 20 4f 75 74 53 74 72 69 ut, UINT OutStri 2980: 64 65 2c 20 44 33 44 58 56 45 43 54 4f 52 33 2a de, D3DXVECTOR3* 2990: 20 70 56 2c 20 55 49 4e 54 20 56 53 74 72 69 64 pV, UINT VStrid 29a0: 65 2c 20 44 33 44 31 30 5f 56 49 45 57 50 4f 52 e, D3D10_VIEWPOR 29b0: 54 2a 20 70 56 69 65 77 70 6f 72 74 2c 20 44 33 T* pViewport, D3 29c0: 44 58 4d 41 54 52 49 58 2a 20 70 50 72 6f 6a 65 DXMATRIX* pProje 29d0: 63 74 69 6f 6e 2c 20 44 33 44 58 4d 41 54 52 49 ction, D3DXMATRI 29e0: 58 2a 20 70 56 69 65 77 2c 20 44 33 44 58 4d 41 X* pView, D3DXMA 29f0: 54 52 49 58 2a 20 70 57 6f 72 6c 64 2c 20 55 49 TRIX* pWorld, UI 2a00: 4e 54 20 6e 29 3b 0d 0a 7d 0d 0a 0d 0a 66 6c 6f NT n);..}....flo 2a10: 61 74 20 44 33 44 58 56 65 63 34 4c 65 6e 67 74 at D3DXVec4Lengt 2a20: 68 28 44 33 44 58 56 45 43 54 4f 52 34 2a 20 70 h(D3DXVECTOR4* p 2a30: 56 29 20 7b 0d 0a 09 64 65 62 75 67 28 44 33 44 V) {...debug(D3D 2a40: 58 31 30 5f 44 45 42 55 47 29 20 7b 0d 0a 09 09 X10_DEBUG) {.... 2a50: 69 66 20 28 70 56 20 69 73 20 6e 75 6c 6c 29 20 if (pV is null) 2a60: 72 65 74 75 72 6e 20 30 2e 30 3b 0d 0a 09 7d 0d return 0.0;...}. 2a70: 0a 09 72 65 74 75 72 6e 20 73 71 72 74 66 28 28 ..return sqrtf(( 2a80: 70 56 2e 78 20 2a 20 70 56 2e 78 29 20 2b 20 28 pV.x * pV.x) + ( 2a90: 70 56 2e 79 20 2a 20 70 56 2e 79 29 20 2b 20 28 pV.y * pV.y) + ( 2aa0: 70 56 2e 7a 20 2a 20 70 56 2e 7a 29 20 2b 20 28 pV.z * pV.z) + ( 2ab0: 70 56 2e 77 20 2a 20 70 56 2e 77 29 29 3b 0d 0a pV.w * pV.w));.. 2ac0: 7d 0d 0a 0d 0a 66 6c 6f 61 74 20 44 33 44 58 56 }....float D3DXV 2ad0: 65 63 34 4c 65 6e 67 74 68 53 71 28 44 33 44 58 ec4LengthSq(D3DX 2ae0: 56 45 43 54 4f 52 34 2a 20 70 56 29 20 7b 0d 0a VECTOR4* pV) {.. 2af0: 09 64 65 62 75 67 28 44 33 44 58 31 30 5f 44 45 .debug(D3DX10_DE 2b00: 42 55 47 29 20 7b 0d 0a 09 09 69 66 20 28 70 56 BUG) {....if (pV 2b10: 20 69 73 20 6e 75 6c 6c 29 20 72 65 74 75 72 6e is null) return 2b20: 20 30 2e 30 3b 0d 0a 09 7d 0d 0a 09 72 65 74 75 0.0;...}...retu 2b30: 72 6e 20 28 70 56 2e 78 20 2a 20 70 56 2e 78 29 rn (pV.x * pV.x) 2b40: 20 2b 20 28 70 56 2e 79 20 2a 20 70 56 2e 79 29 + (pV.y * pV.y) 2b50: 20 2b 20 28 70 56 2e 7a 20 2a 20 70 56 2e 7a 29 + (pV.z * pV.z) 2b60: 20 2b 20 28 70 56 2e 77 20 2a 20 70 56 2e 77 29 + (pV.w * pV.w) 2b70: 3b 0d 0a 7d 0d 0a 0d 0a 66 6c 6f 61 74 20 44 33 ;..}....float D3 2b80: 44 58 56 65 63 34 44 6f 74 28 44 33 44 58 56 45 DXVec4Dot(D3DXVE 2b90: 43 54 4f 52 34 2a 20 70 56 31 2c 20 44 33 44 58 CTOR4* pV1, D3DX 2ba0: 56 45 43 54 4f 52 34 2a 20 70 56 32 29 20 7b 0d VECTOR4* pV2) {. 2bb0: 0a 09 64 65 62 75 67 28 44 33 44 58 31 30 5f 44 ..debug(D3DX10_D 2bc0: 45 42 55 47 29 20 7b 0d 0a 09 09 69 66 20 28 28 EBUG) {....if (( 2bd0: 70 56 31 20 69 73 20 6e 75 6c 6c 29 20 7c 7c 20 pV1 is null) || 2be0: 28 70 56 32 20 69 73 20 6e 75 6c 6c 29 29 20 72 (pV2 is null)) r 2bf0: 65 74 75 72 6e 20 30 2e 30 3b 0d 0a 09 7d 0d 0a eturn 0.0;...}.. 2c00: 09 72 65 74 75 72 6e 20 28 70 56 31 2e 78 20 2a .return (pV1.x * 2c10: 20 70 56 32 2e 78 29 20 2b 20 28 70 56 31 2e 79 pV2.x) + (pV1.y 2c20: 20 2a 20 70 56 32 2e 79 29 20 2b 20 28 70 56 31 * pV2.y) + (pV1 2c30: 2e 7a 20 2a 20 70 56 32 2e 7a 29 20 2b 20 28 70 .z * pV2.z) + (p 2c40: 56 31 2e 77 20 2a 20 70 56 32 2e 77 29 3b 0d 0a V1.w * pV2.w);.. 2c50: 7d 0d 0a 0d 0a 44 33 44 58 56 45 43 54 4f 52 34 }....D3DXVECTOR4 2c60: 2a 20 44 33 44 58 56 65 63 34 41 64 64 28 44 33 * D3DXVec4Add(D3 2c70: 44 58 56 45 43 54 4f 52 34 2a 20 70 4f 75 74 2c DXVECTOR4* pOut, 2c80: 20 44 33 44 58 56 45 43 54 4f 52 34 2a 20 70 56 D3DXVECTOR4* pV 2c90: 31 2c 20 44 33 44 58 56 45 43 54 4f 52 34 2a 20 1, D3DXVECTOR4* 2ca0: 70 56 32 29 20 7b 0d 0a 09 64 65 62 75 67 28 44 pV2) {...debug(D 2cb0: 33 44 58 31 30 5f 44 45 42 55 47 29 20 7b 0d 0a 3DX10_DEBUG) {.. 2cc0: 09 09 69 66 20 28 28 70 4f 75 74 20 69 73 20 6e ..if ((pOut is n 2cd0: 75 6c 6c 29 20 7c 7c 20 28 70 56 31 20 69 73 20 ull) || (pV1 is 2ce0: 6e 75 6c 6c 29 20 7c 7c 20 28 70 56 32 20 69 73 null) || (pV2 is 2cf0: 20 6e 75 6c 6c 29 29 20 72 65 74 75 72 6e 20 6e null)) return n 2d00: 75 6c 6c 3b 0d 0a 09 7d 0d 0a 09 70 4f 75 74 2e ull;...}...pOut. 2d10: 78 20 3d 20 70 56 31 2e 78 20 2b 20 70 56 32 2e x = pV1.x + pV2. 2d20: 78 3b 0d 0a 09 70 4f 75 74 2e 79 20 3d 20 70 56 x;...pOut.y = pV 2d30: 31 2e 79 20 2b 20 70 56 32 2e 79 3b 0d 0a 09 70 1.y + pV2.y;...p 2d40: 4f 75 74 2e 7a 20 3d 20 70 56 31 2e 7a 20 2b 20 Out.z = pV1.z + 2d50: 70 56 32 2e 7a 3b 0d 0a 09 70 4f 75 74 2e 77 20 pV2.z;...pOut.w 2d60: 3d 20 70 56 31 2e 77 20 2b 20 70 56 32 2e 77 3b = pV1.w + pV2.w; 2d70: 0d 0a 09 72 65 74 75 72 6e 20 70 4f 75 74 3b 0d ...return pOut;. 2d80: 0a 7d 0d 0a 0d 0a 44 33 44 58 56 45 43 54 4f 52 .}....D3DXVECTOR 2d90: 34 2a 20 44 33 44 58 56 65 63 34 53 75 62 74 72 4* D3DXVec4Subtr 2da0: 61 63 74 28 44 33 44 58 56 45 43 54 4f 52 34 2a act(D3DXVECTOR4* 2db0: 20 70 4f 75 74 2c 20 44 33 44 58 56 45 43 54 4f pOut, D3DXVECTO 2dc0: 52 34 2a 20 70 56 31 2c 20 44 33 44 58 56 45 43 R4* pV1, D3DXVEC 2dd0: 54 4f 52 34 2a 20 70 56 32 29 20 7b 0d 0a 09 64 TOR4* pV2) {...d 2de0: 65 62 75 67 28 44 33 44 58 31 30 5f 44 45 42 55 ebug(D3DX10_DEBU 2df0: 47 29 20 7b 0d 0a 09 09 69 66 20 28 28 70 4f 75 G) {....if ((pOu 2e00: 74 20 69 73 20 6e 75 6c 6c 29 20 7c 7c 20 28 70 t is null) || (p 2e10: 56 31 20 69 73 20 6e 75 6c 6c 29 20 7c 7c 20 28 V1 is null) || ( 2e20: 70 56 32 20 69 73 20 6e 75 6c 6c 29 29 20 72 65 pV2 is null)) re 2e30: 74 75 72 6e 20 6e 75 6c 6c 3b 0d 0a 09 7d 0d 0a turn null;...}.. 2e40: 09 70 4f 75 74 2e 78 20 3d 20 70 56 31 2e 78 20 .pOut.x = pV1.x 2e50: 2d 20 70 56 32 2e 78 3b 0d 0a 09 70 4f 75 74 2e - pV2.x;...pOut. 2e60: 79 20 3d 20 70 56 31 2e 79 20 2d 20 70 56 32 2e y = pV1.y - pV2. 2e70: 79 3b 0d 0a 09 70 4f 75 74 2e 7a 20 3d 20 70 56 y;...pOut.z = pV 2e80: 31 2e 7a 20 2d 20 70 56 32 2e 7a 3b 0d 0a 09 70 1.z - pV2.z;...p 2e90: 4f 75 74 2e 77 20 3d 20 70 56 31 2e 77 20 2d 20 Out.w = pV1.w - 2ea0: 70 56 32 2e 77 3b 0d 0a 09 72 65 74 75 72 6e 20 pV2.w;...return 2eb0: 70 4f 75 74 3b 0d 0a 7d 0d 0a 0d 0a 44 33 44 58 pOut;..}....D3DX 2ec0: 56 45 43 54 4f 52 34 2a 20 44 33 44 58 56 65 63 VECTOR4* D3DXVec 2ed0: 34 4d 69 6e 69 6d 69 7a 65 28 44 33 44 58 56 45 4Minimize(D3DXVE 2ee0: 43 54 4f 52 34 2a 20 70 4f 75 74 2c 20 44 33 44 CTOR4* pOut, D3D 2ef0: 58 56 45 43 54 4f 52 34 2a 20 70 56 31 2c 20 44 XVECTOR4* pV1, D 2f00: 33 44 58 56 45 43 54 4f 52 34 2a 20 70 56 32 29 3DXVECTOR4* pV2) 2f10: 20 7b 0d 0a 09 64 65 62 75 67 28 44 33 44 58 31 {...debug(D3DX1 2f20: 30 5f 44 45 42 55 47 29 20 7b 0d 0a 09 09 69 66 0_DEBUG) {....if 2f30: 20 28 28 70 4f 75 74 20 69 73 20 6e 75 6c 6c 29 ((pOut is null) 2f40: 20 7c 7c 20 28 70 56 31 20 69 73 20 6e 75 6c 6c || (pV1 is null 2f50: 29 20 7c 7c 20 28 70 56 32 20 69 73 20 6e 75 6c ) || (pV2 is nul 2f60: 6c 29 29 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b l)) return null; 2f70: 0d 0a 09 7d 0d 0a 09 70 4f 75 74 2e 78 20 3d 20 ...}...pOut.x = 2f80: 70 56 31 2e 78 20 3c 20 70 56 32 2e 78 20 3f 20 pV1.x < pV2.x ? 2f90: 70 56 31 2e 78 20 3a 20 70 56 32 2e 78 3b 0d 0a pV1.x : pV2.x;.. 2fa0: 09 70 4f 75 74 2e 79 20 3d 20 70 56 31 2e 79 20 .pOut.y = pV1.y 2fb0: 3c 20 70 56 32 2e 79 20 3f 20 70 56 31 2e 79 20 < pV2.y ? pV1.y 2fc0: 3a 20 70 56 32 2e 79 3b 0d 0a 09 70 4f 75 74 2e : pV2.y;...pOut. 2fd0: 7a 20 3d 20 70 56 31 2e 7a 20 3c 20 70 56 32 2e z = pV1.z < pV2. 2fe0: 7a 20 3f 20 70 56 31 2e 7a 20 3a 20 70 56 32 2e z ? pV1.z : pV2. 2ff0: 7a 3b 0d 0a 09 70 4f 75 74 2e 77 20 3d 20 70 56 z;...pOut.w = pV 3000: 31 2e 77 20 3c 20 70 56 32 2e 77 20 3f 20 70 56 1.w < pV2.w ? pV 3010: 31 2e 77 20 3a 20 70 56 32 2e 77 3b 0d 0a 09 72 1.w : pV2.w;...r 3020: 65 74 75 72 6e 20 70 4f 75 74 3b 0d 0a 7d 0d 0a eturn pOut;..}.. 3030: 0d 0a 44 33 44 58 56 45 43 54 4f 52 34 2a 20 44 ..D3DXVECTOR4* D 3040: 33 44 58 56 65 63 34 4d 61 78 69 6d 69 7a 65 28 3DXVec4Maximize( 3050: 44 33 44 58 56 45 43 54 4f 52 34 2a 20 70 4f 75 D3DXVECTOR4* pOu 3060: 74 2c 20 44 33 44 58 56 45 43 54 4f 52 34 2a 20 t, D3DXVECTOR4* 3070: 70 56 31 2c 20 44 33 44 58 56 45 43 54 4f 52 34 pV1, D3DXVECTOR4 3080: 2a 20 70 56 32 29 20 7b 0d 0a 09 64 65 62 75 67 * pV2) {...debug 3090: 28 44 33 44 58 31 30 5f 44 45 42 55 47 29 20 7b (D3DX10_DEBUG) { 30a0: 0d 0a 09 09 69 66 20 28 28 70 4f 75 74 20 69 73 ....if ((pOut is 30b0: 20 6e 75 6c 6c 29 20 7c 7c 20 28 70 56 31 20 69 null) || (pV1 i 30c0: 73 20 6e 75 6c 6c 29 20 7c 7c 20 28 70 56 32 20 s null) || (pV2 30d0: 69 73 20 6e 75 6c 6c 29 29 20 72 65 74 75 72 6e is null)) return 30e0: 20 6e 75 6c 6c 3b 0d 0a 09 7d 0d 0a 09 70 4f 75 null;...}...pOu 30f0: 74 2e 78 20 3d 20 70 56 31 2e 78 20 3e 20 70 56 t.x = pV1.x > pV 3100: 32 2e 78 20 3f 20 70 56 31 2e 78 20 3a 20 70 56 2.x ? pV1.x : pV 3110: 32 2e 78 3b 0d 0a 09 70 4f 75 74 2e 79 20 3d 20 2.x;...pOut.y = 3120: 70 56 31 2e 79 20 3e 20 70 56 32 2e 79 20 3f 20 pV1.y > pV2.y ? 3130: 70 56 31 2e 79 20 3a 20 70 56 32 2e 79 3b 0d 0a pV1.y : pV2.y;.. 3140: 09 70 4f 75 74 2e 7a 20 3d 20 70 56 31 2e 7a 20 .pOut.z = pV1.z 3150: 3e 20 70 56 32 2e 7a 20 3f 20 70 56 31 2e 7a 20 > pV2.z ? pV1.z 3160: 3a 20 70 56 32 2e 7a 3b 0d 0a 09 70 4f 75 74 2e : pV2.z;...pOut. 3170: 77 20 3d 20 70 56 31 2e 77 20 3e 20 70 56 32 2e w = pV1.w > pV2. 3180: 77 20 3f 20 70 56 31 2e 77 20 3a 20 70 56 32 2e w ? pV1.w : pV2. 3190: 77 3b 0d 0a 09 72 65 74 75 72 6e 20 70 4f 75 74 w;...return pOut 31a0: 3b 0d 0a 7d 0d 0a 0d 0a 44 33 44 58 56 45 43 54 ;..}....D3DXVECT 31b0: 4f 52 34 2a 20 44 33 44 58 56 65 63 34 53 63 61 OR4* D3DXVec4Sca 31c0: 6c 65 28 44 33 44 58 56 45 43 54 4f 52 34 2a 20 le(D3DXVECTOR4* 31d0: 70 4f 75 74 2c 20 44 33 44 58 56 45 43 54 4f 52 pOut, D3DXVECTOR 31e0: 34 2a 20 70 56 2c 20 66 6c 6f 61 74 20 73 29 20 4* pV, float s) 31f0: 7b 0d 0a 09 64 65 62 75 67 28 44 33 44 58 31 30 {...debug(D3DX10 3200: 5f 44 45 42 55 47 29 20 7b 0d 0a 09 09 69 66 20 _DEBUG) {....if 3210: 28 28 70 4f 75 74 20 69 73 20 6e 75 6c 6c 29 20 ((pOut is null) 3220: 7c 7c 20 28 70 56 20 69 73 20 6e 75 6c 6c 29 29 || (pV is null)) 3230: 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0d 0a 09 return null;... 3240: 7d 0d 0a 09 70 4f 75 74 2e 78 20 3d 20 70 56 2e }...pOut.x = pV. 3250: 78 20 2a 20 73 3b 0d 0a 09 70 4f 75 74 2e 79 20 x * s;...pOut.y 3260: 3d 20 70 56 2e 79 20 2a 20 73 3b 0d 0a 09 70 4f = pV.y * s;...pO 3270: 75 74 2e 7a 20 3d 20 70 56 2e 7a 20 2a 20 73 3b ut.z = pV.z * s; 3280: 0d 0a 09 70 4f 75 74 2e 77 20 3d 20 70 56 2e 77 ...pOut.w = pV.w 3290: 20 2a 20 73 3b 0d 0a 09 72 65 74 75 72 6e 20 70 * s;...return p 32a0: 4f 75 74 3b 0d 0a 7d 0d 0a 0d 0a 44 33 44 58 56 Out;..}....D3DXV 32b0: 45 43 54 4f 52 34 2a 20 44 33 44 58 56 65 63 34 ECTOR4* D3DXVec4 32c0: 4c 65 72 70 28 44 33 44 58 56 45 43 54 4f 52 34 Lerp(D3DXVECTOR4 32d0: 2a 20 70 4f 75 74 2c 20 44 33 44 58 56 45 43 54 * pOut, D3DXVECT 32e0: 4f 52 34 2a 20 70 56 31 2c 20 44 33 44 58 56 45 OR4* pV1, D3DXVE 32f0: 43 54 4f 52 34 2a 20 70 56 32 2c 20 66 6c 6f 61 CTOR4* pV2, floa 3300: 74 20 73 29 20 7b 0d 0a 09 64 65 62 75 67 28 44 t s) {...debug(D 3310: 33 44 58 31 30 5f 44 45 42 55 47 29 20 7b 0d 0a 3DX10_DEBUG) {.. 3320: 09 09 69 66 20 28 28 70 4f 75 74 20 69 73 20 6e ..if ((pOut is n 3330: 75 6c 6c 29 20 7c 7c 20 28 70 56 31 20 69 73 20 ull) || (pV1 is 3340: 6e 75 6c 6c 29 20 7c 7c 20 28 70 56 32 20 69 73 null) || (pV2 is 3350: 20 6e 75 6c 6c 29 29 20 72 65 74 75 72 6e 20 6e null)) return n 3360: 75 6c 6c 3b 0d 0a 09 7d 0d 0a 09 70 4f 75 74 2e ull;...}...pOut. 3370: 78 20 3d 20 70 56 31 2e 78 20 2b 20 73 20 2a 20 x = pV1.x + s * 3380: 28 70 56 32 2e 78 20 2d 20 70 56 31 2e 78 29 3b (pV2.x - pV1.x); 3390: 0d 0a 09 70 4f 75 74 2e 79 20 3d 20 70 56 31 2e ...pOut.y = pV1. 33a0: 79 20 2b 20 73 20 2a 20 28 70 56 32 2e 79 20 2d y + s * (pV2.y - 33b0: 20 70 56 31 2e 79 29 3b 0d 0a 09 70 4f 75 74 2e pV1.y);...pOut. 33c0: 7a 20 3d 20 70 56 31 2e 7a 20 2b 20 73 20 2a 20 z = pV1.z + s * 33d0: 28 70 56 32 2e 7a 20 2d 20 70 56 31 2e 7a 29 3b (pV2.z - pV1.z); 33e0: 0d 0a 09 70 4f 75 74 2e 77 20 3d 20 70 56 31 2e ...pOut.w = pV1. 33f0: 77 20 2b 20 73 20 2a 20 28 70 56 32 2e 77 20 2d w + s * (pV2.w - 3400: 20 70 56 31 2e 77 29 3b 0d 0a 09 72 65 74 75 72 pV1.w);...retur 3410: 6e 20 70 4f 75 74 3b 0d 0a 7d 0d 0a 0d 0a 65 78 n pOut;..}....ex 3420: 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 7b 0d tern(Windows) {. 3430: 0a 09 44 33 44 58 56 45 43 54 4f 52 34 2a 20 44 ..D3DXVECTOR4* D 3440: 33 44 58 56 65 63 34 43 72 6f 73 73 28 44 33 44 3DXVec4Cross(D3D 3450: 58 56 45 43 54 4f 52 34 2a 20 70 4f 75 74 2c 20 XVECTOR4* pOut, 3460: 44 33 44 58 56 45 43 54 4f 52 34 2a 20 70 56 31 D3DXVECTOR4* pV1 3470: 2c 20 44 33 44 58 56 45 43 54 4f 52 34 2a 20 70 , D3DXVECTOR4* p 3480: 56 32 2c 20 44 33 44 58 56 45 43 54 4f 52 34 2a V2, D3DXVECTOR4* 3490: 20 70 56 33 29 3b 0d 0a 09 44 33 44 58 56 45 43 pV3);...D3DXVEC 34a0: 54 4f 52 34 2a 20 44 33 44 58 56 65 63 34 4e 6f TOR4* D3DXVec4No 34b0: 72 6d 61 6c 69 7a 65 28 44 33 44 58 56 45 43 54 rmalize(D3DXVECT 34c0: 4f 52 34 2a 20 70 4f 75 74 2c 20 44 33 44 58 56 OR4* pOut, D3DXV 34d0: 45 43 54 4f 52 34 2a 20 70 56 29 3b 0d 0a 09 44 ECTOR4* pV);...D 34e0: 33 44 58 56 45 43 54 4f 52 34 2a 20 44 33 44 58 3DXVECTOR4* D3DX 34f0: 56 65 63 34 48 65 72 6d 69 74 65 28 44 33 44 58 Vec4Hermite(D3DX 3500: 56 45 43 54 4f 52 34 2a 20 70 4f 75 74 2c 20 44 VECTOR4* pOut, D 3510: 33 44 58 56 45 43 54 4f 52 34 2a 20 70 56 31 2c 3DXVECTOR4* pV1, 3520: 20 44 33 44 58 56 45 43 54 4f 52 34 2a 20 70 54 D3DXVECTOR4* pT 3530: 31 2c 20 44 33 44 58 56 45 43 54 4f 52 34 2a 20 1, D3DXVECTOR4* 3540: 70 56 32 2c 20 44 33 44 58 56 45 43 54 4f 52 34 pV2, D3DXVECTOR4 3550: 2a 20 70 54 32 2c 20 46 4c 4f 41 54 20 73 29 3b * pT2, FLOAT s); 3560: 0d 0a 09 44 33 44 58 56 45 43 54 4f 52 34 2a 20 ...D3DXVECTOR4* 3570: 44 33 44 58 56 65 63 34 43 61 74 6d 75 6c 6c 52 D3DXVec4CatmullR 3580: 6f 6d 28 44 33 44 58 56 45 43 54 4f 52 34 2a 20 om(D3DXVECTOR4* 3590: 70 4f 75 74 2c 20 44 33 44 58 56 45 43 54 4f 52 pOut, D3DXVECTOR 35a0: 34 2a 20 70 56 30 2c 20 44 33 44 58 56 45 43 54 4* pV0, D3DXVECT 35b0: 4f 52 34 2a 20 70 56 31 2c 20 44 33 44 58 56 45 OR4* pV1, D3DXVE 35c0: 43 54 4f 52 34 2a 20 70 56 32 2c 20 44 33 44 58 CTOR4* pV2, D3DX 35d0: 56 45 43 54 4f 52 34 2a 20 70 56 33 2c 20 46 4c VECTOR4* pV3, FL 35e0: 4f 41 54 20 73 29 3b 0d 0a 09 44 33 44 58 56 45 OAT s);...D3DXVE 35f0: 43 54 4f 52 34 2a 20 44 33 44 58 56 65 63 34 42 CTOR4* D3DXVec4B 3600: 61 72 79 43 65 6e 74 72 69 63 28 44 33 44 58 56 aryCentric(D3DXV 3610: 45 43 54 4f 52 34 2a 20 70 4f 75 74 2c 20 44 33 ECTOR4* pOut, D3 3620: 44 58 56 45 43 54 4f 52 34 2a 20 70 56 31 2c 20 DXVECTOR4* pV1, 3630: 44 33 44 58 56 45 43 54 4f 52 34 2a 20 70 56 32 D3DXVECTOR4* pV2 3640: 2c 20 44 33 44 58 56 45 43 54 4f 52 34 2a 20 70 , D3DXVECTOR4* p 3650: 56 33 2c 20 46 4c 4f 41 54 20 66 2c 20 46 4c 4f V3, FLOAT f, FLO 3660: 41 54 20 67 29 3b 0d 0a 09 44 33 44 58 56 45 43 AT g);...D3DXVEC 3670: 54 4f 52 34 2a 20 44 33 44 58 56 65 63 34 54 72 TOR4* D3DXVec4Tr 3680: 61 6e 73 66 6f 72 6d 28 44 33 44 58 56 45 43 54 ansform(D3DXVECT 3690: 4f 52 34 2a 20 70 4f 75 74 2c 20 44 33 44 58 56 OR4* pOut, D3DXV 36a0: 45 43 54 4f 52 34 2a 20 70 56 2c 20 44 33 44 58 ECTOR4* pV, D3DX 36b0: 4d 41 54 52 49 58 2a 20 70 4d 29 3b 0d 0a 09 44 MATRIX* pM);...D 36c0: 33 44 58 56 45 43 54 4f 52 34 2a 20 44 33 44 58 3DXVECTOR4* D3DX 36d0: 56 65 63 34 54 72 61 6e 73 66 6f 72 6d 41 72 72 Vec4TransformArr 36e0: 61 79 28 44 33 44 58 56 45 43 54 4f 52 34 2a 20 ay(D3DXVECTOR4* 36f0: 70 4f 75 74 2c 20 55 49 4e 54 20 4f 75 74 53 74 pOut, UINT OutSt 3700: 72 69 64 65 2c 20 44 33 44 58 56 45 43 54 4f 52 ride, D3DXVECTOR 3710: 34 2a 20 70 56 2c 20 55 49 4e 54 20 56 53 74 72 4* pV, UINT VStr 3720: 69 64 65 2c 20 44 33 44 58 4d 41 54 52 49 58 2a ide, D3DXMATRIX* 3730: 20 70 4d 2c 20 55 49 4e 54 20 6e 29 3b 0d 0a 7d pM, UINT n);..} 3740: 0d 0a 0d 0a 44 33 44 58 4d 41 54 52 49 58 2a 20 ....D3DXMATRIX* 3750: 44 33 44 58 4d 61 74 72 69 78 49 64 65 6e 74 69 D3DXMatrixIdenti 3760: 74 79 28 44 33 44 58 4d 41 54 52 49 58 20 2a 70 ty(D3DXMATRIX *p 3770: 4f 75 74 29 20 7b 0d 0a 09 64 65 62 75 67 28 44 Out) {...debug(D 3780: 33 44 58 31 30 5f 44 45 42 55 47 29 20 7b 0d 0a 3DX10_DEBUG) {.. 3790: 09 09 69 66 20 28 70 4f 75 74 20 69 73 20 6e 75 ..if (pOut is nu 37a0: 6c 6c 29 20 72 65 74 75 72 6e 20 4e 55 4c 4c 3b ll) return NULL; 37b0: 0d 0a 09 7d 0d 0a 09 70 4f 75 74 2e 6d 5b 30 5d ...}...pOut.m[0] 37c0: 5b 31 5d 20 3d 20 70 4f 75 74 2e 6d 5b 30 5d 5b [1] = pOut.m[0][ 37d0: 32 5d 20 3d 20 70 4f 75 74 2e 6d 5b 30 5d 5b 33 2] = pOut.m[0][3 37e0: 5d 20 3d 0d 0a 09 70 4f 75 74 2e 6d 5b 31 5d 5b ] =...pOut.m[1][ 37f0: 30 5d 20 3d 20 70 4f 75 74 2e 6d 5b 31 5d 5b 32 0] = pOut.m[1][2 3800: 5d 20 3d 20 70 4f 75 74 2e 6d 5b 31 5d 5b 33 5d ] = pOut.m[1][3] 3810: 20 3d 0d 0a 09 70 4f 75 74 2e 6d 5b 32 5d 5b 30 =...pOut.m[2][0 3820: 5d 20 3d 20 70 4f 75 74 2e 6d 5b 32 5d 5b 31 5d ] = pOut.m[2][1] 3830: 20 3d 20 70 4f 75 74 2e 6d 5b 32 5d 5b 33 5d 20 = pOut.m[2][3] 3840: 3d 0d 0a 09 70 4f 75 74 2e 6d 5b 33 5d 5b 30 5d =...pOut.m[3][0] 3850: 20 3d 20 70 4f 75 74 2e 6d 5b 33 5d 5b 31 5d 20 = pOut.m[3][1] 3860: 3d 20 70 4f 75 74 2e 6d 5b 33 5d 5b 32 5d 20 3d = pOut.m[3][2] = 3870: 20 30 2e 30 3b 0d 0a 09 70 4f 75 74 2e 6d 5b 30 0.0;...pOut.m[0 3880: 5d 5b 30 5d 20 3d 20 70 4f 75 74 2e 6d 5b 31 5d ][0] = pOut.m[1] 3890: 5b 31 5d 20 3d 20 70 4f 75 74 2e 6d 5b 32 5d 5b [1] = pOut.m[2][ 38a0: 32 5d 20 3d 20 70 4f 75 74 2e 6d 5b 33 5d 5b 33 2] = pOut.m[3][3 38b0: 5d 20 3d 20 31 2e 30 3b 0d 0a 09 72 65 74 75 72 ] = 1.0;...retur 38c0: 6e 20 70 4f 75 74 3b 0d 0a 7d 0d 0a 0d 0a 0d 0a n pOut;..}...... 38d0: 42 4f 4f 4c 20 44 33 44 58 4d 61 74 72 69 78 49 BOOL D3DXMatrixI 38e0: 73 49 64 65 6e 74 69 74 79 28 44 33 44 58 4d 41 sIdentity(D3DXMA 38f0: 54 52 49 58 20 2a 70 4d 29 20 7b 0d 0a 09 64 65 TRIX *pM) {...de 3900: 62 75 67 28 44 33 44 58 31 30 5f 44 45 42 55 47 bug(D3DX10_DEBUG 3910: 29 20 7b 0d 0a 09 09 69 66 28 70 4d 20 69 73 20 ) {....if(pM is 3920: 6e 75 6c 6c 29 20 72 65 74 75 72 6e 20 46 41 4c null) return FAL 3930: 53 45 3b 0d 0a 09 7d 0d 0a 09 72 65 74 75 72 6e SE;...}...return 3940: 20 28 70 4d 2e 6d 5b 30 5d 5b 30 5d 20 3d 3d 20 (pM.m[0][0] == 3950: 31 2e 30 66 29 20 26 26 20 28 70 4d 2e 6d 5b 30 1.0f) && (pM.m[0 3960: 5d 5b 31 5d 20 3d 3d 20 30 2e 30 66 29 20 26 26 ][1] == 0.0f) && 3970: 20 28 70 4d 2e 6d 5b 30 5d 5b 32 5d 20 3d 3d 20 (pM.m[0][2] == 3980: 30 2e 30 66 29 20 26 26 20 28 70 4d 2e 6d 5b 30 0.0f) && (pM.m[0 3990: 5d 5b 33 5d 20 3d 3d 20 30 2e 30 66 29 20 26 26 ][3] == 0.0f) && 39a0: 0d 0a 09 20 20 20 20 20 20 20 28 70 4d 2e 6d 5b ... (pM.m[ 39b0: 31 5d 5b 30 5d 20 3d 3d 20 30 2e 30 66 29 20 26 1][0] == 0.0f) & 39c0: 26 20 28 70 4d 2e 6d 5b 31 5d 5b 31 5d 20 3d 3d & (pM.m[1][1] == 39d0: 20 31 2e 30 66 29 20 26 26 20 28 70 4d 2e 6d 5b 1.0f) && (pM.m[ 39e0: 31 5d 5b 32 5d 20 3d 3d 20 30 2e 30 66 29 20 26 1][2] == 0.0f) & 39f0: 26 20 28 70 4d 2e 6d 5b 31 5d 5b 33 5d 20 3d 3d & (pM.m[1][3] == 3a00: 20 30 2e 30 66 29 20 26 26 0d 0a 09 20 20 20 20 0.0f) &&... 3a10: 20 20 20 28 70 4d 2e 6d 5b 32 5d 5b 30 5d 20 3d (pM.m[2][0] = 3a20: 3d 20 30 2e 30 66 29 20 26 26 20 28 70 4d 2e 6d = 0.0f) && (pM.m 3a30: 5b 32 5d 5b 31 5d 20 3d 3d 20 30 2e 30 66 29 20 [2][1] == 0.0f) 3a40: 26 26 20 28 70 4d 2e 6d 5b 32 5d 5b 32 5d 20 3d && (pM.m[2][2] = 3a50: 3d 20 31 2e 30 66 29 20 26 26 20 28 70 4d 2e 6d = 1.0f) && (pM.m 3a60: 5b 32 5d 5b 33 5d 20 3d 3d 20 30 2e 30 66 29 20 [2][3] == 0.0f) 3a70: 26 26 0d 0a 09 20 20 20 20 20 20 20 28 70 4d 2e &&... (pM. 3a80: 6d 5b 33 5d 5b 30 5d 20 3d 3d 20 30 2e 30 66 29 m[3][0] == 0.0f) 3a90: 20 26 26 20 28 70 4d 2e 6d 5b 33 5d 5b 31 5d 20 && (pM.m[3][1] 3aa0: 3d 3d 20 30 2e 30 66 29 20 26 26 20 28 70 4d 2e == 0.0f) && (pM. 3ab0: 6d 5b 33 5d 5b 32 5d 20 3d 3d 20 30 2e 30 66 29 m[3][2] == 0.0f) 3ac0: 20 26 26 20 28 70 4d 2e 6d 5b 33 5d 5b 33 5d 20 && (pM.m[3][3] 3ad0: 3d 3d 20 31 2e 30 66 29 3b 0d 0a 7d 0d 0a 0d 0a == 1.0f);..}.... 3ae0: 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 extern(Windows) 3af0: 7b 0d 0a 09 46 4c 4f 41 54 20 44 33 44 58 4d 61 {...FLOAT D3DXMa 3b00: 74 72 69 78 44 65 74 65 72 6d 69 6e 61 6e 74 28 trixDeterminant( 3b10: 44 33 44 58 4d 41 54 52 49 58 2a 20 70 4d 29 3b D3DXMATRIX* pM); 3b20: 0d 0a 09 48 52 45 53 55 4c 54 20 44 33 44 58 4d ...HRESULT D3DXM 3b30: 61 74 72 69 78 44 65 63 6f 6d 70 6f 73 65 28 44 atrixDecompose(D 3b40: 33 44 58 56 45 43 54 4f 52 33 2a 20 70 4f 75 74 3DXVECTOR3* pOut 3b50: 53 63 61 6c 65 2c 20 44 33 44 58 51 55 41 54 45 Scale, D3DXQUATE 3b60: 52 4e 49 4f 4e 2a 20 70 4f 75 74 52 6f 74 61 74 RNION* pOutRotat 3b70: 69 6f 6e 2c 20 44 33 44 58 56 45 43 54 4f 52 33 ion, D3DXVECTOR3 3b80: 2a 20 70 4f 75 74 54 72 61 6e 73 6c 61 74 69 6f * pOutTranslatio 3b90: 6e 2c 20 44 33 44 58 4d 41 54 52 49 58 2a 20 70 n, D3DXMATRIX* p 3ba0: 4d 29 3b 0d 0a 09 44 33 44 58 4d 41 54 52 49 58 M);...D3DXMATRIX 3bb0: 2a 20 44 33 44 58 4d 61 74 72 69 78 54 72 61 6e * D3DXMatrixTran 3bc0: 73 70 6f 73 65 28 44 33 44 58 4d 41 54 52 49 58 spose(D3DXMATRIX 3bd0: 2a 20 70 4f 75 74 2c 20 44 33 44 58 4d 41 54 52 * pOut, D3DXMATR 3be0: 49 58 2a 20 70 4d 29 3b 0d 0a 09 44 33 44 58 4d IX* pM);...D3DXM 3bf0: 41 54 52 49 58 2a 20 44 33 44 58 4d 61 74 72 69 ATRIX* D3DXMatri 3c00: 78 4d 75 6c 74 69 70 6c 79 28 44 33 44 58 4d 41 xMultiply(D3DXMA 3c10: 54 52 49 58 2a 20 70 4f 75 74 2c 20 44 33 44 58 TRIX* pOut, D3DX 3c20: 4d 41 54 52 49 58 2a 20 70 4d 31 2c 20 44 33 44 MATRIX* pM1, D3D 3c30: 58 4d 41 54 52 49 58 2a 20 70 4d 32 29 3b 0d 0a XMATRIX* pM2);.. 3c40: 09 44 33 44 58 4d 41 54 52 49 58 2a 20 44 33 44 .D3DXMATRIX* D3D 3c50: 58 4d 61 74 72 69 78 4d 75 6c 74 69 70 6c 79 54 XMatrixMultiplyT 3c60: 72 61 6e 73 70 6f 73 65 28 44 33 44 58 4d 41 54 ranspose(D3DXMAT 3c70: 52 49 58 2a 20 70 4f 75 74 2c 20 44 33 44 58 4d RIX* pOut, D3DXM 3c80: 41 54 52 49 58 2a 20 70 4d 31 2c 20 44 33 44 58 ATRIX* pM1, D3DX 3c90: 4d 41 54 52 49 58 2a 20 70 4d 32 29 3b 0d 0a 09 MATRIX* pM2);... 3ca0: 44 33 44 58 4d 41 54 52 49 58 2a 20 44 33 44 58 D3DXMATRIX* D3DX 3cb0: 4d 61 74 72 69 78 49 6e 76 65 72 73 65 28 44 33 MatrixInverse(D3 3cc0: 44 58 4d 41 54 52 49 58 2a 20 70 4f 75 74 2c 20 DXMATRIX* pOut, 3cd0: 46 4c 4f 41 54 2a 20 70 44 65 74 65 72 6d 69 6e FLOAT* pDetermin 3ce0: 61 6e 74 2c 20 44 33 44 58 4d 41 54 52 49 58 2a ant, D3DXMATRIX* 3cf0: 20 70 4d 29 3b 0d 0a 09 44 33 44 58 4d 41 54 52 pM);...D3DXMATR 3d00: 49 58 2a 20 44 33 44 58 4d 61 74 72 69 78 53 63 IX* D3DXMatrixSc 3d10: 61 6c 69 6e 67 28 44 33 44 58 4d 41 54 52 49 58 aling(D3DXMATRIX 3d20: 2a 20 70 4f 75 74 2c 20 46 4c 4f 41 54 20 73 78 * pOut, FLOAT sx 3d30: 2c 20 46 4c 4f 41 54 20 73 79 2c 20 46 4c 4f 41 , FLOAT sy, FLOA 3d40: 54 20 73 7a 29 3b 0d 0a 09 44 33 44 58 4d 41 54 T sz);...D3DXMAT 3d50: 52 49 58 2a 20 44 33 44 58 4d 61 74 72 69 78 54 RIX* D3DXMatrixT 3d60: 72 61 6e 73 6c 61 74 69 6f 6e 28 44 33 44 58 4d ranslation(D3DXM 3d70: 41 54 52 49 58 2a 20 70 4f 75 74 2c 20 46 4c 4f ATRIX* pOut, FLO 3d80: 41 54 20 78 2c 20 46 4c 4f 41 54 20 79 2c 20 46 AT x, FLOAT y, F 3d90: 4c 4f 41 54 20 7a 29 3b 0d 0a 09 44 33 44 58 4d LOAT z);...D3DXM 3da0: 41 54 52 49 58 2a 20 44 33 44 58 4d 61 74 72 69 ATRIX* D3DXMatri 3db0: 78 52 6f 74 61 74 69 6f 6e 58 28 44 33 44 58 4d xRotationX(D3DXM 3dc0: 41 54 52 49 58 2a 20 70 4f 75 74 2c 20 46 4c 4f ATRIX* pOut, FLO 3dd0: 41 54 20 41 6e 67 6c 65 29 3b 0d 0a 09 44 33 44 AT Angle);...D3D 3de0: 58 4d 41 54 52 49 58 2a 20 44 33 44 58 4d 61 74 XMATRIX* D3DXMat 3df0: 72 69 78 52 6f 74 61 74 69 6f 6e 59 28 44 33 44 rixRotationY(D3D 3e00: 58 4d 41 54 52 49 58 2a 20 70 4f 75 74 2c 20 46 XMATRIX* pOut, F 3e10: 4c 4f 41 54 20 41 6e 67 6c 65 29 3b 0d 0a 09 44 LOAT Angle);...D 3e20: 33 44 58 4d 41 54 52 49 58 2a 20 44 33 44 58 4d 3DXMATRIX* D3DXM 3e30: 61 74 72 69 78 52 6f 74 61 74 69 6f 6e 5a 28 44 atrixRotationZ(D 3e40: 33 44 58 4d 41 54 52 49 58 2a 20 70 4f 75 74 2c 3DXMATRIX* pOut, 3e50: 20 46 4c 4f 41 54 20 41 6e 67 6c 65 29 3b 0d 0a FLOAT Angle);.. 3e60: 09 44 33 44 58 4d 41 54 52 49 58 2a 20 44 33 44 .D3DXMATRIX* D3D 3e70: 58 4d 61 74 72 69 78 52 6f 74 61 74 69 6f 6e 41 XMatrixRotationA 3e80: 78 69 73 28 44 33 44 58 4d 41 54 52 49 58 2a 20 xis(D3DXMATRIX* 3e90: 70 4f 75 74 2c 20 44 33 44 58 56 45 43 54 4f 52 pOut, D3DXVECTOR 3ea0: 33 2a 20 70 56 2c 20 46 4c 4f 41 54 20 41 6e 67 3* pV, FLOAT Ang 3eb0: 6c 65 29 3b 0d 0a 09 44 33 44 58 4d 41 54 52 49 le);...D3DXMATRI 3ec0: 58 2a 20 44 33 44 58 4d 61 74 72 69 78 52 6f 74 X* D3DXMatrixRot 3ed0: 61 74 69 6f 6e 51 75 61 74 65 72 6e 69 6f 6e 28 ationQuaternion( 3ee0: 44 33 44 58 4d 41 54 52 49 58 2a 20 70 4f 75 74 D3DXMATRIX* pOut 3ef0: 2c 20 44 33 44 58 51 55 41 54 45 52 4e 49 4f 4e , D3DXQUATERNION 3f00: 2a 20 70 51 29 3b 0d 0a 09 44 33 44 58 4d 41 54 * pQ);...D3DXMAT 3f10: 52 49 58 2a 20 44 33 44 58 4d 61 74 72 69 78 52 RIX* D3DXMatrixR 3f20: 6f 74 61 74 69 6f 6e 59 61 77 50 69 74 63 68 52 otationYawPitchR 3f30: 6f 6c 6c 28 44 33 44 58 4d 41 54 52 49 58 2a 20 oll(D3DXMATRIX* 3f40: 70 4f 75 74 2c 20 46 4c 4f 41 54 20 59 61 77 2c pOut, FLOAT Yaw, 3f50: 20 46 4c 4f 41 54 20 50 69 74 63 68 2c 20 46 4c FLOAT Pitch, FL 3f60: 4f 41 54 20 52 6f 6c 6c 29 3b 0d 0a 09 44 33 44 OAT Roll);...D3D 3f70: 58 4d 41 54 52 49 58 2a 20 44 33 44 58 4d 61 74 XMATRIX* D3DXMat 3f80: 72 69 78 54 72 61 6e 73 66 6f 72 6d 61 74 69 6f rixTransformatio 3f90: 6e 28 44 33 44 58 4d 41 54 52 49 58 2a 20 70 4f n(D3DXMATRIX* pO 3fa0: 75 74 2c 20 44 33 44 58 56 45 43 54 4f 52 33 2a ut, D3DXVECTOR3* 3fb0: 20 70 53 63 61 6c 69 6e 67 43 65 6e 74 65 72 2c pScalingCenter, 3fc0: 20 44 33 44 58 51 55 41 54 45 52 4e 49 4f 4e 2a D3DXQUATERNION* 3fd0: 20 70 53 63 61 6c 69 6e 67 52 6f 74 61 74 69 6f pScalingRotatio 3fe0: 6e 2c 20 44 33 44 58 56 45 43 54 4f 52 33 2a 20 n, D3DXVECTOR3* 3ff0: 70 53 63 61 6c 69 6e 67 2c 20 44 33 44 58 56 45 pScaling, D3DXVE 4000: 43 54 4f 52 33 2a 20 70 52 6f 74 61 74 69 6f 6e CTOR3* pRotation 4010: 43 65 6e 74 65 72 2c 20 44 33 44 58 51 55 41 54 Center, D3DXQUAT 4020: 45 52 4e 49 4f 4e 2a 20 70 52 6f 74 61 74 69 6f ERNION* pRotatio 4030: 6e 2c 20 44 33 44 58 56 45 43 54 4f 52 33 2a 20 n, D3DXVECTOR3* 4040: 70 54 72 61 6e 73 6c 61 74 69 6f 6e 29 3b 0d 0a pTranslation);.. 4050: 09 44 33 44 58 4d 41 54 52 49 58 2a 20 44 33 44 .D3DXMATRIX* D3D 4060: 58 4d 61 74 72 69 78 54 72 61 6e 73 66 6f 72 6d XMatrixTransform 4070: 61 74 69 6f 6e 32 44 28 44 33 44 58 4d 41 54 52 ation2D(D3DXMATR 4080: 49 58 2a 20 70 4f 75 74 2c 20 44 33 44 58 56 45 IX* pOut, D3DXVE 4090: 43 54 4f 52 32 2a 20 70 53 63 61 6c 69 6e 67 43 CTOR2* pScalingC 40a0: 65 6e 74 65 72 2c 20 46 4c 4f 41 54 20 53 63 61 enter, FLOAT Sca 40b0: 6c 69 6e 67 52 6f 74 61 74 69 6f 6e 2c 20 44 33 lingRotation, D3 40c0: 44 58 56 45 43 54 4f 52 32 2a 20 70 53 63 61 6c DXVECTOR2* pScal 40d0: 69 6e 67 2c 20 44 33 44 58 56 45 43 54 4f 52 32 ing, D3DXVECTOR2 40e0: 2a 20 70 52 6f 74 61 74 69 6f 6e 43 65 6e 74 65 * pRotationCente 40f0: 72 2c 20 46 4c 4f 41 54 20 52 6f 74 61 74 69 6f r, FLOAT Rotatio 4100: 6e 2c 20 44 33 44 58 56 45 43 54 4f 52 32 2a 20 n, D3DXVECTOR2* 4110: 70 54 72 61 6e 73 6c 61 74 69 6f 6e 29 3b 0d 0a pTranslation);.. 4120: 09 44 33 44 58 4d 41 54 52 49 58 2a 20 44 33 44 .D3DXMATRIX* D3D 4130: 58 4d 61 74 72 69 78 41 66 66 69 6e 65 54 72 61 XMatrixAffineTra 4140: 6e 73 66 6f 72 6d 61 74 69 6f 6e 28 44 33 44 58 nsformation(D3DX 4150: 4d 41 54 52 49 58 2a 20 70 4f 75 74 2c 20 46 4c MATRIX* pOut, FL 4160: 4f 41 54 20 53 63 61 6c 69 6e 67 2c 20 44 33 44 OAT Scaling, D3D 4170: 58 56 45 43 54 4f 52 33 2a 20 70 52 6f 74 61 74 XVECTOR3* pRotat 4180: 69 6f 6e 43 65 6e 74 65 72 2c 20 44 33 44 58 51 ionCenter, D3DXQ 4190: 55 41 54 45 52 4e 49 4f 4e 2a 20 70 52 6f 74 61 UATERNION* pRota 41a0: 74 69 6f 6e 2c 20 44 33 44 58 56 45 43 54 4f 52 tion, D3DXVECTOR 41b0: 33 2a 20 70 54 72 61 6e 73 6c 61 74 69 6f 6e 29 3* pTranslation) 41c0: 3b 0d 0a 09 44 33 44 58 4d 41 54 52 49 58 2a 20 ;...D3DXMATRIX* 41d0: 44 33 44 58 4d 61 74 72 69 78 41 66 66 69 6e 65 D3DXMatrixAffine 41e0: 54 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 32 44 Transformation2D 41f0: 28 44 33 44 58 4d 41 54 52 49 58 2a 20 70 4f 75 (D3DXMATRIX* pOu 4200: 74 2c 20 46 4c 4f 41 54 20 53 63 61 6c 69 6e 67 t, FLOAT Scaling 4210: 2c 20 44 33 44 58 56 45 43 54 4f 52 32 2a 20 70 , D3DXVECTOR2* p 4220: 52 6f 74 61 74 69 6f 6e 43 65 6e 74 65 72 2c 20 RotationCenter, 4230: 46 4c 4f 41 54 20 52 6f 74 61 74 69 6f 6e 2c 20 FLOAT Rotation, 4240: 44 33 44 58 56 45 43 54 4f 52 32 2a 20 70 54 72 D3DXVECTOR2* pTr 4250: 61 6e 73 6c 61 74 69 6f 6e 29 3b 0d 0a 09 44 33 anslation);...D3 4260: 44 58 4d 41 54 52 49 58 2a 20 44 33 44 58 4d 61 DXMATRIX* D3DXMa 4270: 74 72 69 78 4c 6f 6f 6b 41 74 52 48 28 44 33 44 trixLookAtRH(D3D 4280: 58 4d 41 54 52 49 58 2a 20 70 4f 75 74 2c 20 44 XMATRIX* pOut, D 4290: 33 44 58 56 45 43 54 4f 52 33 2a 20 70 45 79 65 3DXVECTOR3* pEye 42a0: 2c 20 44 33 44 58 56 45 43 54 4f 52 33 2a 20 70 , D3DXVECTOR3* p 42b0: 41 74 2c 20 44 33 44 58 56 45 43 54 4f 52 33 2a At, D3DXVECTOR3* 42c0: 20 70 55 70 29 3b 0d 0a 09 44 33 44 58 4d 41 54 pUp);...D3DXMAT 42d0: 52 49 58 2a 20 44 33 44 58 4d 61 74 72 69 78 4c RIX* D3DXMatrixL 42e0: 6f 6f 6b 41 74 4c 48 28 44 33 44 58 4d 41 54 52 ookAtLH(D3DXMATR 42f0: 49 58 2a 20 70 4f 75 74 2c 20 44 33 44 58 56 45 IX* pOut, D3DXVE 4300: 43 54 4f 52 33 2a 20 70 45 79 65 2c 20 44 33 44 CTOR3* pEye, D3D 4310: 58 56 45 43 54 4f 52 33 2a 20 70 41 74 2c 20 44 XVECTOR3* pAt, D 4320: 33 44 58 56 45 43 54 4f 52 33 2a 20 70 55 70 29 3DXVECTOR3* pUp) 4330: 3b 0d 0a 09 44 33 44 58 4d 41 54 52 49 58 2a 20 ;...D3DXMATRIX* 4340: 44 33 44 58 4d 61 74 72 69 78 50 65 72 73 70 65 D3DXMatrixPerspe 4350: 63 74 69 76 65 52 48 28 44 33 44 58 4d 41 54 52 ctiveRH(D3DXMATR 4360: 49 58 2a 20 70 4f 75 74 2c 20 46 4c 4f 41 54 20 IX* pOut, FLOAT 4370: 77 2c 20 46 4c 4f 41 54 20 68 2c 20 46 4c 4f 41 w, FLOAT h, FLOA 4380: 54 20 7a 6e 2c 20 46 4c 4f 41 54 20 7a 66 29 3b T zn, FLOAT zf); 4390: 0d 0a 09 44 33 44 58 4d 41 54 52 49 58 2a 20 44 ...D3DXMATRIX* D 43a0: 33 44 58 4d 61 74 72 69 78 50 65 72 73 70 65 63 3DXMatrixPerspec 43b0: 74 69 76 65 4c 48 28 44 33 44 58 4d 41 54 52 49 tiveLH(D3DXMATRI 43c0: 58 2a 20 70 4f 75 74 2c 20 46 4c 4f 41 54 20 77 X* pOut, FLOAT w 43d0: 2c 20 46 4c 4f 41 54 20 68 2c 20 46 4c 4f 41 54 , FLOAT h, FLOAT 43e0: 20 7a 6e 2c 20 46 4c 4f 41 54 20 7a 66 29 3b 0d zn, FLOAT zf);. 43f0: 0a 09 44 33 44 58 4d 41 54 52 49 58 2a 20 44 33 ..D3DXMATRIX* D3 4400: 44 58 4d 61 74 72 69 78 50 65 72 73 70 65 63 74 DXMatrixPerspect 4410: 69 76 65 46 6f 76 52 48 28 44 33 44 58 4d 41 54 iveFovRH(D3DXMAT 4420: 52 49 58 2a 20 70 4f 75 74 2c 20 46 4c 4f 41 54 RIX* pOut, FLOAT 4430: 20 66 6f 76 79 2c 20 46 4c 4f 41 54 20 41 73 70 fovy, FLOAT Asp 4440: 65 63 74 2c 20 46 4c 4f 41 54 20 7a 6e 2c 20 46 ect, FLOAT zn, F 4450: 4c 4f 41 54 20 7a 66 29 3b 0d 0a 09 44 33 44 58 LOAT zf);...D3DX 4460: 4d 41 54 52 49 58 2a 20 44 33 44 58 4d 61 74 72 MATRIX* D3DXMatr 4470: 69 78 50 65 72 73 70 65 63 74 69 76 65 46 6f 76 ixPerspectiveFov 4480: 4c 48 28 44 33 44 58 4d 41 54 52 49 58 2a 20 70 LH(D3DXMATRIX* p 4490: 4f 75 74 2c 20 46 4c 4f 41 54 20 66 6f 76 79 2c Out, FLOAT fovy, 44a0: 20 46 4c 4f 41 54 20 41 73 70 65 63 74 2c 20 46 FLOAT Aspect, F 44b0: 4c 4f 41 54 20 7a 6e 2c 20 46 4c 4f 41 54 20 7a LOAT zn, FLOAT z 44c0: 66 29 3b 0d 0a 09 44 33 44 58 4d 41 54 52 49 58 f);...D3DXMATRIX 44d0: 2a 20 44 33 44 58 4d 61 74 72 69 78 50 65 72 73 * D3DXMatrixPers 44e0: 70 65 63 74 69 76 65 4f 66 66 43 65 6e 74 65 72 pectiveOffCenter 44f0: 52 48 28 44 33 44 58 4d 41 54 52 49 58 2a 20 70 RH(D3DXMATRIX* p 4500: 4f 75 74 2c 20 46 4c 4f 41 54 20 6c 2c 20 46 4c Out, FLOAT l, FL 4510: 4f 41 54 20 72 2c 20 46 4c 4f 41 54 20 62 2c 20 OAT r, FLOAT b, 4520: 46 4c 4f 41 54 20 74 2c 20 46 4c 4f 41 54 20 7a FLOAT t, FLOAT z 4530: 6e 2c 20 46 4c 4f 41 54 20 7a 66 29 3b 0d 0a 09 n, FLOAT zf);... 4540: 44 33 44 58 4d 41 54 52 49 58 2a 20 44 33 44 58 D3DXMATRIX* D3DX 4550: 4d 61 74 72 69 78 50 65 72 73 70 65 63 74 69 76 MatrixPerspectiv 4560: 65 4f 66 66 43 65 6e 74 65 72 4c 48 28 44 33 44 eOffCenterLH(D3D 4570: 58 4d 41 54 52 49 58 2a 20 70 4f 75 74 2c 20 46 XMATRIX* pOut, F 4580: 4c 4f 41 54 20 6c 2c 20 46 4c 4f 41 54 20 72 2c LOAT l, FLOAT r, 4590: 20 46 4c 4f 41 54 20 62 2c 20 46 4c 4f 41 54 20 FLOAT b, FLOAT 45a0: 74 2c 20 46 4c 4f 41 54 20 7a 6e 2c 20 46 4c 4f t, FLOAT zn, FLO 45b0: 41 54 20 7a 66 29 3b 0d 0a 09 44 33 44 58 4d 41 AT zf);...D3DXMA 45c0: 54 52 49 58 2a 20 44 33 44 58 4d 61 74 72 69 78 TRIX* D3DXMatrix 45d0: 4f 72 74 68 6f 52 48 28 44 33 44 58 4d 41 54 52 OrthoRH(D3DXMATR 45e0: 49 58 2a 20 70 4f 75 74 2c 20 46 4c 4f 41 54 20 IX* pOut, FLOAT 45f0: 77 2c 20 46 4c 4f 41 54 20 68 2c 20 46 4c 4f 41 w, FLOAT h, FLOA 4600: 54 20 7a 6e 2c 20 46 4c 4f 41 54 20 7a 66 29 3b T zn, FLOAT zf); 4610: 0d 0a 09 44 33 44 58 4d 41 54 52 49 58 2a 20 44 ...D3DXMATRIX* D 4620: 33 44 58 4d 61 74 72 69 78 4f 72 74 68 6f 4c 48 3DXMatrixOrthoLH 4630: 28 44 33 44 58 4d 41 54 52 49 58 2a 20 70 4f 75 (D3DXMATRIX* pOu 4640: 74 2c 20 46 4c 4f 41 54 20 77 2c 20 46 4c 4f 41 t, FLOAT w, FLOA 4650: 54 20 68 2c 20 46 4c 4f 41 54 20 7a 6e 2c 20 46 T h, FLOAT zn, F 4660: 4c 4f 41 54 20 7a 66 29 3b 0d 0a 09 44 33 44 58 LOAT zf);...D3DX 4670: 4d 41 54 52 49 58 2a 20 44 33 44 58 4d 61 74 72 MATRIX* D3DXMatr 4680: 69 78 4f 72 74 68 6f 4f 66 66 43 65 6e 74 65 72 ixOrthoOffCenter 4690: 52 48 28 44 33 44 58 4d 41 54 52 49 58 2a 20 70 RH(D3DXMATRIX* p 46a0: 4f 75 74 2c 20 46 4c 4f 41 54 20 6c 2c 20 46 4c Out, FLOAT l, FL 46b0: 4f 41 54 20 72 2c 20 46 4c 4f 41 54 20 62 2c 20 OAT r, FLOAT b, 46c0: 46 4c 4f 41 54 20 74 2c 20 46 4c 4f 41 54 20 7a FLOAT t, FLOAT z 46d0: 6e 2c 20 46 4c 4f 41 54 20 7a 66 29 3b 0d 0a 09 n, FLOAT zf);... 46e0: 44 33 44 58 4d 41 54 52 49 58 2a 20 44 33 44 58 D3DXMATRIX* D3DX 46f0: 4d 61 74 72 69 78 4f 72 74 68 6f 4f 66 66 43 65 MatrixOrthoOffCe 4700: 6e 74 65 72 4c 48 28 44 33 44 58 4d 41 54 52 49 nterLH(D3DXMATRI 4710: 58 2a 20 70 4f 75 74 2c 20 46 4c 4f 41 54 20 6c X* pOut, FLOAT l 4720: 2c 20 46 4c 4f 41 54 20 72 2c 20 46 4c 4f 41 54 , FLOAT r, FLOAT 4730: 20 62 2c 20 46 4c 4f 41 54 20 74 2c 20 46 4c 4f b, FLOAT t, FLO 4740: 41 54 20 7a 6e 2c 20 46 4c 4f 41 54 20 7a 66 29 AT zn, FLOAT zf) 4750: 3b 0d 0a 09 44 33 44 58 4d 41 54 52 49 58 2a 20 ;...D3DXMATRIX* 4760: 44 33 44 58 4d 61 74 72 69 78 53 68 61 64 6f 77 D3DXMatrixShadow 4770: 28 44 33 44 58 4d 41 54 52 49 58 2a 20 70 4f 75 (D3DXMATRIX* pOu 4780: 74 2c 20 44 33 44 58 56 45 43 54 4f 52 34 2a 20 t, D3DXVECTOR4* 4790: 70 4c 69 67 68 74 2c 20 44 33 44 58 50 4c 41 4e pLight, D3DXPLAN 47a0: 45 2a 20 70 50 6c 61 6e 65 29 3b 0d 0a 09 44 33 E* pPlane);...D3 47b0: 44 58 4d 41 54 52 49 58 2a 20 44 33 44 58 4d 61 DXMATRIX* D3DXMa 47c0: 74 72 69 78 52 65 66 6c 65 63 74 28 44 33 44 58 trixReflect(D3DX 47d0: 4d 41 54 52 49 58 2a 20 70 4f 75 74 2c 20 44 33 MATRIX* pOut, D3 47e0: 44 58 50 4c 41 4e 45 2a 20 70 50 6c 61 6e 65 29 DXPLANE* pPlane) 47f0: 3b 0d 0a 7d 0d 0a 0d 0a 66 6c 6f 61 74 20 44 33 ;..}....float D3 4800: 44 58 51 75 61 74 65 72 6e 69 6f 6e 4c 65 6e 67 DXQuaternionLeng 4810: 74 68 28 44 33 44 58 51 55 41 54 45 52 4e 49 4f th(D3DXQUATERNIO 4820: 4e 20 2a 70 51 29 20 7b 0d 0a 09 64 65 62 75 67 N *pQ) {...debug 4830: 28 44 33 44 58 31 30 5f 44 45 42 55 47 29 20 7b (D3DX10_DEBUG) { 4840: 0d 0a 09 09 69 66 20 28 70 51 20 69 73 20 6e 75 ....if (pQ is nu 4850: 6c 6c 29 20 72 65 74 75 72 6e 20 30 2e 30 66 3b ll) return 0.0f; 4860: 0d 0a 09 7d 0d 0a 20 20 20 20 72 65 74 75 72 6e ...}.. return 4870: 20 73 71 72 74 66 28 28 70 51 2e 78 20 2a 20 70 sqrtf((pQ.x * p 4880: 51 2e 78 29 20 2b 20 28 70 51 2e 79 20 2a 20 70 Q.x) + (pQ.y * p 4890: 51 2e 79 29 20 2b 20 28 70 51 2e 7a 20 2a 20 70 Q.y) + (pQ.z * p 48a0: 51 2e 7a 29 20 2b 20 28 70 51 2e 77 20 2a 20 70 Q.z) + (pQ.w * p 48b0: 51 2e 77 29 29 3b 0d 0a 7d 0d 0a 0d 0a 66 6c 6f Q.w));..}....flo 48c0: 61 74 20 44 33 44 58 51 75 61 74 65 72 6e 69 6f at D3DXQuaternio 48d0: 6e 4c 65 6e 67 74 68 53 71 28 44 33 44 58 51 55 nLengthSq(D3DXQU 48e0: 41 54 45 52 4e 49 4f 4e 20 2a 70 51 29 20 7b 0d ATERNION *pQ) {. 48f0: 0a 09 64 65 62 75 67 28 44 33 44 58 31 30 5f 44 ..debug(D3DX10_D 4900: 45 42 55 47 29 20 7b 0d 0a 09 09 69 66 28 70 51 EBUG) {....if(pQ 4910: 20 69 73 20 6e 75 6c 6c 29 20 72 65 74 75 72 6e is null) return 4920: 20 30 2e 30 66 3b 0d 0a 09 7d 0d 0a 20 20 20 20 0.0f;...}.. 4930: 72 65 74 75 72 6e 20 28 70 51 2e 78 20 2a 20 70 return (pQ.x * p 4940: 51 2e 78 29 20 2b 20 28 70 51 2e 79 20 2a 20 70 Q.x) + (pQ.y * p 4950: 51 2e 79 29 20 2b 20 28 70 51 2e 7a 20 2a 20 70 Q.y) + (pQ.z * p 4960: 51 2e 7a 29 20 2b 20 28 70 51 2e 77 20 2a 20 70 Q.z) + (pQ.w * p 4970: 51 2e 77 29 3b 0d 0a 7d 0d 0a 0d 0a 66 6c 6f 61 Q.w);..}....floa 4980: 74 20 44 33 44 58 51 75 61 74 65 72 6e 69 6f 6e t D3DXQuaternion 4990: 44 6f 74 28 44 33 44 58 51 55 41 54 45 52 4e 49 Dot(D3DXQUATERNI 49a0: 4f 4e 20 2a 70 51 31 2c 20 44 33 44 58 51 55 41 ON *pQ1, D3DXQUA 49b0: 54 45 52 4e 49 4f 4e 20 2a 70 51 32 29 20 7b 0d TERNION *pQ2) {. 49c0: 0a 09 64 65 62 75 67 28 44 33 44 58 31 30 5f 44 ..debug(D3DX10_D 49d0: 45 42 55 47 29 20 7b 0d 0a 09 09 69 66 28 28 70 EBUG) {....if((p 49e0: 51 31 20 69 73 20 6e 75 6c 6c 29 20 7c 7c 20 28 Q1 is null) || ( 49f0: 70 51 32 20 69 73 20 6e 75 6c 6c 29 29 20 72 65 pQ2 is null)) re 4a00: 74 75 72 6e 20 30 2e 30 66 3b 0d 0a 09 7d 0d 0a turn 0.0f;...}.. 4a10: 20 20 20 20 72 65 74 75 72 6e 20 28 70 51 31 2e return (pQ1. 4a20: 78 20 2a 20 70 51 32 2e 78 29 20 2b 20 28 70 51 x * pQ2.x) + (pQ 4a30: 31 2e 79 20 2a 20 70 51 32 2e 79 29 20 2b 20 28 1.y * pQ2.y) + ( 4a40: 70 51 31 2e 7a 20 2a 20 70 51 32 2e 7a 29 20 2b pQ1.z * pQ2.z) + 4a50: 20 28 70 51 31 2e 77 20 2a 20 70 51 32 2e 77 29 (pQ1.w * pQ2.w) 4a60: 3b 0d 0a 7d 0d 0a 0d 0a 44 33 44 58 51 55 41 54 ;..}....D3DXQUAT 4a70: 45 52 4e 49 4f 4e 2a 20 44 33 44 58 51 75 61 74 ERNION* D3DXQuat 4a80: 65 72 6e 69 6f 6e 49 64 65 6e 74 69 74 79 28 44 ernionIdentity(D 4a90: 33 44 58 51 55 41 54 45 52 4e 49 4f 4e 20 2a 70 3DXQUATERNION *p 4aa0: 4f 75 74 29 20 7b 0d 0a 09 64 65 62 75 67 28 44 Out) {...debug(D 4ab0: 33 44 58 31 30 5f 44 45 42 55 47 29 20 7b 0d 0a 3DX10_DEBUG) {.. 4ac0: 09 09 69 66 28 70 4f 75 74 20 69 73 20 6e 75 6c ..if(pOut is nul 4ad0: 6c 29 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0d l) return null;. 4ae0: 0a 09 7d 0d 0a 20 20 20 20 70 4f 75 74 2e 78 20 ..}.. pOut.x 4af0: 3d 20 70 4f 75 74 2e 79 20 3d 20 70 4f 75 74 2e = pOut.y = pOut. 4b00: 7a 20 3d 20 30 2e 30 66 3b 0d 0a 20 20 20 20 70 z = 0.0f;.. p 4b10: 4f 75 74 2e 77 20 3d 20 31 2e 30 66 3b 0d 0a 20 Out.w = 1.0f;.. 4b20: 20 20 20 72 65 74 75 72 6e 20 70 4f 75 74 3b 0d return pOut;. 4b30: 0a 7d 0d 0a 0d 0a 62 6f 6f 6c 20 44 33 44 58 51 .}....bool D3DXQ 4b40: 75 61 74 65 72 6e 69 6f 6e 49 73 49 64 65 6e 74 uaternionIsIdent 4b50: 69 74 79 28 44 33 44 58 51 55 41 54 45 52 4e 49 ity(D3DXQUATERNI 4b60: 4f 4e 20 2a 70 51 29 20 7b 0d 0a 09 64 65 62 75 ON *pQ) {...debu 4b70: 67 28 44 33 44 58 31 30 5f 44 45 42 55 47 29 20 g(D3DX10_DEBUG) 4b80: 7b 0d 0a 09 09 69 66 28 70 51 20 69 73 20 6e 75 {....if(pQ is nu 4b90: 6c 6c 29 20 72 65 74 75 72 6e 20 66 61 6c 73 65 ll) return false 4ba0: 3b 0d 0a 09 7d 0d 0a 20 20 20 20 72 65 74 75 72 ;...}.. retur 4bb0: 6e 20 28 70 51 2e 78 20 3d 3d 20 30 2e 30 66 29 n (pQ.x == 0.0f) 4bc0: 20 26 26 20 28 70 51 2e 79 20 3d 3d 20 30 2e 30 && (pQ.y == 0.0 4bd0: 66 29 20 26 26 20 28 70 51 2e 7a 20 3d 3d 20 30 f) && (pQ.z == 0 4be0: 2e 30 66 29 20 26 26 20 28 70 51 2e 77 20 3d 3d .0f) && (pQ.w == 4bf0: 20 31 2e 30 66 29 3b 0d 0a 7d 0d 0a 0d 0a 44 33 1.0f);..}....D3 4c00: 44 58 51 55 41 54 45 52 4e 49 4f 4e 2a 20 44 33 DXQUATERNION* D3 4c10: 44 58 51 75 61 74 65 72 6e 69 6f 6e 43 6f 6e 6a DXQuaternionConj 4c20: 75 67 61 74 65 28 44 33 44 58 51 55 41 54 45 52 ugate(D3DXQUATER 4c30: 4e 49 4f 4e 20 2a 70 4f 75 74 2c 20 44 33 44 58 NION *pOut, D3DX 4c40: 51 55 41 54 45 52 4e 49 4f 4e 20 2a 70 51 29 20 QUATERNION *pQ) 4c50: 7b 0d 0a 09 64 65 62 75 67 28 44 33 44 58 31 30 {...debug(D3DX10 4c60: 5f 44 45 42 55 47 29 20 7b 0d 0a 09 09 69 66 28 _DEBUG) {....if( 4c70: 28 70 4f 75 74 20 69 73 20 6e 75 6c 6c 29 20 7c (pOut is null) | 4c80: 7c 20 28 70 51 69 73 20 69 73 20 6e 75 6c 6c 29 | (pQis is null) 4c90: 29 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0d 0a ) return null;.. 4ca0: 09 7d 0d 0a 20 20 20 20 70 4f 75 74 2e 78 20 3d .}.. pOut.x = 4cb0: 20 2d 70 51 2e 78 3b 0d 0a 20 20 20 20 70 4f 75 -pQ.x;.. pOu 4cc0: 74 2e 79 20 3d 20 2d 70 51 2e 79 3b 0d 0a 20 20 t.y = -pQ.y;.. 4cd0: 20 20 70 4f 75 74 2e 7a 20 3d 20 2d 70 51 2e 7a pOut.z = -pQ.z 4ce0: 3b 0d 0a 20 20 20 20 70 4f 75 74 2e 77 20 3d 20 ;.. pOut.w = 4cf0: 20 70 51 2e 77 3b 0d 0a 20 20 20 20 72 65 74 75 pQ.w;.. retu 4d00: 72 6e 20 70 4f 75 74 3b 0d 0a 7d 0d 0a 0d 0a 65 rn pOut;..}....e 4d10: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 7b xtern(Windows) { 4d20: 0d 0a 09 76 6f 69 64 20 44 33 44 58 51 75 61 74 ...void D3DXQuat 4d30: 65 72 6e 69 6f 6e 54 6f 41 78 69 73 41 6e 67 6c ernionToAxisAngl 4d40: 65 28 44 33 44 58 51 55 41 54 45 52 4e 49 4f 4e e(D3DXQUATERNION 4d50: 2a 20 70 51 2c 20 44 33 44 58 56 45 43 54 4f 52 * pQ, D3DXVECTOR 4d60: 33 2a 20 70 41 78 69 73 2c 20 46 4c 4f 41 54 2a 3* pAxis, FLOAT* 4d70: 20 70 41 6e 67 6c 65 29 3b 0d 0a 09 44 33 44 58 pAngle);...D3DX 4d80: 51 55 41 54 45 52 4e 49 4f 4e 2a 20 44 33 44 58 QUATERNION* D3DX 4d90: 51 75 61 74 65 72 6e 69 6f 6e 52 6f 74 61 74 69 QuaternionRotati 4da0: 6f 6e 4d 61 74 72 69 78 28 44 33 44 58 51 55 41 onMatrix(D3DXQUA 4db0: 54 45 52 4e 49 4f 4e 2a 20 70 4f 75 74 2c 20 44 TERNION* pOut, D 4dc0: 33 44 58 4d 41 54 52 49 58 2a 20 70 4d 29 3b 0d 3DXMATRIX* pM);. 4dd0: 0a 09 44 33 44 58 51 55 41 54 45 52 4e 49 4f 4e ..D3DXQUATERNION 4de0: 2a 20 44 33 44 58 51 75 61 74 65 72 6e 69 6f 6e * D3DXQuaternion 4df0: 52 6f 74 61 74 69 6f 6e 41 78 69 73 28 44 33 44 RotationAxis(D3D 4e00: 58 51 55 41 54 45 52 4e 49 4f 4e 2a 20 70 4f 75 XQUATERNION* pOu 4e10: 74 2c 20 44 33 44 58 56 45 43 54 4f 52 33 2a 20 t, D3DXVECTOR3* 4e20: 70 56 2c 20 46 4c 4f 41 54 20 41 6e 67 6c 65 29 pV, FLOAT Angle) 4e30: 3b 0d 0a 09 44 33 44 58 51 55 41 54 45 52 4e 49 ;...D3DXQUATERNI 4e40: 4f 4e 2a 20 44 33 44 58 51 75 61 74 65 72 6e 69 ON* D3DXQuaterni 4e50: 6f 6e 52 6f 74 61 74 69 6f 6e 59 61 77 50 69 74 onRotationYawPit 4e60: 63 68 52 6f 6c 6c 28 44 33 44 58 51 55 41 54 45 chRoll(D3DXQUATE 4e70: 52 4e 49 4f 4e 2a 20 70 4f 75 74 2c 20 46 4c 4f RNION* pOut, FLO 4e80: 41 54 20 59 61 77 2c 20 46 4c 4f 41 54 20 50 69 AT Yaw, FLOAT Pi 4e90: 74 63 68 2c 20 46 4c 4f 41 54 20 52 6f 6c 6c 29 tch, FLOAT Roll) 4ea0: 3b 0d 0a 09 44 33 44 58 51 55 41 54 45 52 4e 49 ;...D3DXQUATERNI 4eb0: 4f 4e 2a 20 44 33 44 58 51 75 61 74 65 72 6e 69 ON* D3DXQuaterni 4ec0: 6f 6e 4d 75 6c 74 69 70 6c 79 28 44 33 44 58 51 onMultiply(D3DXQ 4ed0: 55 41 54 45 52 4e 49 4f 4e 2a 20 70 4f 75 74 2c UATERNION* pOut, 4ee0: 20 44 33 44 58 51 55 41 54 45 52 4e 49 4f 4e 2a D3DXQUATERNION* 4ef0: 20 70 51 31 2c 20 44 33 44 58 51 55 41 54 45 52 pQ1, D3DXQUATER 4f00: 4e 49 4f 4e 2a 20 70 51 32 29 3b 0d 0a 09 44 33 NION* pQ2);...D3 4f10: 44 58 51 55 41 54 45 52 4e 49 4f 4e 2a 20 44 33 DXQUATERNION* D3 4f20: 44 58 51 75 61 74 65 72 6e 69 6f 6e 4e 6f 72 6d DXQuaternionNorm 4f30: 61 6c 69 7a 65 28 44 33 44 58 51 55 41 54 45 52 alize(D3DXQUATER 4f40: 4e 49 4f 4e 2a 20 70 4f 75 74 2c 20 44 33 44 58 NION* pOut, D3DX 4f50: 51 55 41 54 45 52 4e 49 4f 4e 2a 20 70 51 29 3b QUATERNION* pQ); 4f60: 0d 0a 09 44 33 44 58 51 55 41 54 45 52 4e 49 4f ...D3DXQUATERNIO 4f70: 4e 2a 20 44 33 44 58 51 75 61 74 65 72 6e 69 6f N* D3DXQuaternio 4f80: 6e 49 6e 76 65 72 73 65 28 44 33 44 58 51 55 41 nInverse(D3DXQUA 4f90: 54 45 52 4e 49 4f 4e 2a 20 70 4f 75 74 2c 20 44 TERNION* pOut, D 4fa0: 33 44 58 51 55 41 54 45 52 4e 49 4f 4e 2a 20 70 3DXQUATERNION* p 4fb0: 51 29 3b 0d 0a 09 44 33 44 58 51 55 41 54 45 52 Q);...D3DXQUATER 4fc0: 4e 49 4f 4e 2a 20 44 33 44 58 51 75 61 74 65 72 NION* D3DXQuater 4fd0: 6e 69 6f 6e 4c 6e 28 44 33 44 58 51 55 41 54 45 nionLn(D3DXQUATE 4fe0: 52 4e 49 4f 4e 2a 20 70 4f 75 74 2c 20 44 33 44 RNION* pOut, D3D 4ff0: 58 51 55 41 54 45 52 4e 49 4f 4e 2a 20 70 51 29 XQUATERNION* pQ) 5000: 3b 0d 0a 09 44 33 44 58 51 55 41 54 45 52 4e 49 ;...D3DXQUATERNI 5010: 4f 4e 2a 20 44 33 44 58 51 75 61 74 65 72 6e 69 ON* D3DXQuaterni 5020: 6f 6e 45 78 70 28 44 33 44 58 51 55 41 54 45 52 onExp(D3DXQUATER 5030: 4e 49 4f 4e 2a 20 70 4f 75 74 2c 20 44 33 44 58 NION* pOut, D3DX 5040: 51 55 41 54 45 52 4e 49 4f 4e 2a 20 70 51 29 3b QUATERNION* pQ); 5050: 0d 0a 09 44 33 44 58 51 55 41 54 45 52 4e 49 4f ...D3DXQUATERNIO 5060: 4e 2a 20 44 33 44 58 51 75 61 74 65 72 6e 69 6f N* D3DXQuaternio 5070: 6e 53 6c 65 72 70 28 44 33 44 58 51 55 41 54 45 nSlerp(D3DXQUATE 5080: 52 4e 49 4f 4e 2a 20 70 4f 75 74 2c 20 44 33 44 RNION* pOut, D3D 5090: 58 51 55 41 54 45 52 4e 49 4f 4e 2a 20 70 51 31 XQUATERNION* pQ1 50a0: 2c 20 44 33 44 58 51 55 41 54 45 52 4e 49 4f 4e , D3DXQUATERNION 50b0: 2a 20 70 51 32 2c 20 46 4c 4f 41 54 20 74 29 3b * pQ2, FLOAT t); 50c0: 0d 0a 09 44 33 44 58 51 55 41 54 45 52 4e 49 4f ...D3DXQUATERNIO 50d0: 4e 2a 20 44 33 44 58 51 75 61 74 65 72 6e 69 6f N* D3DXQuaternio 50e0: 6e 53 71 75 61 64 28 44 33 44 58 51 55 41 54 45 nSquad(D3DXQUATE 50f0: 52 4e 49 4f 4e 2a 20 70 4f 75 74 2c 20 44 33 44 RNION* pOut, D3D 5100: 58 51 55 41 54 45 52 4e 49 4f 4e 2a 20 70 51 31 XQUATERNION* pQ1 5110: 2c 20 44 33 44 58 51 55 41 54 45 52 4e 49 4f 4e , D3DXQUATERNION 5120: 2a 20 70 41 2c 20 44 33 44 58 51 55 41 54 45 52 * pA, D3DXQUATER 5130: 4e 49 4f 4e 2a 20 70 42 2c 20 44 33 44 58 51 55 NION* pB, D3DXQU 5140: 41 54 45 52 4e 49 4f 4e 2a 20 70 43 2c 20 46 4c ATERNION* pC, FL 5150: 4f 41 54 20 74 29 3b 0d 0a 09 76 6f 69 64 20 44 OAT t);...void D 5160: 33 44 58 51 75 61 74 65 72 6e 69 6f 6e 53 71 75 3DXQuaternionSqu 5170: 61 64 53 65 74 75 70 28 44 33 44 58 51 55 41 54 adSetup(D3DXQUAT 5180: 45 52 4e 49 4f 4e 2a 20 70 41 4f 75 74 2c 20 44 ERNION* pAOut, D 5190: 33 44 58 51 55 41 54 45 52 4e 49 4f 4e 2a 20 70 3DXQUATERNION* p 51a0: 42 4f 75 74 2c 20 44 33 44 58 51 55 41 54 45 52 BOut, D3DXQUATER 51b0: 4e 49 4f 4e 2a 20 70 43 4f 75 74 2c 20 44 33 44 NION* pCOut, D3D 51c0: 58 51 55 41 54 45 52 4e 49 4f 4e 2a 20 70 51 30 XQUATERNION* pQ0 51d0: 2c 20 44 33 44 58 51 55 41 54 45 52 4e 49 4f 4e , D3DXQUATERNION 51e0: 2a 20 70 51 31 2c 20 44 33 44 58 51 55 41 54 45 * pQ1, D3DXQUATE 51f0: 52 4e 49 4f 4e 2a 20 70 51 32 2c 20 44 33 44 58 RNION* pQ2, D3DX 5200: 51 55 41 54 45 52 4e 49 4f 4e 2a 20 70 51 33 29 QUATERNION* pQ3) 5210: 3b 0d 0a 09 44 33 44 58 51 55 41 54 45 52 4e 49 ;...D3DXQUATERNI 5220: 4f 4e 2a 20 44 33 44 58 51 75 61 74 65 72 6e 69 ON* D3DXQuaterni 5230: 6f 6e 42 61 72 79 43 65 6e 74 72 69 63 28 44 33 onBaryCentric(D3 5240: 44 58 51 55 41 54 45 52 4e 49 4f 4e 2a 20 70 4f DXQUATERNION* pO 5250: 75 74 2c 20 44 33 44 58 51 55 41 54 45 52 4e 49 ut, D3DXQUATERNI 5260: 4f 4e 2a 20 70 51 31 2c 20 44 33 44 58 51 55 41 ON* pQ1, D3DXQUA 5270: 54 45 52 4e 49 4f 4e 2a 20 70 51 32 2c 20 44 33 TERNION* pQ2, D3 5280: 44 58 51 55 41 54 45 52 4e 49 4f 4e 2a 20 70 51 DXQUATERNION* pQ 5290: 33 2c 20 46 4c 4f 41 54 20 66 2c 20 46 4c 4f 41 3, FLOAT f, FLOA 52a0: 54 20 67 29 3b 0d 0a 7d 0d 0a 0d 0a 66 6c 6f 61 T g);..}....floa 52b0: 74 20 44 33 44 58 50 6c 61 6e 65 44 6f 74 28 44 t D3DXPlaneDot(D 52c0: 33 44 58 50 4c 41 4e 45 20 2a 70 50 2c 20 44 33 3DXPLANE *pP, D3 52d0: 44 58 56 45 43 54 4f 52 34 20 2a 70 56 29 20 7b DXVECTOR4 *pV) { 52e0: 0d 0a 09 64 65 62 75 67 28 44 33 44 58 31 30 5f ...debug(D3DX10_ 52f0: 44 45 42 55 47 29 20 7b 0d 0a 09 09 69 66 28 28 DEBUG) {....if(( 5300: 70 50 20 69 73 20 6e 75 6c 6c 29 20 7c 7c 20 28 pP is null) || ( 5310: 70 56 20 69 73 20 6e 75 6c 6c 29 29 20 72 65 74 pV is null)) ret 5320: 75 72 6e 20 30 2e 30 66 3b 0d 0a 09 7d 0d 0a 20 urn 0.0f;...}.. 5330: 20 20 20 72 65 74 75 72 6e 20 28 70 50 2e 61 20 return (pP.a 5340: 2a 20 70 56 2e 78 29 20 2b 20 28 70 50 2e 62 20 * pV.x) + (pP.b 5350: 2a 20 70 56 2e 79 29 20 2b 20 28 70 50 2e 63 20 * pV.y) + (pP.c 5360: 2a 20 70 56 2e 7a 29 20 2b 20 28 70 50 2e 64 20 * pV.z) + (pP.d 5370: 2a 20 70 56 2e 77 29 3b 0d 0a 7d 0d 0a 0d 0a 66 * pV.w);..}....f 5380: 6c 6f 61 74 20 44 33 44 58 50 6c 61 6e 65 44 6f loat D3DXPlaneDo 5390: 74 43 6f 6f 72 64 28 44 33 44 58 50 4c 41 4e 45 tCoord(D3DXPLANE 53a0: 20 2a 70 50 2c 20 44 33 44 58 56 45 43 54 4f 52 *pP, D3DXVECTOR 53b0: 33 20 2a 70 56 29 20 7b 0d 0a 09 64 65 62 75 67 3 *pV) {...debug 53c0: 28 44 33 44 58 31 30 5f 44 45 42 55 47 29 20 7b (D3DX10_DEBUG) { 53d0: 0d 0a 09 09 69 66 28 28 70 50 20 69 73 20 6e 75 ....if((pP is nu 53e0: 6c 6c 29 20 7c 7c 20 28 70 56 20 69 73 20 6e 75 ll) || (pV is nu 53f0: 6c 6c 29 29 20 72 65 74 75 72 6e 20 30 2e 30 66 ll)) return 0.0f 5400: 3b 0d 0a 09 7d 0d 0a 20 20 20 20 72 65 74 75 72 ;...}.. retur 5410: 6e 20 28 70 50 2e 61 20 2a 20 70 56 2e 78 29 20 n (pP.a * pV.x) 5420: 2b 20 28 70 50 2e 62 20 2a 20 70 56 2e 79 29 20 + (pP.b * pV.y) 5430: 2b 20 28 70 50 2e 63 20 2a 20 70 56 2e 7a 29 20 + (pP.c * pV.z) 5440: 2b 20 70 50 2e 64 3b 0d 0a 7d 0d 0a 0d 0a 66 6c + pP.d;..}....fl 5450: 6f 61 74 20 44 33 44 58 50 6c 61 6e 65 44 6f 74 oat D3DXPlaneDot 5460: 4e 6f 72 6d 61 6c 28 44 33 44 58 50 4c 41 4e 45 Normal(D3DXPLANE 5470: 20 2a 70 50 2c 20 44 33 44 58 56 45 43 54 4f 52 *pP, D3DXVECTOR 5480: 33 20 2a 70 56 29 20 7b 0d 0a 09 64 65 62 75 67 3 *pV) {...debug 5490: 28 44 33 44 58 31 30 5f 44 45 42 55 47 29 20 7b (D3DX10_DEBUG) { 54a0: 0d 0a 09 09 69 66 28 28 70 50 20 69 73 20 6e 75 ....if((pP is nu 54b0: 6c 6c 29 20 7c 7c 20 28 70 56 20 69 73 20 6e 75 ll) || (pV is nu 54c0: 6c 6c 29 29 20 72 65 74 75 72 6e 20 30 2e 30 66 ll)) return 0.0f 54d0: 3b 0d 0a 09 7d 0d 0a 20 20 20 20 72 65 74 75 72 ;...}.. retur 54e0: 6e 20 28 70 50 2e 61 20 2a 20 70 56 2e 78 29 20 n (pP.a * pV.x) 54f0: 2b 20 28 70 50 2e 62 20 2a 20 70 56 2e 79 29 20 + (pP.b * pV.y) 5500: 2b 20 28 70 50 2e 63 20 2a 20 70 56 2e 7a 29 3b + (pP.c * pV.z); 5510: 0d 0a 7d 0d 0a 0d 0a 44 33 44 58 50 4c 41 4e 45 ..}....D3DXPLANE 5520: 2a 20 44 33 44 58 50 6c 61 6e 65 53 63 61 6c 65 * D3DXPlaneScale 5530: 28 44 33 44 58 50 4c 41 4e 45 20 2a 70 4f 75 74 (D3DXPLANE *pOut 5540: 2c 20 44 33 44 58 50 4c 41 4e 45 20 2a 70 50 2c , D3DXPLANE *pP, 5550: 20 66 6c 6f 61 74 20 73 29 20 7b 0d 0a 09 64 65 float s) {...de 5560: 62 75 67 28 44 33 44 58 31 30 5f 44 45 42 55 47 bug(D3DX10_DEBUG 5570: 29 20 7b 0d 0a 09 09 69 66 28 28 70 4f 75 74 20 ) {....if((pOut 5580: 69 73 20 6e 75 6c 6c 29 20 7c 7c 20 28 70 50 20 is null) || (pP 5590: 69 73 20 6e 75 6c 6c 29 29 20 72 65 74 75 72 6e is null)) return 55a0: 20 6e 75 6c 6c 3b 0d 0a 09 7d 0d 0a 20 20 20 20 null;...}.. 55b0: 70 4f 75 74 2e 61 20 3d 20 70 50 2e 61 20 2a 20 pOut.a = pP.a * 55c0: 73 3b 0d 0a 20 20 20 20 70 4f 75 74 2e 62 20 3d s;.. pOut.b = 55d0: 20 70 50 2e 62 20 2a 20 73 3b 0d 0a 20 20 20 20 pP.b * s;.. 55e0: 70 4f 75 74 2e 63 20 3d 20 70 50 2e 63 20 2a 20 pOut.c = pP.c * 55f0: 73 3b 0d 0a 20 20 20 20 70 4f 75 74 2e 64 20 3d s;.. pOut.d = 5600: 20 70 50 2e 64 20 2a 20 73 3b 0d 0a 20 20 20 20 pP.d * s;.. 5610: 72 65 74 75 72 6e 20 70 4f 75 74 3b 0d 0a 7d 0d return pOut;..}. 5620: 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 ...extern(Window 5630: 73 29 20 7b 0d 0a 09 44 33 44 58 50 4c 41 4e 45 s) {...D3DXPLANE 5640: 2a 20 44 33 44 58 50 6c 61 6e 65 4e 6f 72 6d 61 * D3DXPlaneNorma 5650: 6c 69 7a 65 28 44 33 44 58 50 4c 41 4e 45 2a 20 lize(D3DXPLANE* 5660: 70 4f 75 74 2c 20 44 33 44 58 50 4c 41 4e 45 2a pOut, D3DXPLANE* 5670: 20 70 50 29 3b 0d 0a 09 44 33 44 58 56 45 43 54 pP);...D3DXVECT 5680: 4f 52 33 2a 20 44 33 44 58 50 6c 61 6e 65 49 6e OR3* D3DXPlaneIn 5690: 74 65 72 73 65 63 74 4c 69 6e 65 28 44 33 44 58 tersectLine(D3DX 56a0: 56 45 43 54 4f 52 33 2a 20 70 4f 75 74 2c 20 44 VECTOR3* pOut, D 56b0: 33 44 58 50 4c 41 4e 45 2a 20 70 50 2c 20 44 33 3DXPLANE* pP, D3 56c0: 44 58 56 45 43 54 4f 52 33 2a 20 70 56 31 2c 20 DXVECTOR3* pV1, 56d0: 44 33 44 58 56 45 43 54 4f 52 33 2a 20 70 56 32 D3DXVECTOR3* pV2 56e0: 29 3b 0d 0a 09 44 33 44 58 50 4c 41 4e 45 2a 20 );...D3DXPLANE* 56f0: 44 33 44 58 50 6c 61 6e 65 46 72 6f 6d 50 6f 69 D3DXPlaneFromPoi 5700: 6e 74 4e 6f 72 6d 61 6c 28 44 33 44 58 50 4c 41 ntNormal(D3DXPLA 5710: 4e 45 2a 20 70 4f 75 74 2c 20 44 33 44 58 56 45 NE* pOut, D3DXVE 5720: 43 54 4f 52 33 2a 20 70 50 6f 69 6e 74 2c 20 44 CTOR3* pPoint, D 5730: 33 44 58 56 45 43 54 4f 52 33 2a 20 70 4e 6f 72 3DXVECTOR3* pNor 5740: 6d 61 6c 29 3b 0d 0a 09 44 33 44 58 50 4c 41 4e mal);...D3DXPLAN 5750: 45 2a 20 44 33 44 58 50 6c 61 6e 65 46 72 6f 6d E* D3DXPlaneFrom 5760: 50 6f 69 6e 74 73 28 44 33 44 58 50 4c 41 4e 45 Points(D3DXPLANE 5770: 2a 20 70 4f 75 74 2c 20 44 33 44 58 56 45 43 54 * pOut, D3DXVECT 5780: 4f 52 33 2a 20 70 56 31 2c 20 44 33 44 58 56 45 OR3* pV1, D3DXVE 5790: 43 54 4f 52 33 2a 20 70 56 32 2c 20 44 33 44 58 CTOR3* pV2, D3DX 57a0: 56 45 43 54 4f 52 33 2a 20 70 56 33 29 3b 0d 0a VECTOR3* pV3);.. 57b0: 09 44 33 44 58 50 4c 41 4e 45 2a 20 44 33 44 58 .D3DXPLANE* D3DX 57c0: 50 6c 61 6e 65 54 72 61 6e 73 66 6f 72 6d 28 44 PlaneTransform(D 57d0: 33 44 58 50 4c 41 4e 45 2a 20 70 4f 75 74 2c 20 3DXPLANE* pOut, 57e0: 44 33 44 58 50 4c 41 4e 45 2a 20 70 50 2c 20 44 D3DXPLANE* pP, D 57f0: 33 44 58 4d 41 54 52 49 58 2a 20 70 4d 29 3b 0d 3DXMATRIX* pM);. 5800: 0a 09 44 33 44 58 50 4c 41 4e 45 2a 20 44 33 44 ..D3DXPLANE* D3D 5810: 58 50 6c 61 6e 65 54 72 61 6e 73 66 6f 72 6d 41 XPlaneTransformA 5820: 72 72 61 79 28 44 33 44 58 50 4c 41 4e 45 2a 20 rray(D3DXPLANE* 5830: 70 4f 75 74 2c 20 55 49 4e 54 20 4f 75 74 53 74 pOut, UINT OutSt 5840: 72 69 64 65 2c 20 44 33 44 58 50 4c 41 4e 45 2a ride, D3DXPLANE* 5850: 20 70 50 2c 20 55 49 4e 54 20 50 53 74 72 69 64 pP, UINT PStrid 5860: 65 2c 20 44 33 44 58 4d 41 54 52 49 58 2a 20 70 e, D3DXMATRIX* p 5870: 4d 2c 20 55 49 4e 54 20 6e 29 3b 0d 0a 7d 0d 0a M, UINT n);..}.. 5880: 0d 0a 44 33 44 58 43 4f 4c 4f 52 2a 20 44 33 44 ..D3DXCOLOR* D3D 5890: 58 43 6f 6c 6f 72 4e 65 67 61 74 69 76 65 28 44 XColorNegative(D 58a0: 33 44 58 43 4f 4c 4f 52 2a 20 70 4f 75 74 2c 20 3DXCOLOR* pOut, 58b0: 44 33 44 58 43 4f 4c 4f 52 2a 20 70 43 29 20 7b D3DXCOLOR* pC) { 58c0: 0d 0a 09 64 65 62 75 67 28 44 33 44 58 31 30 5f ...debug(D3DX10_ 58d0: 44 45 42 55 47 29 20 7b 0d 0a 09 09 69 66 28 28 DEBUG) {....if(( 58e0: 70 4f 75 74 20 69 73 20 6e 75 6c 6c 29 20 7c 7c pOut is null) || 58f0: 20 28 70 43 20 69 73 20 6e 75 6c 6c 29 29 20 72 (pC is null)) r 5900: 65 74 75 72 6e 20 6e 75 6c 6c 3b 0d 0a 09 7d 0d eturn null;...}. 5910: 0a 20 20 20 20 70 4f 75 74 2e 72 20 3d 20 31 2e . pOut.r = 1. 5920: 30 66 20 2d 20 70 43 2e 72 3b 0d 0a 20 20 20 20 0f - pC.r;.. 5930: 70 4f 75 74 2e 67 20 3d 20 31 2e 30 66 20 2d 20 pOut.g = 1.0f - 5940: 70 43 2e 67 3b 0d 0a 20 20 20 20 70 4f 75 74 2e pC.g;.. pOut. 5950: 62 20 3d 20 31 2e 30 66 20 2d 20 70 43 2e 62 3b b = 1.0f - pC.b; 5960: 0d 0a 20 20 20 20 70 4f 75 74 2e 61 20 3d 20 70 .. pOut.a = p 5970: 43 2e 61 3b 0d 0a 20 20 20 20 72 65 74 75 72 6e C.a;.. return 5980: 20 70 4f 75 74 3b 0d 0a 7d 0d 0a 0d 0a 44 33 44 pOut;..}....D3D 5990: 58 43 4f 4c 4f 52 2a 20 44 33 44 58 43 6f 6c 6f XCOLOR* D3DXColo 59a0: 72 41 64 64 28 44 33 44 58 43 4f 4c 4f 52 2a 20 rAdd(D3DXCOLOR* 59b0: 70 4f 75 74 2c 20 44 33 44 58 43 4f 4c 4f 52 2a pOut, D3DXCOLOR* 59c0: 20 70 43 31 2c 20 44 33 44 58 43 4f 4c 4f 52 2a pC1, D3DXCOLOR* 59d0: 20 70 43 32 29 20 7b 0d 0a 09 64 65 62 75 67 28 pC2) {...debug( 59e0: 44 33 44 58 31 30 5f 44 45 42 55 47 29 20 7b 0d D3DX10_DEBUG) {. 59f0: 0a 09 09 69 66 28 28 70 4f 75 74 20 69 73 20 6e ...if((pOut is n 5a00: 75 6c 6c 29 20 7c 7c 20 28 70 43 31 20 69 73 20 ull) || (pC1 is 5a10: 6e 75 6c 6c 29 20 7c 7c 20 28 70 43 32 20 69 73 null) || (pC2 is 5a20: 20 6e 75 6c 6c 29 29 20 72 65 74 75 72 6e 20 6e null)) return n 5a30: 75 6c 6c 3b 0d 0a 09 7d 0d 0a 20 20 20 20 70 4f ull;...}.. pO 5a40: 75 74 2e 72 20 3d 20 70 43 31 2e 72 20 2b 20 70 ut.r = pC1.r + p 5a50: 43 32 2e 72 3b 0d 0a 20 20 20 20 70 4f 75 74 2e C2.r;.. pOut. 5a60: 67 20 3d 20 70 43 31 2e 67 20 2b 20 70 43 32 2e g = pC1.g + pC2. 5a70: 67 3b 0d 0a 20 20 20 20 70 4f 75 74 2e 62 20 3d g;.. pOut.b = 5a80: 20 70 43 31 2e 62 20 2b 20 70 43 32 2e 62 3b 0d pC1.b + pC2.b;. 5a90: 0a 20 20 20 20 70 4f 75 74 2e 61 20 3d 20 70 43 . pOut.a = pC 5aa0: 31 2e 61 20 2b 20 70 43 32 2e 61 3b 0d 0a 20 20 1.a + pC2.a;.. 5ab0: 20 20 72 65 74 75 72 6e 20 70 4f 75 74 3b 0d 0a return pOut;.. 5ac0: 7d 0d 0a 0d 0a 44 33 44 58 43 4f 4c 4f 52 2a 20 }....D3DXCOLOR* 5ad0: 44 33 44 58 43 6f 6c 6f 72 53 75 62 74 72 61 63 D3DXColorSubtrac 5ae0: 74 28 44 33 44 58 43 4f 4c 4f 52 2a 20 70 4f 75 t(D3DXCOLOR* pOu 5af0: 74 2c 20 44 33 44 58 43 4f 4c 4f 52 2a 20 70 43 t, D3DXCOLOR* pC 5b00: 31 2c 20 44 33 44 58 43 4f 4c 4f 52 2a 20 70 43 1, D3DXCOLOR* pC 5b10: 32 29 20 7b 0d 0a 09 64 65 62 75 67 28 44 33 44 2) {...debug(D3D 5b20: 58 31 30 5f 44 45 42 55 47 29 20 7b 0d 0a 09 09 X10_DEBUG) {.... 5b30: 69 66 28 28 70 4f 75 74 20 69 73 20 6e 75 6c 6c if((pOut is null 5b40: 29 20 7c 7c 20 28 70 43 31 20 69 73 20 6e 75 6c ) || (pC1 is nul 5b50: 6c 29 20 7c 7c 20 28 70 43 32 20 69 73 20 6e 75 l) || (pC2 is nu 5b60: 6c 6c 29 29 20 72 65 74 75 72 6e 20 6e 75 6c 6c ll)) return null 5b70: 3b 0d 0a 09 7d 0d 0a 20 20 20 20 70 4f 75 74 2e ;...}.. pOut. 5b80: 72 20 3d 20 70 43 31 2e 72 20 2d 20 70 43 32 2e r = pC1.r - pC2. 5b90: 72 3b 0d 0a 20 20 20 20 70 4f 75 74 2e 67 20 3d r;.. pOut.g = 5ba0: 20 70 43 31 2e 67 20 2d 20 70 43 32 2e 67 3b 0d pC1.g - pC2.g;. 5bb0: 0a 20 20 20 20 70 4f 75 74 2e 62 20 3d 20 70 43 . pOut.b = pC 5bc0: 31 2e 62 20 2d 20 70 43 32 2e 62 3b 0d 0a 20 20 1.b - pC2.b;.. 5bd0: 20 20 70 4f 75 74 2e 61 20 3d 20 70 43 31 2e 61 pOut.a = pC1.a 5be0: 20 2d 20 70 43 32 2e 61 3b 0d 0a 20 20 20 20 72 - pC2.a;.. r 5bf0: 65 74 75 72 6e 20 70 4f 75 74 3b 0d 0a 7d 0d 0a eturn pOut;..}.. 5c00: 0d 0a 44 33 44 58 43 4f 4c 4f 52 2a 20 44 33 44 ..D3DXCOLOR* D3D 5c10: 58 43 6f 6c 6f 72 53 63 61 6c 65 28 44 33 44 58 XColorScale(D3DX 5c20: 43 4f 4c 4f 52 2a 20 70 4f 75 74 2c 20 44 33 44 COLOR* pOut, D3D 5c30: 58 43 4f 4c 4f 52 2a 20 70 43 2c 20 66 6c 6f 61 XCOLOR* pC, floa 5c40: 74 20 73 29 20 7b 0d 0a 09 64 65 62 75 67 28 44 t s) {...debug(D 5c50: 33 44 58 31 30 5f 44 45 42 55 47 29 20 7b 0d 0a 3DX10_DEBUG) {.. 5c60: 09 09 69 66 28 28 70 4f 75 74 20 69 73 20 6e 75 ..if((pOut is nu 5c70: 6c 6c 29 20 7c 7c 20 28 70 43 20 69 73 20 6e 75 ll) || (pC is nu 5c80: 6c 6c 29 29 20 72 65 74 75 72 6e 20 6e 75 6c 6c ll)) return null 5c90: 3b 0d 0a 09 7d 0d 0a 20 20 20 20 70 4f 75 74 2e ;...}.. pOut. 5ca0: 72 20 3d 20 70 43 2e 72 20 2a 20 73 3b 0d 0a 20 r = pC.r * s;.. 5cb0: 20 20 20 70 4f 75 74 2e 67 20 3d 20 70 43 2e 67 pOut.g = pC.g 5cc0: 20 2a 20 73 3b 0d 0a 20 20 20 20 70 4f 75 74 2e * s;.. pOut. 5cd0: 62 20 3d 20 70 43 2e 62 20 2a 20 73 3b 0d 0a 20 b = pC.b * s;.. 5ce0: 20 20 20 70 4f 75 74 2e 61 20 3d 20 70 43 2e 61 pOut.a = pC.a 5cf0: 20 2a 20 73 3b 0d 0a 20 20 20 20 72 65 74 75 72 * s;.. retur 5d00: 6e 20 70 4f 75 74 3b 0d 0a 7d 0d 0a 0d 0a 44 33 n pOut;..}....D3 5d10: 44 58 43 4f 4c 4f 52 2a 20 44 33 44 58 43 6f 6c DXCOLOR* D3DXCol 5d20: 6f 72 4d 6f 64 75 6c 61 74 65 28 44 33 44 58 43 orModulate(D3DXC 5d30: 4f 4c 4f 52 2a 20 70 4f 75 74 2c 20 44 33 44 58 OLOR* pOut, D3DX 5d40: 43 4f 4c 4f 52 2a 20 70 43 31 2c 20 44 33 44 58 COLOR* pC1, D3DX 5d50: 43 4f 4c 4f 52 2a 20 70 43 32 29 20 7b 0d 0a 09 COLOR* pC2) {... 5d60: 64 65 62 75 67 28 44 33 44 58 31 30 5f 44 45 42 debug(D3DX10_DEB 5d70: 55 47 29 20 7b 0d 0a 09 09 69 66 28 28 70 4f 75 UG) {....if((pOu 5d80: 74 20 69 73 20 6e 75 6c 6c 29 20 7c 7c 20 28 70 t is null) || (p 5d90: 43 31 20 69 73 20 6e 75 6c 6c 29 20 7c 7c 20 28 C1 is null) || ( 5da0: 70 43 32 20 69 73 20 6e 75 6c 6c 29 29 20 72 65 pC2 is null)) re 5db0: 74 75 72 6e 20 6e 75 6c 6c 3b 0d 0a 09 7d 0d 0a turn null;...}.. 5dc0: 20 20 20 20 70 4f 75 74 2e 72 20 3d 20 70 43 31 pOut.r = pC1 5dd0: 2e 72 20 2a 20 70 43 32 2e 72 3b 0d 0a 20 20 20 .r * pC2.r;.. 5de0: 20 70 4f 75 74 2e 67 20 3d 20 70 43 31 2e 67 20 pOut.g = pC1.g 5df0: 2a 20 70 43 32 2e 67 3b 0d 0a 20 20 20 20 70 4f * pC2.g;.. pO 5e00: 75 74 2e 62 20 3d 20 70 43 31 2e 62 20 2a 20 70 ut.b = pC1.b * p 5e10: 43 32 2e 62 3b 0d 0a 20 20 20 20 70 4f 75 74 2e C2.b;.. pOut. 5e20: 61 20 3d 20 70 43 31 2e 61 20 2a 20 70 43 32 2e a = pC1.a * pC2. 5e30: 61 3b 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 70 a;.. return p 5e40: 4f 75 74 3b 0d 0a 7d 0d 0a 0d 0a 44 33 44 58 43 Out;..}....D3DXC 5e50: 4f 4c 4f 52 2a 20 44 33 44 58 43 6f 6c 6f 72 4c OLOR* D3DXColorL 5e60: 65 72 70 28 44 33 44 58 43 4f 4c 4f 52 2a 20 70 erp(D3DXCOLOR* p 5e70: 4f 75 74 2c 20 44 33 44 58 43 4f 4c 4f 52 2a 20 Out, D3DXCOLOR* 5e80: 70 43 31 2c 20 44 33 44 58 43 4f 4c 4f 52 2a 20 pC1, D3DXCOLOR* 5e90: 70 43 32 2c 20 66 6c 6f 61 74 20 73 29 20 7b 0d pC2, float s) {. 5ea0: 0a 09 64 65 62 75 67 28 44 33 44 58 31 30 5f 44 ..debug(D3DX10_D 5eb0: 45 42 55 47 29 20 7b 0d 0a 09 09 69 66 28 28 70 EBUG) {....if((p 5ec0: 4f 75 74 20 69 73 20 6e 75 6c 6c 29 20 7c 7c 20 Out is null) || 5ed0: 28 70 43 31 20 69 73 20 6e 75 6c 6c 29 20 7c 7c (pC1 is null) || 5ee0: 20 28 70 43 32 20 69 73 20 6e 75 6c 6c 29 29 20 (pC2 is null)) 5ef0: 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0d 0a 09 7d return null;...} 5f00: 0d 0a 20 20 20 20 70 4f 75 74 2e 72 20 3d 20 70 .. pOut.r = p 5f10: 43 31 2e 72 20 2b 20 73 20 2a 20 28 70 43 32 2e C1.r + s * (pC2. 5f20: 72 20 2d 20 70 43 31 2e 72 29 3b 0d 0a 20 20 20 r - pC1.r);.. 5f30: 20 70 4f 75 74 2e 67 20 3d 20 70 43 31 2e 67 20 pOut.g = pC1.g 5f40: 2b 20 73 20 2a 20 28 70 43 32 2e 67 20 2d 20 70 + s * (pC2.g - p 5f50: 43 31 2e 67 29 3b 0d 0a 20 20 20 20 70 4f 75 74 C1.g);.. pOut 5f60: 2e 62 20 3d 20 70 43 31 2e 62 20 2b 20 73 20 2a .b = pC1.b + s * 5f70: 20 28 70 43 32 2e 62 20 2d 20 70 43 31 2e 62 29 (pC2.b - pC1.b) 5f80: 3b 0d 0a 20 20 20 20 70 4f 75 74 2e 61 20 3d 20 ;.. pOut.a = 5f90: 70 43 31 2e 61 20 2b 20 73 20 2a 20 28 70 43 32 pC1.a + s * (pC2 5fa0: 2e 61 20 2d 20 70 43 31 2e 61 29 3b 0d 0a 20 20 .a - pC1.a);.. 5fb0: 20 20 72 65 74 75 72 6e 20 70 4f 75 74 3b 0d 0a return pOut;.. 5fc0: 7d 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 }....extern(Wind 5fd0: 6f 77 73 29 20 7b 0d 0a 09 44 33 44 58 43 4f 4c ows) {...D3DXCOL 5fe0: 4f 52 2a 20 44 33 44 58 43 6f 6c 6f 72 41 64 6a OR* D3DXColorAdj 5ff0: 75 73 74 53 61 74 75 72 61 74 69 6f 6e 28 44 33 ustSaturation(D3 6000: 44 58 43 4f 4c 4f 52 2a 20 70 4f 75 74 2c 20 44 DXCOLOR* pOut, D 6010: 33 44 58 43 4f 4c 4f 52 2a 20 70 43 2c 20 66 6c 3DXCOLOR* pC, fl 6020: 6f 61 74 20 73 29 3b 0d 0a 09 44 33 44 58 43 4f oat s);...D3DXCO 6030: 4c 4f 52 2a 20 44 33 44 58 43 6f 6c 6f 72 41 64 LOR* D3DXColorAd 6040: 6a 75 73 74 43 6f 6e 74 72 61 73 74 28 44 33 44 justContrast(D3D 6050: 58 43 4f 4c 4f 52 2a 20 70 4f 75 74 2c 20 44 33 XCOLOR* pOut, D3 6060: 44 58 43 4f 4c 4f 52 2a 20 70 43 2c 20 66 6c 6f DXCOLOR* pC, flo 6070: 61 74 20 63 29 3b 0d 0a 09 46 4c 4f 41 54 20 44 at c);...FLOAT D 6080: 33 44 58 46 72 65 73 6e 65 6c 54 65 72 6d 28 66 3DXFresnelTerm(f 6090: 6c 6f 61 74 20 43 6f 73 54 68 65 74 61 2c 20 66 loat CosTheta, f 60a0: 6c 6f 61 74 20 52 65 66 72 61 63 74 69 6f 6e 49 loat RefractionI 60b0: 6e 64 65 78 29 3b 20 20 20 20 20 0d 0a 7d 0d 0a ndex); ..}.. 60c0: 0d 0a 65 78 74 65 72 6e 20 28 43 29 20 63 6f 6e ..extern (C) con 60d0: 73 74 20 47 55 49 44 20 49 49 44 5f 49 44 33 44 st GUID IID_ID3D 60e0: 58 4d 61 74 72 69 78 53 74 61 63 6b 20 3d 20 7b XMatrixStack = { 60f0: 30 78 63 37 38 38 35 62 61 37 2c 20 30 78 66 39 0xc7885ba7, 0xf9 6100: 39 30 2c 20 30 78 34 66 65 37 2c 20 5b 30 78 39 90, 0x4fe7, [0x9 6110: 32 2c 20 30 78 32 64 2c 20 30 78 38 35 2c 20 30 2, 0x2d, 0x85, 0 6120: 78 31 35 2c 20 30 78 65 34 2c 20 30 78 37 37 2c x15, 0xe4, 0x77, 6130: 20 30 78 64 64 2c 20 30 78 38 35 5d 7d 3b 0d 0a 0xdd, 0x85]};.. 6140: 0d 0a 69 6e 74 65 72 66 61 63 65 20 49 44 33 44 ..interface ID3D 6150: 58 4d 61 74 72 69 78 53 74 61 63 6b 20 3a 20 49 XMatrixStack : I 6160: 55 6e 6b 6e 6f 77 6e 20 7b 0d 0a 09 65 78 74 65 Unknown {...exte 6170: 72 6e 28 57 69 6e 64 6f 77 73 29 20 3a 0d 0a 09 rn(Windows) :... 6180: 48 52 45 53 55 4c 54 20 50 6f 70 28 29 3b 0d 0a HRESULT Pop();.. 6190: 09 48 52 45 53 55 4c 54 20 50 75 73 68 28 29 3b .HRESULT Push(); 61a0: 0d 0a 09 48 52 45 53 55 4c 54 20 4c 6f 61 64 49 ...HRESULT LoadI 61b0: 64 65 6e 74 69 74 79 28 29 3b 0d 0a 09 48 52 45 dentity();...HRE 61c0: 53 55 4c 54 20 4c 6f 61 64 4d 61 74 72 69 78 28 SULT LoadMatrix( 61d0: 44 33 44 58 4d 41 54 52 49 58 2a 20 70 4d 20 29 D3DXMATRIX* pM ) 61e0: 3b 0d 0a 09 48 52 45 53 55 4c 54 20 4d 75 6c 74 ;...HRESULT Mult 61f0: 4d 61 74 72 69 78 28 44 33 44 58 4d 41 54 52 49 Matrix(D3DXMATRI 6200: 58 2a 20 70 4d 20 29 3b 0d 0a 09 48 52 45 53 55 X* pM );...HRESU 6210: 4c 54 20 4d 75 6c 74 4d 61 74 72 69 78 4c 6f 63 LT MultMatrixLoc 6220: 61 6c 28 44 33 44 58 4d 41 54 52 49 58 2a 20 70 al(D3DXMATRIX* p 6230: 4d 20 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 52 M );...HRESULT R 6240: 6f 74 61 74 65 41 78 69 73 28 44 33 44 58 56 45 otateAxis(D3DXVE 6250: 43 54 4f 52 33 2a 20 70 56 2c 20 66 6c 6f 61 74 CTOR3* pV, float 6260: 20 41 6e 67 6c 65 29 3b 0d 0a 09 48 52 45 53 55 Angle);...HRESU 6270: 4c 54 20 52 6f 74 61 74 65 41 78 69 73 4c 6f 63 LT RotateAxisLoc 6280: 61 6c 28 44 33 44 58 56 45 43 54 4f 52 33 2a 20 al(D3DXVECTOR3* 6290: 70 56 2c 20 66 6c 6f 61 74 20 41 6e 67 6c 65 29 pV, float Angle) 62a0: 3b 0d 0a 09 48 52 45 53 55 4c 54 20 52 6f 74 61 ;...HRESULT Rota 62b0: 74 65 59 61 77 50 69 74 63 68 52 6f 6c 6c 28 66 teYawPitchRoll(f 62c0: 6c 6f 61 74 20 59 61 77 2c 20 66 6c 6f 61 74 20 loat Yaw, float 62d0: 50 69 74 63 68 2c 20 66 6c 6f 61 74 20 52 6f 6c Pitch, float Rol 62e0: 6c 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 52 6f l);...HRESULT Ro 62f0: 74 61 74 65 59 61 77 50 69 74 63 68 52 6f 6c 6c tateYawPitchRoll 6300: 4c 6f 63 61 6c 28 66 6c 6f 61 74 20 59 61 77 2c Local(float Yaw, 6310: 20 66 6c 6f 61 74 20 50 69 74 63 68 2c 20 66 6c float Pitch, fl 6320: 6f 61 74 20 52 6f 6c 6c 29 3b 0d 0a 09 48 52 45 oat Roll);...HRE 6330: 53 55 4c 54 20 53 63 61 6c 65 28 66 6c 6f 61 74 SULT Scale(float 6340: 20 78 2c 20 66 6c 6f 61 74 20 79 2c 20 66 6c 6f x, float y, flo 6350: 61 74 20 7a 29 3b 0d 0a 09 48 52 45 53 55 4c 54 at z);...HRESULT 6360: 20 53 63 61 6c 65 4c 6f 63 61 6c 28 66 6c 6f 61 ScaleLocal(floa 6370: 74 20 78 2c 20 66 6c 6f 61 74 20 79 2c 20 66 6c t x, float y, fl 6380: 6f 61 74 20 7a 29 3b 0d 0a 09 48 52 45 53 55 4c oat z);...HRESUL 6390: 54 20 54 72 61 6e 73 6c 61 74 65 28 66 6c 6f 61 T Translate(floa 63a0: 74 20 78 2c 20 66 6c 6f 61 74 20 79 2c 20 66 6c t x, float y, fl 63b0: 6f 61 74 20 7a 20 29 3b 0d 0a 09 48 52 45 53 55 oat z );...HRESU 63c0: 4c 54 20 54 72 61 6e 73 6c 61 74 65 4c 6f 63 61 LT TranslateLoca 63d0: 6c 28 66 6c 6f 61 74 20 78 2c 20 66 6c 6f 61 74 l(float x, float 63e0: 20 79 2c 20 66 6c 6f 61 74 20 7a 29 3b 0d 0a 09 y, float z);... 63f0: 44 33 44 58 4d 41 54 52 49 58 2a 20 47 65 74 54 D3DXMATRIX* GetT 6400: 6f 70 28 29 3b 0d 0a 7d 0d 0a 0d 0a 2f 2f 54 4f op();..}....//TO 6410: 44 4f 20 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 DO extern(Window 6420: 73 29 20 48 52 45 53 55 4c 54 20 44 33 44 58 43 s) HRESULT D3DXC 6430: 72 65 61 74 65 4d 61 74 72 69 78 53 74 61 63 6b reateMatrixStack 6440: 28 55 49 4e 54 20 46 6c 61 67 73 2c 20 44 33 44 (UINT Flags, D3D 6450: 58 4d 41 54 52 49 58 53 54 41 43 4b 2a 20 70 70 XMATRIXSTACK* pp 6460: 53 74 61 63 6b 29 3b 0d 0a 0d 0a 63 6f 6e 73 74 Stack);....const 6470: 20 44 33 44 58 53 48 5f 4d 49 4e 4f 52 44 45 52 D3DXSH_MINORDER 6480: 20 3d 20 32 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 = 2;..const D3D 6490: 58 53 48 5f 4d 41 58 4f 52 44 45 52 20 3d 20 36 XSH_MAXORDER = 6 64a0: 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 ;....extern(Wind 64b0: 6f 77 73 29 20 7b 0d 0a 09 66 6c 6f 61 74 2a 20 ows) {...float* 64c0: 44 33 44 58 53 48 45 76 61 6c 44 69 72 65 63 74 D3DXSHEvalDirect 64d0: 69 6f 6e 28 66 6c 6f 61 74 2a 20 70 4f 75 74 2c ion(float* pOut, 64e0: 20 55 49 4e 54 20 4f 72 64 65 72 2c 20 44 33 44 UINT Order, D3D 64f0: 58 56 45 43 54 4f 52 33 2a 20 70 44 69 72 29 3b XVECTOR3* pDir); 6500: 0d 0a 09 66 6c 6f 61 74 2a 20 44 33 44 58 53 48 ...float* D3DXSH 6510: 52 6f 74 61 74 65 28 66 6c 6f 61 74 2a 20 70 4f Rotate(float* pO 6520: 75 74 2c 20 55 49 4e 54 20 4f 72 64 65 72 2c 20 ut, UINT Order, 6530: 44 33 44 58 4d 41 54 52 49 58 2a 20 70 4d 61 74 D3DXMATRIX* pMat 6540: 72 69 78 2c 20 66 6c 6f 61 74 2a 20 70 49 6e 29 rix, float* pIn) 6550: 3b 0d 0a 09 66 6c 6f 61 74 2a 20 44 33 44 58 53 ;...float* D3DXS 6560: 48 52 6f 74 61 74 65 5a 28 66 6c 6f 61 74 2a 20 HRotateZ(float* 6570: 70 4f 75 74 2c 20 55 49 4e 54 20 4f 72 64 65 72 pOut, UINT Order 6580: 2c 20 66 6c 6f 61 74 20 41 6e 67 6c 65 2c 20 66 , float Angle, f 6590: 6c 6f 61 74 2a 20 70 49 6e 29 3b 0d 0a 09 66 6c loat* pIn);...fl 65a0: 6f 61 74 2a 20 44 33 44 58 53 48 41 64 64 28 66 oat* D3DXSHAdd(f 65b0: 6c 6f 61 74 2a 20 70 4f 75 74 2c 20 55 49 4e 54 loat* pOut, UINT 65c0: 20 4f 72 64 65 72 2c 20 66 6c 6f 61 74 2a 20 70 Order, float* p 65d0: 41 2c 20 66 6c 6f 61 74 2a 20 70 42 29 3b 0d 0a A, float* pB);.. 65e0: 09 66 6c 6f 61 74 2a 20 44 33 44 58 53 48 53 63 .float* D3DXSHSc 65f0: 61 6c 65 28 66 6c 6f 61 74 2a 20 70 4f 75 74 2c ale(float* pOut, 6600: 20 55 49 4e 54 20 4f 72 64 65 72 2c 20 66 6c 6f UINT Order, flo 6610: 61 74 2a 20 70 49 6e 2c 20 66 6c 6f 61 74 20 53 at* pIn, float S 6620: 63 61 6c 65 29 3b 0d 0a 09 66 6c 6f 61 74 20 44 cale);...float D 6630: 33 44 58 53 48 44 6f 74 28 55 49 4e 54 20 4f 72 3DXSHDot(UINT Or 6640: 64 65 72 2c 20 66 6c 6f 61 74 2a 20 70 41 2c 20 der, float* pA, 6650: 66 6c 6f 61 74 2a 20 70 42 29 3b 0d 0a 09 66 6c float* pB);...fl 6660: 6f 61 74 2a 20 44 33 44 58 53 48 4d 75 6c 74 69 oat* D3DXSHMulti 6670: 70 6c 79 32 28 66 6c 6f 61 74 2a 20 70 4f 75 74 ply2(float* pOut 6680: 2c 20 66 6c 6f 61 74 2a 20 70 46 2c 20 66 6c 6f , float* pF, flo 6690: 61 74 2a 20 70 47 29 3b 0d 0a 09 66 6c 6f 61 74 at* pG);...float 66a0: 2a 20 44 33 44 58 53 48 4d 75 6c 74 69 70 6c 79 * D3DXSHMultiply 66b0: 33 28 66 6c 6f 61 74 2a 20 70 4f 75 74 2c 20 66 3(float* pOut, f 66c0: 6c 6f 61 74 2a 20 70 46 2c 20 66 6c 6f 61 74 2a loat* pF, float* 66d0: 20 70 47 29 3b 0d 0a 09 66 6c 6f 61 74 2a 20 44 pG);...float* D 66e0: 33 44 58 53 48 4d 75 6c 74 69 70 6c 79 34 28 66 3DXSHMultiply4(f 66f0: 6c 6f 61 74 2a 20 70 4f 75 74 2c 20 66 6c 6f 61 loat* pOut, floa 6700: 74 2a 20 70 46 2c 20 66 6c 6f 61 74 2a 20 70 47 t* pF, float* pG 6710: 29 3b 0d 0a 09 66 6c 6f 61 74 2a 20 44 33 44 58 );...float* D3DX 6720: 53 48 4d 75 6c 74 69 70 6c 79 35 28 66 6c 6f 61 SHMultiply5(floa 6730: 74 2a 20 70 4f 75 74 2c 20 66 6c 6f 61 74 2a 20 t* pOut, float* 6740: 70 46 2c 20 66 6c 6f 61 74 2a 20 70 47 29 3b 0d pF, float* pG);. 6750: 0a 09 66 6c 6f 61 74 2a 20 44 33 44 58 53 48 4d ..float* D3DXSHM 6760: 75 6c 74 69 70 6c 79 36 28 66 6c 6f 61 74 2a 20 ultiply6(float* 6770: 70 4f 75 74 2c 20 66 6c 6f 61 74 2a 20 70 46 2c pOut, float* pF, 6780: 20 66 6c 6f 61 74 2a 20 70 47 29 3b 0d 0a 09 48 float* pG);...H 6790: 52 45 53 55 4c 54 20 44 33 44 58 53 48 45 76 61 RESULT D3DXSHEva 67a0: 6c 44 69 72 65 63 74 69 6f 6e 61 6c 4c 69 67 68 lDirectionalLigh 67b0: 74 28 55 49 4e 54 20 4f 72 64 65 72 2c 20 44 33 t(UINT Order, D3 67c0: 44 58 56 45 43 54 4f 52 33 2a 20 70 44 69 72 2c DXVECTOR3* pDir, 67d0: 20 66 6c 6f 61 74 20 52 49 6e 74 65 6e 73 69 74 float RIntensit 67e0: 79 2c 20 66 6c 6f 61 74 20 47 49 6e 74 65 6e 73 y, float GIntens 67f0: 69 74 79 2c 20 66 6c 6f 61 74 20 42 49 6e 74 65 ity, float BInte 6800: 6e 73 69 74 79 2c 20 66 6c 6f 61 74 2a 20 70 52 nsity, float* pR 6810: 4f 75 74 2c 20 66 6c 6f 61 74 2a 20 70 47 4f 75 Out, float* pGOu 6820: 74 2c 20 66 6c 6f 61 74 2a 20 70 42 4f 75 74 29 t, float* pBOut) 6830: 3b 0d 0a 09 48 52 45 53 55 4c 54 20 44 33 44 58 ;...HRESULT D3DX 6840: 53 48 45 76 61 6c 53 70 68 65 72 69 63 61 6c 4c SHEvalSphericalL 6850: 69 67 68 74 28 55 49 4e 54 20 4f 72 64 65 72 2c ight(UINT Order, 6860: 20 44 33 44 58 56 45 43 54 4f 52 33 2a 20 70 50 D3DXVECTOR3* pP 6870: 6f 73 2c 20 66 6c 6f 61 74 20 52 61 64 69 75 73 os, float Radius 6880: 2c 20 66 6c 6f 61 74 20 52 49 6e 74 65 6e 73 69 , float RIntensi 6890: 74 79 2c 20 66 6c 6f 61 74 20 47 49 6e 74 65 6e ty, float GInten 68a0: 73 69 74 79 2c 20 66 6c 6f 61 74 20 42 49 6e 74 sity, float BInt 68b0: 65 6e 73 69 74 79 2c 20 66 6c 6f 61 74 2a 20 70 ensity, float* p 68c0: 52 4f 75 74 2c 20 66 6c 6f 61 74 2a 20 70 47 4f ROut, float* pGO 68d0: 75 74 2c 20 66 6c 6f 61 74 2a 20 70 42 4f 75 74 ut, float* pBOut 68e0: 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 44 33 44 );...HRESULT D3D 68f0: 58 53 48 45 76 61 6c 43 6f 6e 65 4c 69 67 68 74 XSHEvalConeLight 6900: 28 55 49 4e 54 20 4f 72 64 65 72 2c 20 44 33 44 (UINT Order, D3D 6910: 58 56 45 43 54 4f 52 33 2a 20 70 44 69 72 2c 20 XVECTOR3* pDir, 6920: 66 6c 6f 61 74 20 52 61 64 69 75 73 2c 20 66 6c float Radius, fl 6930: 6f 61 74 20 52 49 6e 74 65 6e 73 69 74 79 2c 20 oat RIntensity, 6940: 66 6c 6f 61 74 20 47 49 6e 74 65 6e 73 69 74 79 float GIntensity 6950: 2c 20 66 6c 6f 61 74 20 42 49 6e 74 65 6e 73 69 , float BIntensi 6960: 74 79 2c 20 66 6c 6f 61 74 2a 20 70 52 4f 75 74 ty, float* pROut 6970: 2c 20 66 6c 6f 61 74 2a 20 70 47 4f 75 74 2c 20 , float* pGOut, 6980: 66 6c 6f 61 74 2a 20 70 42 4f 75 74 29 3b 0d 0a float* pBOut);.. 6990: 09 48 52 45 53 55 4c 54 20 44 33 44 58 53 48 45 .HRESULT D3DXSHE 69a0: 76 61 6c 48 65 6d 69 73 70 68 65 72 65 4c 69 67 valHemisphereLig 69b0: 68 74 28 55 49 4e 54 20 4f 72 64 65 72 2c 20 44 ht(UINT Order, D 69c0: 33 44 58 56 45 43 54 4f 52 33 2a 20 70 44 69 72 3DXVECTOR3* pDir 69d0: 2c 20 44 33 44 58 43 4f 4c 4f 52 20 54 6f 70 2c , D3DXCOLOR Top, 69e0: 20 44 33 44 58 43 4f 4c 4f 52 20 42 6f 74 74 6f D3DXCOLOR Botto 69f0: 6d 2c 20 66 6c 6f 61 74 2a 20 70 52 4f 75 74 2c m, float* pROut, 6a00: 20 66 6c 6f 61 74 2a 20 70 47 4f 75 74 2c 20 66 float* pGOut, f 6a10: 6c 6f 61 74 2a 20 70 42 4f 75 74 29 3b 0d 0a 09 loat* pBOut);... 6a20: 42 4f 4f 4c 20 44 33 44 58 49 6e 74 65 72 73 65 BOOL D3DXInterse 6a30: 63 74 54 72 69 28 44 33 44 58 56 45 43 54 4f 52 ctTri(D3DXVECTOR 6a40: 33 2a 20 70 30 2c 20 44 33 44 58 56 45 43 54 4f 3* p0, D3DXVECTO 6a50: 52 33 2a 20 70 31 2c 20 44 33 44 58 56 45 43 54 R3* p1, D3DXVECT 6a60: 4f 52 33 2a 20 70 32 2c 20 44 33 44 58 56 45 43 OR3* p2, D3DXVEC 6a70: 54 4f 52 33 2a 20 70 52 61 79 50 6f 73 2c 20 44 TOR3* pRayPos, D 6a80: 33 44 58 56 45 43 54 4f 52 33 2a 20 70 52 61 79 3DXVECTOR3* pRay 6a90: 44 69 72 2c 20 66 6c 6f 61 74 2a 20 70 55 2c 20 Dir, float* pU, 6aa0: 66 6c 6f 61 74 2a 20 70 56 2c 20 66 6c 6f 61 74 float* pV, float 6ab0: 2a 20 70 44 69 73 74 29 3b 0d 0a 09 42 4f 4f 4c * pDist);...BOOL 6ac0: 20 44 33 44 58 53 70 68 65 72 65 42 6f 75 6e 64 D3DXSphereBound 6ad0: 50 72 6f 62 65 28 44 33 44 58 56 45 43 54 4f 52 Probe(D3DXVECTOR 6ae0: 33 2a 20 70 43 65 6e 74 65 72 2c 20 66 6c 6f 61 3* pCenter, floa 6af0: 74 20 52 61 64 69 75 73 2c 20 44 33 44 58 56 45 t Radius, D3DXVE 6b00: 43 54 4f 52 33 2a 20 70 52 61 79 50 6f 73 69 74 CTOR3* pRayPosit 6b10: 69 6f 6e 2c 20 44 33 44 58 56 45 43 54 4f 52 33 ion, D3DXVECTOR3 6b20: 2a 20 70 52 61 79 44 69 72 65 63 74 69 6f 6e 29 * pRayDirection) 6b30: 3b 0d 0a 09 42 4f 4f 4c 20 44 33 44 58 42 6f 78 ;...BOOL D3DXBox 6b40: 42 6f 75 6e 64 50 72 6f 62 65 28 44 33 44 58 56 BoundProbe(D3DXV 6b50: 45 43 54 4f 52 33 2a 20 70 4d 69 6e 2c 20 44 33 ECTOR3* pMin, D3 6b60: 44 58 56 45 43 54 4f 52 33 2a 20 70 4d 61 78 2c DXVECTOR3* pMax, 6b70: 20 44 33 44 58 56 45 43 54 4f 52 33 2a 20 70 52 D3DXVECTOR3* pR 6b80: 61 79 50 6f 73 69 74 69 6f 6e 2c 20 44 33 44 58 ayPosition, D3DX 6b90: 56 45 43 54 4f 52 33 2a 20 70 52 61 79 44 69 72 VECTOR3* pRayDir 6ba0: 65 63 74 69 6f 6e 29 3b 0d 0a 09 48 52 45 53 55 ection);...HRESU 6bb0: 4c 54 20 44 33 44 58 43 6f 6d 70 75 74 65 42 6f LT D3DXComputeBo 6bc0: 75 6e 64 69 6e 67 53 70 68 65 72 65 28 44 33 44 undingSphere(D3D 6bd0: 58 56 45 43 54 4f 52 33 2a 20 70 46 69 72 73 74 XVECTOR3* pFirst 6be0: 50 6f 73 69 74 69 6f 6e 2c 20 44 57 4f 52 44 20 Position, DWORD 6bf0: 4e 75 6d 56 65 72 74 69 63 65 73 2c 20 44 57 4f NumVertices, DWO 6c00: 52 44 20 64 77 53 74 72 69 64 65 2c 20 44 33 44 RD dwStride, D3D 6c10: 58 56 45 43 54 4f 52 33 2a 20 70 43 65 6e 74 65 XVECTOR3* pCente 6c20: 72 2c 20 66 6c 6f 61 74 2a 20 70 52 61 64 69 75 r, float* pRadiu 6c30: 73 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 44 33 s);...HRESULT D3 6c40: 44 58 43 6f 6d 70 75 74 65 42 6f 75 6e 64 69 6e DXComputeBoundin 6c50: 67 42 6f 78 28 44 33 44 58 56 45 43 54 4f 52 33 gBox(D3DXVECTOR3 6c60: 2a 20 70 46 69 72 73 74 50 6f 73 69 74 69 6f 6e * pFirstPosition 6c70: 2c 20 44 57 4f 52 44 20 4e 75 6d 56 65 72 74 69 , DWORD NumVerti 6c80: 63 65 73 2c 20 44 57 4f 52 44 20 64 77 53 74 72 ces, DWORD dwStr 6c90: 69 64 65 2c 20 44 33 44 58 56 45 43 54 4f 52 33 ide, D3DXVECTOR3 6ca0: 2a 20 70 4d 69 6e 2c 20 44 33 44 58 56 45 43 54 * pMin, D3DXVECT 6cb0: 4f 52 33 2a 20 70 4d 61 78 29 3b 0d 0a 7d 0d 0a OR3* pMax);..}.. 6cc0: 0d 0a 65 6e 75 6d 20 44 33 44 58 5f 43 50 55 5f ..enum D3DX_CPU_ 6cd0: 4f 50 54 49 4d 49 5a 41 54 49 4f 4e 20 7b 0d 0a OPTIMIZATION {.. 6ce0: 09 44 33 44 58 5f 4e 4f 54 5f 4f 50 54 49 4d 49 .D3DX_NOT_OPTIMI 6cf0: 5a 45 44 20 3d 20 30 2c 0d 0a 09 44 33 44 58 5f ZED = 0,...D3DX_ 6d00: 33 44 4e 4f 57 5f 4f 50 54 49 4d 49 5a 45 44 2c 3DNOW_OPTIMIZED, 6d10: 0d 0a 09 44 33 44 58 5f 53 53 45 32 5f 4f 50 54 ...D3DX_SSE2_OPT 6d20: 49 4d 49 5a 45 44 2c 0d 0a 09 44 33 44 58 5f 53 IMIZED,...D3DX_S 6d30: 53 45 5f 4f 50 54 49 4d 49 5a 45 44 0d 0a 7d 0d SE_OPTIMIZED..}. 6d40: 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 ...extern(Window 6d50: 73 29 20 44 33 44 58 5f 43 50 55 5f 4f 50 54 49 s) D3DX_CPU_OPTI 6d60: 4d 49 5a 41 54 49 4f 4e 20 44 33 44 58 43 70 75 MIZATION D3DXCpu 6d70: 4f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 28 62 6f Optimizations(bo 6d80: 6f 6c 20 45 6e 61 62 6c 65 29 3b 0d 0a ol Enable);..