From e60555acd2390f858669ceb12696e542d2ac95ad Mon Sep 17 00:00:00 2001 From: Matej Jan Date: Tue, 18 Sep 2012 12:41:48 +0000 Subject: [PATCH] Added vectorstruct multiplication methods by components git-svn-id: http://xni.googlecode.com/svn/XNI@114 ac433895-eea3-a490-d80a-17149a75e588 --- Classes/Retronator/Xni/Framework/Vector2Struct.h | 4 ++++ Classes/Retronator/Xni/Framework/Vector3Struct.h | 4 ++++ Classes/Retronator/Xni/Framework/Vector4Struct.h | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/Classes/Retronator/Xni/Framework/Vector2Struct.h b/Classes/Retronator/Xni/Framework/Vector2Struct.h index 3af7c11..d31ded9 100644 --- a/Classes/Retronator/Xni/Framework/Vector2Struct.h +++ b/Classes/Retronator/Xni/Framework/Vector2Struct.h @@ -50,6 +50,10 @@ static inline void Vector2Multiply(Vector2Struct *value1, float scaleFactor, Vec Vector2Set(result, value1->x * scaleFactor, value1->y * scaleFactor); } +static inline void Vector2MultiplyComponents(Vector2Struct *value1, Vector2Struct *value2, Vector2Struct *result) { + Vector2Set(result, value1->x * value2->x, value1->y * value2->y); +} + static inline float Vector2DotProduct(Vector2Struct *value1, Vector2Struct *value2) { return value1->x * value2->x + value1->y * value2->y; } diff --git a/Classes/Retronator/Xni/Framework/Vector3Struct.h b/Classes/Retronator/Xni/Framework/Vector3Struct.h index b8234d9..6226a94 100644 --- a/Classes/Retronator/Xni/Framework/Vector3Struct.h +++ b/Classes/Retronator/Xni/Framework/Vector3Struct.h @@ -59,6 +59,10 @@ static inline void Vector3Multiply(Vector3Struct *value1, float scaleFactor, Vec Vector3Set(result, value1->x * scaleFactor, value1->y * scaleFactor, value1->z * scaleFactor); } +static inline void Vector3MultiplyComponents(Vector3Struct *value1, Vector3Struct *value2, Vector3Struct *result) { + Vector3Set(result, value1->x * value2->x, value1->y * value2->y, value1->z * value2->z); +} + static inline void Vector3CrossProduct(Vector3Struct *value1, Vector3Struct *value2, Vector3Struct *result) { Vector3Set(result, value1->y * value2->z - value1->z * value2->y, diff --git a/Classes/Retronator/Xni/Framework/Vector4Struct.h b/Classes/Retronator/Xni/Framework/Vector4Struct.h index 5c02351..aea5404 100644 --- a/Classes/Retronator/Xni/Framework/Vector4Struct.h +++ b/Classes/Retronator/Xni/Framework/Vector4Struct.h @@ -68,6 +68,10 @@ static inline void Vector4Multiply(Vector4Struct *value1, float scaleFactor, Vec Vector4Set(result, value1->x * scaleFactor, value1->y * scaleFactor, value1->z * scaleFactor, value1->w * scaleFactor); } +static inline void Vector4MultiplyComponents(Vector4Struct *value1, Vector4Struct *value2, Vector4Struct *result) { + Vector4Set(result, value1->x * value2->x, value1->y * value2->y, value1->z * value2->z, value1->w * value2->w); +} + static inline void QuaternionMultiply(Vector4Struct *value1, Vector4Struct *value2, Vector4Struct *result) { float f12 = (value1->y * value2->z) - (value1->z * value2->y); float f11 = (value1->z * value2->x) - (value1->x * value2->z);