public static DOUBLE4 QTConjD( DOUBLE4 A ) { DOUBLE4 Result ; Result.w = A.w ; Result.x = -A.x ; Result.y = -A.y ; Result.z = -A.z ; return Result ; }
public static DOUBLE4 QTCrossD( DOUBLE4 A, DOUBLE4 B ) { DOUBLE4 Result ; Result.w = A.w * B.w - ( A.x * B.x + A.y * B.y + A.z * B.z ) ; Result.x = B.x * A.w + A.x * B.w + ( A.y * B.z - A.z * B.y ) ; Result.y = B.y * A.w + A.y * B.w + ( A.z * B.x - A.x * B.z ) ; Result.z = B.z * A.w + A.z * B.w + ( A.x * B.y - A.y * B.x ) ; return Result ; }
public static DOUBLE4 D4Sub( DOUBLE4 In1, DOUBLE4 In2 ) { DOUBLE4 Result ; Result.x = In1.x - In2.x ; Result.y = In1.y - In2.y ; Result.z = In1.z - In2.z ; Result.w = In1.w - In2.w ; return Result ; }
public static DOUBLE4 D4Scale( DOUBLE4 In, double Scale ) { DOUBLE4 Result ; Result.x = In.x * Scale ; Result.y = In.y * Scale ; Result.z = In.z * Scale ; Result.w = In.w * Scale ; return Result ; }
public static DOUBLE4 D4Add( DOUBLE4 In1, DOUBLE4 In2 ) { DOUBLE4 Result ; Result.x = In1.x + In2.x ; Result.y = In1.y + In2.y ; Result.z = In1.z + In2.z ; Result.w = In1.w + In2.w ; return Result ; }