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);..