Blitz3D C++ geometry code

Blitz3D Forums/Blitz3D Programming/Blitz3D C++ geometry code

assuming i'm not sur of this
in the quat code ( bmax version )
	Method Normalized:TQuat()
		Local q:TQuat=New TQuat
		q.w=q.w/Length()
		q.v.x=q.v.x/Length()
		q.v.y=q.v.y/Length()
		q.v.z=q.v.z/Length()
		Return q
	End Method

i think there 's an error...
if we operand "/lentght()" to the new quat, the result is "0" => q is a new quat, so all its value are 0,0,0,0 , instead of copying the callback quat

it should be ( using the "Self" quat values)
	Method Normalized:TQuat()
		Local q:TQuat=New TQuat
		q.w=w/Length()
		q.v.x=v.x/Length()
		q.v.y=v.y/Length()
		q.v.z=v.z/Length()
		Return q
	End Method


eventually, using the local lenght

	Method Normalized:TQuat()
		Local q:TQuat=New TQuat
		Local l_lenght:Float=Length()
		q.w=w/l_lenght
		q.v.x=v.x/l_length
		q.v.y=v.y/l_length
		q.v.z=v.z/l_length
		Return q
	End Method




[EDIT 1]
in Type TMat
	Method Orthogonalized:TMat()
		Local m:TMat=TMat.Create0()
		m.Orthogonalize()
		Return m
	End Method


not sure, but, it does not copy the matrix, then ortogonalize... it only return a new "empty" one

i'm currently not very familiar with Bmax method, and I'm not really sure of which type call the method "Orthogonalize"
is it "m" ? or "Self" ?

whatever, I try to give a way :
=> Local m:TMat=TMat.Copy()
instead of TMat.Create0()

[EDIT 2]
Function QuatPitch:Float( q:TQuat )
	Return q.k().Pitch()
End Function

Function QuatYaw:Float( q:TQuat )
	Return q.k().Yaw()
End Function

I don't understand the meaning of q.k() <= what is "k()" ?

[EDIT3] forget "edit 2" , I had the answer under my eyes, but could not see it : k() is a call to the Method k:TVec()
... I was lloking for a "k" parameter for TMat type -_-'