/* * G3DVectorFunc.h created by robert on 2001-01-05 15:07:17 +0000 * * Project GeometryKit * * Created with ProjectCenter - http://www.projectcenter.ch * * $Id: G3DVectorFunc.h,v 1.3 2001/01/05 19:17:58 robert Exp $ */ #ifndef __G3DVectorFunc_h_INCLUDE #define __G3DVectorFunc_h_INCLUDE #include /* * */ __G3DIE__ void G3DAddScaledVector3fv(float res[3], CFLOAT p[3], CFLOAT q[3], CFLOAT lambda); __G3DIE__ void G3DAddScaledVector3dv(double res[3], CDOUBLE p[3], CDOUBLE q[3], CDOUBLE lambda); /* res = p + lambda * q */ __G3DIE__ void G3DAddScaledVectors3fv(float res[3], CFLOAT p[3], CFLOAT q[3], CFLOAT lambda1, CFLOAT r[3], CFLOAT lambda2); __G3DIE__ void G3DAddScaledVectors3dv(double res[3], CDOUBLE p[3], CDOUBLE q[3], CDOUBLE lambda1, CDOUBLE r[3], CDOUBLE lambda2); /* res = p + lambda1 * q + lambda2 * r */ /* * */ __G3DIE__ void G3DVector3fFromEulerRep(float res[3], CFLOAT src[3]); __G3DIE__ void G3DVector3dFromEulerRep(double res[3], CDOUBLE src[3]); __G3DIE__ void G3DEulerRepFromVector3f(float res[3], CFLOAT src[3]); __G3DIE__ void G3DEulerRepFromVector3d(double res[3], CDOUBLE src[3]); /* res[2] (the roll angle) is zero! */ /* * */ __G3DIE__ void G3DTransformVector3fv(float res[3],CFLOAT src[3], CFLOAT mat[16]); __G3DIE__ void G3DTransformVector3dv(double res[3],CDOUBLE src[3], CDOUBLE mat[16]); __G3DIE__ void G3DTransformVector4fv(float res[4],CFLOAT src[4], CFLOAT mat[16]); __G3DIE__ void G3DTransformVector4dv(double res[4],CDOUBLE src[4], CDOUBLE mat[16]); /* * */ __G3DIE__ void G3DMultiplyVector3fv(float res[3], CFLOAT a[3], CFLOAT b[3]); __G3DIE__ void G3DMultiplyVector3dv(double res[3], CDOUBLE a[3], CDOUBLE b[3]); /* * */ __G3DIE__ void G3DCopyVector2f(float res[2], CFLOAT x, CFLOAT y); __G3DIE__ void G3DCopyVector2d(double res[2], CDOUBLE x, CDOUBLE y); __G3DIE__ void G3DCopyVector3f(float res[3], CFLOAT x, CFLOAT y, CFLOAT z); __G3DIE__ void G3DCopyVector3d(double res[3], CDOUBLE x, CDOUBLE y, CDOUBLE z); __G3DIE__ void G3DCopyVector4f(float res[4], CFLOAT x, CFLOAT y, CFLOAT z, CFLOAT h); __G3DIE__ void G3DCopyVector4d(double res[4], CDOUBLE x, CDOUBLE y, CDOUBLE z, CDOUBLE h); __G3DIE__ void G3DCopyVector2fv(float cpy[2], CFLOAT orig[2]); __G3DIE__ void G3DCopyVector2dv(double cpy[2], CDOUBLE orig[2]); __G3DIE__ void G3DCopyVector3fv(float cpy[3], CFLOAT orig[3]); __G3DIE__ void G3DCopyVector3dv(double cpy[3], CDOUBLE orig[3]); __G3DIE__ void G3DCopyVector4fv(float cpy[4], CFLOAT orig[4]); __G3DIE__ void G3DCopyVector4dv(double cpy[4], CDOUBLE orig[4]); /* * */ __G3DIE__ void G3DAddVectors2fv(float res[2],CFLOAT a[2],CFLOAT b[2]); __G3DIE__ void G3DAddVectors3fv(float res[3],CFLOAT a[3],CFLOAT b[3]); __G3DIE__ void G3DAddVectors4fv(float res[4],CFLOAT a[4],CFLOAT b[4]); __G3DIE__ void G3DAddVectors2dv(double res[2],CDOUBLE a[2],CDOUBLE b[2]); __G3DIE__ void G3DAddVectors3dv(double res[3],CDOUBLE a[3],CDOUBLE b[3]); __G3DIE__ void G3DAddVectors4dv(double res[4],CDOUBLE a[4],CDOUBLE b[4]); /* * */ __G3DIE__ void G3DSubVectors2fv(float res[2],CFLOAT a[2],CFLOAT b[2]); __G3DIE__ void G3DSubVectors3fv(float res[3],CFLOAT a[3],CFLOAT b[3]); __G3DIE__ void G3DSubVectors4fv(float res[4],CFLOAT a[4],CFLOAT b[4]); __G3DIE__ void G3DSubVectors2dv(double res[2],CDOUBLE a[2],CDOUBLE b[2]); __G3DIE__ void G3DSubVectors3dv(double res[3],CDOUBLE a[3],CDOUBLE b[3]); __G3DIE__ void G3DSubVectors4dv(double res[4],CDOUBLE a[4],CDOUBLE b[4]); /* * */ __G3DIE__ void G3DNegateVector2fv(float res[2],CFLOAT src[2]); __G3DIE__ void G3DNegateVector3fv(float res[3],CFLOAT src[3]); __G3DIE__ void G3DNegateVector4fv(float res[4],CFLOAT src[4]); __G3DIE__ void G3DNegateVector2dv(double res[2],CDOUBLE src[2]); __G3DIE__ void G3DNegateVector3dv(double res[3],CDOUBLE src[3]); __G3DIE__ void G3DNegateVector4dv(double res[4],CDOUBLE src[4]); /* * */ __G3DIE__ void G3DScaleVector2fv(float res[2],CFLOAT src[2],CFLOAT scalar); __G3DIE__ void G3DScaleVector3fv(float res[3],CFLOAT src[3],CFLOAT scalar); __G3DIE__ void G3DScaleVector4fv(float res[4],CFLOAT src[4],CFLOAT scalar); __G3DIE__ void G3DScaleVector2dv(double res[2],CDOUBLE src[2],CDOUBLE scalar); __G3DIE__ void G3DScaleVector3dv(double res[3],CDOUBLE src[3],CDOUBLE scalar); __G3DIE__ void G3DScaleVector4dv(double res[4],CDOUBLE src[4],CDOUBLE scalar); /* * */ __G3DIE__ int G3DCompareVector2fv(CFLOAT a[2],CFLOAT b[2],CFLOAT tol); __G3DIE__ int G3DCompareVector3fv(CFLOAT a[3],CFLOAT b[3],CFLOAT tol); __G3DIE__ int G3DCompareVector4fv(CFLOAT a[4],CFLOAT b[4],CFLOAT tol); __G3DIE__ int G3DCompareVector2dv(CDOUBLE a[2],CDOUBLE b[2],CDOUBLE tol); __G3DIE__ int G3DCompareVector3dv(CDOUBLE a[3],CDOUBLE b[3],CDOUBLE tol); __G3DIE__ int G3DCompareVector4dv(CDOUBLE a[4],CDOUBLE b[4],CDOUBLE tol); /* * */ __G3DIE__ int G3DIsEqualToVector2fv(CFLOAT a[2],CFLOAT b[2]); __G3DIE__ int G3DIsEqualToVector3fv(CFLOAT a[3],CFLOAT b[3]); __G3DIE__ int G3DIsEqualToVector4fv(CFLOAT a[4],CFLOAT b[4]); __G3DIE__ int G3DIsEqualToVector2dv(CDOUBLE a[2],CDOUBLE b[2]); __G3DIE__ int G3DIsEqualToVector3dv(CDOUBLE a[3],CDOUBLE b[3]); __G3DIE__ int G3DIsEqualToVector4dv(CDOUBLE a[4],CDOUBLE b[4]); /* * */ __G3DIE__ float G3DScalarProduct2fv(CFLOAT a[2],CFLOAT b[2]); __G3DIE__ float G3DScalarProduct3fv(CFLOAT a[3],CFLOAT b[3]); __G3DIE__ float G3DScalarProduct4fv(CFLOAT a[4],CFLOAT b[4]); __G3DIE__ double G3DScalarProduct2dv(CDOUBLE a[2],CDOUBLE b[2]); __G3DIE__ double G3DScalarProduct3dv(CDOUBLE a[3],CDOUBLE b[3]); __G3DIE__ double G3DScalarProduct4dv(CDOUBLE a[4],CDOUBLE b[4]); /* * */ __G3DIE__ void G3DVectorProduct3fv(float res[3],CFLOAT a[3],CFLOAT b[3]); __G3DIE__ void G3DVectorProduct3dv(double res[3],CDOUBLE a[3],CDOUBLE b[3]); /* * */ __G3DIE__ float G3DMixedProduct3fv(CFLOAT a[3], CFLOAT b[3], CFLOAT c[3]); __G3DIE__ double G3DMixedProduct3dv(CDOUBLE a[3], CDOUBLE b[3], CDOUBLE c[3]); /* * */ __G3DIE__ float G3DDistance2fv(CFLOAT a[2],CFLOAT b[2]); __G3DIE__ float G3DDistance3fv(CFLOAT a[3],CFLOAT b[3]); __G3DIE__ float G3DDistance4fv(CFLOAT a[4],CFLOAT b[4]); __G3DIE__ double G3DDistance2dv(CDOUBLE a[2],CDOUBLE b[2]); __G3DIE__ double G3DDistance3dv(CDOUBLE a[3],CDOUBLE b[3]); __G3DIE__ double G3DDistance4dv(CDOUBLE a[4],CDOUBLE b[4]); /* * */ __G3DIE__ float G3DLength2fv(CFLOAT a[2]); __G3DIE__ float G3DLength3fv(CFLOAT a[3]); __G3DIE__ float G3DLength4fv(CFLOAT a[4]); __G3DIE__ double G3DLength2dv(CDOUBLE a[2]); __G3DIE__ double G3DLength3dv(CDOUBLE a[3]); __G3DIE__ double G3DLength4dv(CDOUBLE a[4]); /* * */ __G3DIE__ void G3DNormalise2fv(float res[2],CFLOAT src[2]); __G3DIE__ void G3DNormalise3fv(float res[3],CFLOAT src[3]); __G3DIE__ void G3DNormalise4fv(float res[4],CFLOAT src[4]); __G3DIE__ void G3DNormalise2dv(double res[2],CDOUBLE src[2]); __G3DIE__ void G3DNormalise3dv(double res[3],CDOUBLE src[3]); __G3DIE__ void G3DNormalise4dv(double res[4],CDOUBLE src[4]); #endif