Attribute VB_Name = "D3DXMath"
Option Explicit

Public Declare Function Vec2Length Lib "dx_vb" (ByRef pV As D3DVECTOR2) As Single
Public Declare Function Vec2LengthSq Lib "dx_vb" (ByRef pV As D3DVECTOR2) As Single
Public Declare Function Vec2Dot Lib "dx_vb" (ByRef pV1 As D3DVECTOR2, ByRef pV2 As D3DVECTOR2) As Single
Public Declare Function Vec2CCW Lib "dx_vb" (ByRef pV1 As D3DVECTOR2, ByRef pV2 As D3DVECTOR2) As Single
Public Declare Sub Vec2Add Lib "dx_vb" (ByRef pOut As D3DVECTOR2, ByRef pV1 As D3DVECTOR2, ByRef pV2 As D3DVECTOR2)
Public Declare Sub Vec2Subtract Lib "dx_vb" (ByRef pOut As D3DVECTOR2, ByRef pV1 As D3DVECTOR2, ByRef pV2 As D3DVECTOR2)
Public Declare Sub Vec2Minimize Lib "dx_vb" (ByRef pOut As D3DVECTOR2, ByRef pV1 As D3DVECTOR2, ByRef pV2 As D3DVECTOR2)
Public Declare Sub Vec2Maximize Lib "dx_vb" (ByRef pOut As D3DVECTOR2, ByRef pV1 As D3DVECTOR2, ByRef pV2 As D3DVECTOR2)
Public Declare Sub Vec2Scale Lib "dx_vb" (ByRef pOut As D3DVECTOR2, ByRef pV As D3DVECTOR2, ByVal s As Single)
Public Declare Sub Vec2Lerp Lib "dx_vb" (ByRef pOut As D3DVECTOR2, ByRef pV1 As D3DVECTOR2, ByRef pV2 As D3DVECTOR2, ByVal s As Single)
Public Declare Sub Vec2Normalize Lib "dx_vb" (ByRef pOut As D3DVECTOR2, ByRef pV As D3DVECTOR2)
Public Declare Sub Vec2Hermite Lib "dx_vb" (ByRef pOut As D3DVECTOR2, ByRef pV1 As D3DVECTOR2, ByRef pT1 As D3DVECTOR2, ByRef pV2 As D3DVECTOR2, ByRef pT2 As D3DVECTOR2, ByVal s As Single)
Public Declare Sub Vec2CatmullRom Lib "dx_vb" (ByRef pOut As D3DVECTOR2, ByRef pV0 As D3DVECTOR2, ByRef pV1 As D3DVECTOR2, ByRef pV2 As D3DVECTOR2, ByRef pV3 As D3DVECTOR2, ByVal s As Single)
Public Declare Sub Vec2BaryCentric Lib "dx_vb" (ByRef pOut As D3DVECTOR2, ByRef pV1 As D3DVECTOR2, ByRef pV2 As D3DVECTOR2, ByRef pV3 As D3DVECTOR2, ByVal f As Single, ByVal G As Single)
Public Declare Sub Vec2Transform Lib "dx_vb" (ByRef pOut As D3DVECTOR4, ByRef pV As D3DVECTOR2, ByRef pM As D3DMATRIX)
Public Declare Sub Vec2TransformCoord Lib "dx_vb" (ByRef pOut As D3DVECTOR2, ByRef pV As D3DVECTOR2, ByRef pM As D3DMATRIX)
Public Declare Sub Vec2TransformNormal Lib "dx_vb" (ByRef pOut As D3DVECTOR2, ByRef pV As D3DVECTOR2, ByRef pM As D3DMATRIX)
Public Declare Function Vec3Length Lib "dx_vb" (ByRef pV As D3DVECTOR) As Single
Public Declare Function Vec3LengthSq Lib "dx_vb" (ByRef pV As D3DVECTOR) As Single
Public Declare Function Vec3Dot Lib "dx_vb" (ByRef pV1 As D3DVECTOR, ByRef pV2 As D3DVECTOR) As Single
Public Declare Sub Vec3Cross Lib "dx_vb" (ByRef pOut As D3DVECTOR, ByRef pV1 As D3DVECTOR, ByRef pV2 As D3DVECTOR)
Public Declare Sub Vec3Add Lib "dx_vb" (ByRef pOut As D3DVECTOR, ByRef pV1 As D3DVECTOR, ByRef pV2 As D3DVECTOR)
Public Declare Sub Vec3Subtract Lib "dx_vb" (ByRef pOut As D3DVECTOR, ByRef pV1 As D3DVECTOR, ByRef pV2 As D3DVECTOR)
Public Declare Sub Vec3Minimize Lib "dx_vb" (ByRef pOut As D3DVECTOR, ByRef pV1 As D3DVECTOR, ByRef pV2 As D3DVECTOR)
Public Declare Sub Vec3Maximize Lib "dx_vb" (ByRef pOut As D3DVECTOR, ByRef pV1 As D3DVECTOR, ByRef pV2 As D3DVECTOR)
Public Declare Sub Vec3Scale Lib "dx_vb" (ByRef pOut As D3DVECTOR, ByRef pV As D3DVECTOR, ByVal s As Single)
Public Declare Sub Vec3Lerp Lib "dx_vb" (ByRef pOut As D3DVECTOR, ByRef pV1 As D3DVECTOR, ByRef pV2 As D3DVECTOR, ByVal s As Single)
Public Declare Sub Vec3Normalize Lib "dx_vb" (ByRef pOut As D3DVECTOR, ByRef pV As D3DVECTOR)
Public Declare Sub Vec3Hermite Lib "dx_vb" (ByRef pOut As D3DVECTOR, ByRef pV1 As D3DVECTOR, ByRef pT1 As D3DVECTOR, ByRef pV2 As D3DVECTOR, ByRef pT2 As D3DVECTOR, ByVal s As Single)
Public Declare Sub Vec3CatmullRom Lib "dx_vb" (ByRef pOut As D3DVECTOR, ByRef pV0 As D3DVECTOR, ByRef pV1 As D3DVECTOR, ByRef pV2 As D3DVECTOR, ByRef pV3 As D3DVECTOR, ByVal s As Single)
Public Declare Sub Vec3BaryCentric Lib "dx_vb" (ByRef pOut As D3DVECTOR, ByRef pV1 As D3DVECTOR, ByRef pV2 As D3DVECTOR, ByRef pV3 As D3DVECTOR, ByVal f As Single, ByVal G As Single)
Public Declare Sub Vec3Transform Lib "dx_vb" (ByRef pOut As D3DVECTOR4, ByRef pV As D3DVECTOR, ByRef pM As D3DMATRIX)
Public Declare Sub Vec3TransformCoord Lib "dx_vb" (ByRef pOut As D3DVECTOR, ByRef pV As D3DVECTOR, ByRef pM As D3DMATRIX)
Public Declare Sub Vec3TransformNormal Lib "dx_vb" (ByRef pOut As D3DVECTOR, ByRef pV As D3DVECTOR, ByRef pM As D3DMATRIX)
Public Declare Sub Vec3Project Lib "dx_vb" (ByRef pOut As D3DVECTOR, ByRef pV As D3DVECTOR, ByRef pViewport As D3DVIEWPORT9, ByRef pProjection As D3DMATRIX, ByRef pView As D3DMATRIX, ByRef pWorld As D3DMATRIX)
Public Declare Sub Vec3Unproject Lib "dx_vb" (ByRef pOut As D3DVECTOR, ByRef pV As D3DVECTOR, ByRef pViewport As D3DVIEWPORT9, ByRef pProjection As D3DMATRIX, ByRef pView As D3DMATRIX, ByRef pWorld As D3DMATRIX)
Public Declare Function Vec4Length Lib "dx_vb" (ByRef pV As D3DVECTOR4) As Single
Public Declare Function Vec4LengthSq Lib "dx_vb" (ByRef pV As D3DVECTOR4) As Single
Public Declare Function Vec4Dot Lib "dx_vb" (ByRef pV1 As D3DVECTOR4, ByRef pV2 As D3DVECTOR4) As Single
Public Declare Sub Vec4Add Lib "dx_vb" (ByRef pOut As D3DVECTOR4, ByRef pV1 As D3DVECTOR4, ByRef pV2 As D3DVECTOR4)
Public Declare Sub Vec4Subtract Lib "dx_vb" (ByRef pOut As D3DVECTOR4, ByRef pV1 As D3DVECTOR4, ByRef pV2 As D3DVECTOR4)
Public Declare Sub Vec4Minimize Lib "dx_vb" (ByRef pOut As D3DVECTOR4, ByRef pV1 As D3DVECTOR4, ByRef pV2 As D3DVECTOR4)
Public Declare Sub Vec4Maximize Lib "dx_vb" (ByRef pOut As D3DVECTOR4, ByRef pV1 As D3DVECTOR4, ByRef pV2 As D3DVECTOR4)
Public Declare Sub Vec4Scale Lib "dx_vb" (ByRef pOut As D3DVECTOR4, ByRef pV As D3DVECTOR4, ByVal s As Single)
Public Declare Sub Vec4Lerp Lib "dx_vb" (ByRef pOut As D3DVECTOR4, ByRef pV1 As D3DVECTOR4, ByRef pV2 As D3DVECTOR4, ByVal s As Single)
Public Declare Sub Vec4Cross Lib "dx_vb" (ByRef pOut As D3DVECTOR4, ByRef pV1 As D3DVECTOR4, ByRef pV2 As D3DVECTOR4, ByRef pV3 As D3DVECTOR4)
Public Declare Sub Vec4Normalize Lib "dx_vb" (ByRef pOut As D3DVECTOR4, ByRef pV As D3DVECTOR4)
Public Declare Sub Vec4Hermite Lib "dx_vb" (ByRef pOut As D3DVECTOR4, ByRef pV1 As D3DVECTOR4, ByRef pT1 As D3DVECTOR4, ByRef pV2 As D3DVECTOR4, ByRef pT2 As D3DVECTOR4, ByVal s As Single)
Public Declare Sub Vec4CatmullRom Lib "dx_vb" (ByRef pOut As D3DVECTOR4, ByRef pV0 As D3DVECTOR4, ByRef pV1 As D3DVECTOR4, ByRef pV2 As D3DVECTOR4, ByRef pV3 As D3DVECTOR4, ByVal s As Single)
Public Declare Sub Vec4BaryCentric Lib "dx_vb" (ByRef pOut As D3DVECTOR4, ByRef pV1 As D3DVECTOR4, ByRef pV2 As D3DVECTOR4, ByRef pV3 As D3DVECTOR4, ByVal f As Single, ByVal G As Single)
Public Declare Sub Vec4Transform Lib "dx_vb" (ByRef pOut As D3DVECTOR4, ByRef pV As D3DVECTOR4, ByRef pM As D3DMATRIX)
Public Declare Sub MatrixIdentity Lib "dx_vb" (ByRef pOut As D3DMATRIX)
Public Declare Function MatrixIsIdentity Lib "dx_vb" (ByRef pM As D3DMATRIX) As Boolean
Public Declare Function MatrixDeterminant Lib "dx_vb" (ByRef pM As D3DMATRIX) As Single
Public Declare Sub MatrixTranspose Lib "dx_vb" (ByRef pOut As D3DMATRIX, ByRef pM As D3DMATRIX)
Public Declare Sub MatrixMultiply Lib "dx_vb" (ByRef pOut As D3DMATRIX, ByRef pM1 As D3DMATRIX, ByRef pM2 As D3DMATRIX)
Public Declare Sub MatrixMultiplyTranspose Lib "dx_vb" (ByRef pOut As D3DMATRIX, ByRef pM1 As D3DMATRIX, ByRef pM2 As D3DMATRIX)
Public Declare Sub MatrixInverse Lib "dx_vb" (ByRef pOut As D3DMATRIX, ByRef pDeterminant As Single, ByRef pM As D3DMATRIX)
Public Declare Sub MatrixScaling Lib "dx_vb" (ByRef pOut As D3DMATRIX, ByVal sx As Single, ByVal sy As Single, ByVal sz As Single)
Public Declare Sub MatrixTranslation Lib "dx_vb" (ByRef pOut As D3DMATRIX, ByVal x As Single, ByVal y As Single, ByVal z As Single)
Public Declare Sub MatrixRotationX Lib "dx_vb" (ByRef pOut As D3DMATRIX, ByVal Angle As Single)
Public Declare Sub MatrixRotationY Lib "dx_vb" (ByRef pOut As D3DMATRIX, ByVal Angle As Single)
Public Declare Sub MatrixRotationZ Lib "dx_vb" (ByRef pOut As D3DMATRIX, ByVal Angle As Single)
Public Declare Sub MatrixRotationAxis Lib "dx_vb" (ByRef pOut As D3DMATRIX, ByRef pV As D3DVECTOR, ByVal Angle As Single)
Public Declare Sub MatrixRotationQuaternion Lib "dx_vb" (ByRef pOut As D3DMATRIX, ByRef pQ As D3DQUATERNION)
Public Declare Sub MatrixRotationYawPitchRoll Lib "dx_vb" (ByRef pOut As D3DMATRIX, ByVal Yaw As Single, ByVal Pitch As Single, ByVal Roll As Single)
Public Declare Sub MatrixTransformation Lib "dx_vb" (ByRef pOut As D3DMATRIX, ByRef pScalingCenter As D3DVECTOR, ByRef pScalingRotation As D3DQUATERNION, ByRef pScaling As D3DVECTOR, ByRef pRotationCenter As D3DVECTOR, ByRef pRotation As D3DQUATERNION, ByRef pTranslation As D3DVECTOR)
Public Declare Sub MatrixAffineTransformation Lib "dx_vb" (ByRef pOut As D3DMATRIX, ByVal Scaling As Single, ByRef pRotationCenter As D3DVECTOR, ByRef pRotation As D3DQUATERNION, ByRef pTranslation As D3DVECTOR)
Public Declare Sub MatrixLookAtRH Lib "dx_vb" (ByRef pOut As D3DMATRIX, ByRef pEye As D3DVECTOR, ByRef pAt As D3DVECTOR, ByRef pUp As D3DVECTOR)
Public Declare Sub MatrixLookAtLH Lib "dx_vb" (ByRef pOut As D3DMATRIX, ByRef pEye As D3DVECTOR, ByRef pAt As D3DVECTOR, ByRef pUp As D3DVECTOR)
Public Declare Sub MatrixPerspectiveRH Lib "dx_vb" (ByRef pOut As D3DMATRIX, ByVal w As Single, ByVal h As Single, ByVal zn As Single, ByVal zf As Single)
Public Declare Sub MatrixPerspectiveLH Lib "dx_vb" (ByRef pOut As D3DMATRIX, ByVal w As Single, ByVal h As Single, ByVal zn As Single, ByVal zf As Single)
Public Declare Sub MatrixPerspectiveFovRH Lib "dx_vb" (ByRef pOut As D3DMATRIX, ByVal fovy As Single, ByVal Aspect As Single, ByVal zn As Single, ByVal zf As Single)
Public Declare Sub MatrixPerspectiveFovLH Lib "dx_vb" (ByRef pOut As D3DMATRIX, ByVal fovy As Single, ByVal Aspect As Single, ByVal zn As Single, ByVal zf As Single)
Public Declare Sub MatrixPerspectiveOffCenterRH Lib "dx_vb" (ByRef pOut As D3DMATRIX, ByVal l As Single, ByVal R As Single, ByVal B As Single, ByVal t As Single, ByVal zn As Single, ByVal zf As Single)
Public Declare Sub MatrixPerspectiveOffCenterLH Lib "dx_vb" (ByRef pOut As D3DMATRIX, ByVal l As Single, ByVal R As Single, ByVal B As Single, ByVal t As Single, ByVal zn As Single, ByVal zf As Single)
Public Declare Sub MatrixOrthoRH Lib "dx_vb" (ByRef pOut As D3DMATRIX, ByVal w As Single, ByVal h As Single, ByVal zn As Single, ByVal zf As Single)
Public Declare Sub MatrixOrthoLH Lib "dx_vb" (ByRef pOut As D3DMATRIX, ByVal w As Single, ByVal h As Single, ByVal zn As Single, ByVal zf As Single)
Public Declare Sub MatrixOrthoOffCenterRH Lib "dx_vb" (ByRef pOut As D3DMATRIX, ByVal l As Single, ByVal R As Single, ByVal B As Single, ByVal t As Single, ByVal zn As Single, ByVal zf As Single)
Public Declare Sub MatrixOrthoOffCenterLH Lib "dx_vb" (ByRef pOut As D3DMATRIX, ByVal l As Single, ByVal R As Single, ByVal B As Single, ByVal t As Single, ByVal zn As Single, ByVal zf As Single)
Public Declare Sub MatrixShadow Lib "dx_vb" (ByRef pOut As D3DMATRIX, ByRef pLight As D3DVECTOR4, ByRef pPlane As D3DPLANE)
Public Declare Sub MatrixReflect Lib "dx_vb" (ByRef pOut As D3DMATRIX, ByRef pPlane As D3DPLANE)
Public Declare Function QuaternionLength Lib "dx_vb" (ByRef pQ As D3DQUATERNION) As Single
Public Declare Function QuaternionLengthSq Lib "dx_vb" (ByRef pQ As D3DQUATERNION) As Single
Public Declare Function QuaternionDot Lib "dx_vb" (ByRef pQ1 As D3DQUATERNION, ByRef pQ2 As D3DQUATERNION) As Single
Public Declare Sub QuaternionIdentity Lib "dx_vb" (ByRef pOut As D3DQUATERNION)
Public Declare Function QuaternionIsIdentity Lib "dx_vb" (ByRef pQ As D3DQUATERNION) As Boolean
Public Declare Sub QuaternionConjugate Lib "dx_vb" (ByRef pOut As D3DQUATERNION, ByRef pQ As D3DQUATERNION)
Public Declare Sub QuaternionToAxisAngle Lib "dx_vb" (ByRef pQ As D3DQUATERNION, ByRef pAxis As D3DVECTOR, ByRef pAngle As Single)
Public Declare Sub QuaternionRotationMatrix Lib "dx_vb" (ByRef pOut As D3DQUATERNION, ByRef pM As D3DMATRIX)
Public Declare Sub QuaternionRotationAxis Lib "dx_vb" (ByRef pOut As D3DQUATERNION, ByRef pV As D3DVECTOR, ByVal Angle As Single)
Public Declare Sub QuaternionRotationYawPitchRoll Lib "dx_vb" (ByRef pOut As D3DQUATERNION, ByVal Yaw As Single, ByVal Pitch As Single, ByVal Roll As Single)
Public Declare Sub QuaternionMultiply Lib "dx_vb" (ByRef pOut As D3DQUATERNION, ByRef pQ1 As D3DQUATERNION, ByRef pQ2 As D3DQUATERNION)
Public Declare Sub QuaternionNormalize Lib "dx_vb" (ByRef pOut As D3DQUATERNION, ByRef pQ As D3DQUATERNION)
Public Declare Sub QuaternionInverse Lib "dx_vb" (ByRef pOut As D3DQUATERNION, ByRef pQ As D3DQUATERNION)
Public Declare Sub QuaternionLn Lib "dx_vb" (ByRef pOut As D3DQUATERNION, ByRef pQ As D3DQUATERNION)
Public Declare Sub QuaternionExp Lib "dx_vb" (ByRef pOut As D3DQUATERNION, ByRef pQ As D3DQUATERNION)
Public Declare Sub QuaternionSlerp Lib "dx_vb" (ByRef pOut As D3DQUATERNION, ByRef pQ1 As D3DQUATERNION, ByRef pQ2 As D3DQUATERNION, ByVal t As Single)
Public Declare Sub QuaternionSquad Lib "dx_vb" (ByRef pOut As D3DQUATERNION, ByRef pQ1 As D3DQUATERNION, ByRef pA As D3DQUATERNION, ByRef pB As D3DQUATERNION, ByRef pC As D3DQUATERNION, ByVal t As Single)
Public Declare Sub QuaternionSquadSetup Lib "dx_vb" (ByRef pAOut As D3DQUATERNION, ByRef pBOut As D3DQUATERNION, ByRef pCOut As D3DQUATERNION, ByRef pQ0 As D3DQUATERNION, ByRef pQ1 As D3DQUATERNION, ByRef pQ2 As D3DQUATERNION, ByRef pQ3 As D3DQUATERNION)
Public Declare Sub QuaternionBaryCentric Lib "dx_vb" (ByRef pOut As D3DQUATERNION, ByRef pQ1 As D3DQUATERNION, ByRef pQ2 As D3DQUATERNION, ByRef pQ3 As D3DQUATERNION, ByVal f As Single, ByVal G As Single)
Public Declare Function PlaneDot Lib "dx_vb" (ByRef PP As D3DPLANE, ByRef pV As D3DVECTOR4) As Single
Public Declare Function PlaneDotCoord Lib "dx_vb" (ByRef PP As D3DPLANE, ByRef pV As D3DVECTOR) As Single
Public Declare Function PlaneDotNormal Lib "dx_vb" (ByRef PP As D3DPLANE, ByRef pV As D3DVECTOR) As Single
Public Declare Sub PlaneNormalize Lib "dx_vb" (ByRef pOut As D3DPLANE, ByRef PP As D3DPLANE)
Public Declare Sub PlaneIntersectLine Lib "dx_vb" (ByRef pOut As D3DVECTOR, ByRef PP As D3DPLANE, ByRef pV1 As D3DVECTOR, ByRef pV2 As D3DVECTOR)
Public Declare Sub PlaneFromPointNormal Lib "dx_vb" (ByRef pOut As D3DPLANE, ByRef pPoint As D3DVECTOR, ByRef pNormal As D3DVECTOR)
Public Declare Sub PlaneFromPoints Lib "dx_vb" (ByRef pOut As D3DPLANE, ByRef pV1 As D3DVECTOR, ByRef pV2 As D3DVECTOR, ByRef pV3 As D3DVECTOR)
Public Declare Sub PlaneTransform Lib "dx_vb" (ByRef pOut As D3DPLANE, ByRef PP As D3DPLANE, ByRef pM As D3DMATRIX)
Public Declare Sub ColorNegative Lib "dx_vb" (ByRef pOut As D3DCOLORVALUE, ByRef pC As D3DCOLORVALUE)
Public Declare Sub ColorAdd Lib "dx_vb" (ByRef pOut As D3DCOLORVALUE, ByRef pC1 As D3DCOLORVALUE, ByRef pC2 As D3DCOLORVALUE)
Public Declare Sub ColorSubtract Lib "dx_vb" (ByRef pOut As D3DCOLORVALUE, ByRef pC1 As D3DCOLORVALUE, ByRef pC2 As D3DCOLORVALUE)
Public Declare Sub ColorScale Lib "dx_vb" (ByRef pOut As D3DCOLORVALUE, ByRef pC As D3DCOLORVALUE, ByVal s As Single)
Public Declare Sub ColorModulate Lib "dx_vb" (ByRef pOut As D3DCOLORVALUE, ByRef pC1 As D3DCOLORVALUE, ByRef pC2 As D3DCOLORVALUE)
Public Declare Sub ColorLerp Lib "dx_vb" (ByRef pOut As D3DCOLORVALUE, ByRef pC1 As D3DCOLORVALUE, ByRef pC2 As D3DCOLORVALUE, ByVal s As Single)
Public Declare Sub ColorAdjustSaturation Lib "dx_vb" (ByRef pOut As D3DCOLORVALUE, ByRef pC As D3DCOLORVALUE, ByVal s As Single)
Public Declare Sub ColorAdjustContrast Lib "dx_vb" (ByRef pOut As D3DCOLORVALUE, ByRef pC As D3DCOLORVALUE, ByVal c As Single)
