Hi All.Addressing it to the matrix3d gurus.I am porting a steer framework
from Unity3D into Away3D.Well what can I say,I really like their vector math
toolbox.For example I need to update matrix rotation based on the updated of
the forward vector.In UNity3D it is simple ,you just reassign the forward
setter to the matrix and it updates the forward orientation of the matrix
behind the scene for you.In Away3D I can use lookAt() which is basically
does the job but it breaks the encapsulation in my case as I need to pass
the target reference and I don't want.Next thing I tried and
was convinced it is a kind of parallel of Unity forward setter was
copyRowFrom() method of Matrix3D.  *@John Brooks* this one for you: If I
copy the updated forward vector into the matrix it doesn't update the whole
orientation but only the Z portion and event worse ,it is scaling the Z
dimension of the object .That is because second matrix row (z) also takes
care of the scales.So this approach is not good.
So my question is how I rotate the whole matrix without using lookAt() but
using direction vector?

BTW:------*-to the Team*: while working on this port I gathered several
Vector3D Util methods which I believe can be useful for people here.So I
would suggest adding them to the Vector3DUtils:

Scaling a given vector by another vector(non uniform scaling)
*scaleVectors(scaledVector:Vector3D,scalingVector:Vector3D):Vector3D*

Clamping vector's magnitude
 *clampMagnitude(value:Vector3D,max:Number):Vector3D*

Vector3D linear interpolation
*LERP(v1:Vector3D,v2:Vector3D,t:Number):Vector3D*

Thanks.


-- 
Michael Ivanov ,Programmer
Neurotech Solutions Ltd.
Flex|Air |3D|Unity|
www.neurotechresearch.com
http://blog.alladvanced.net
Tel:054-4962254
mich...@neurotech.co.il
t...@neurotech.co.il

Reply via email to