# small vector3 patch

## Recommended Posts

tdev    152
i was using the vector3 test code and noticed a typo in the code that rendered my distance function useless. see yourself:
Index: add_on/scriptmath3d/scriptmath3d.cpp
===================================================================
@@ -82,17 +82,22 @@
return sqrtf(x*x + y*y + z*z);
}

+float Vector3::distance(Vector3 &v) const
+{
+	return (*this-v).length();
+}
+
Vector3 operator+(const Vector3 &a, const Vector3 &b)
{
// Return a new object as a script handle
-	Vector3 res(a.x + b.x, a.y + b.y, a.z + b.y);
+	Vector3 res(a.x + b.x, a.y + b.y, a.z + b.z);
return res;
}

Vector3 operator-(const Vector3 &a, const Vector3 &b)
{
// Return a new object as a script handle
-	Vector3 res(a.x - b.x, a.y - b.y, a.z - b.y);
+	Vector3 res(a.x - b.x, a.y - b.y, a.z - b.z);
return res;
}

@@ -292,6 +297,7 @@

// Register the object methods
r = engine->RegisterObjectMethod("vector3", "float length() const", asMETHOD(Vector3,length), asCALL_THISCALL); assert( r >= 0 );
+	r = engine->RegisterObjectMethod("vector3", "float distance(vector3 &in) const", asMETHOD(Vector3,distance), asCALL_THISCALL); assert( r >= 0 );
}

void RegisterScriptMath3D_Generic(asIScriptEngine *engine)
===================================================================
@@ -22,6 +22,7 @@
Vector3 &operator/=(float scalar);

float length() const;
+	float distance(Vector3 &v) const;

friend bool operator==(const Vector3 &a, const Vector3 &b);
friend bool operator!=(const Vector3 &a, const Vector3 &b);

[Edited by - tdev on June 22, 2009 3:00:43 PM]

##### Share on other sites
WitchLord    4677
Thanks. I've fixed the bug you reported.

I didn't actually apply the patch, as vector3 add-on is more of an example rather than a useable add-on library. I might actually remove it as an add-on in a future version.

##### Share on other sites
Wavesonics    330
Why not just continue building it out like this to the point where it is usable? IMO having a strong library of addons is critical for AS.

I was even thinking about creating a full 3D math addon with 3d vector upgrades, a registered Quaternion class, and so on. What do you think?

##### Share on other sites
WitchLord    4677
I agree that having a strong library of add-ons is critical to the success of AngelScript. But I really don't think it is appropriate to bundle AngelScript with a math library. I do not want people to replace whatever math library they use but rather register the one they already use, for example D3DX, or PhysX, etc.

For myself, I am actually writing my own math library, that I am registering with AngelScript. You can find the math library in my toolbox. Once the math library is more mature, I'll probably put up the AngelScript registration of it too.

You can find code for registering PhysX' math library on the wiki.

##### Share on other sites
Wavesonics    330
Quote:
 For myself, I am actually writing my own math library

Of course you are :P

That sounds awesome though, good show!