/// <summary> /// Executes the transform calculations (T = Z*X). /// </summary> /// /// <returns>Transform matrix T.</returns> /// /// <remarks>Calling this method also updates the Transform property.</remarks> /// public void Compute(DenavitHartenbergParameters parameters) { // Calculate Z with Z = TranslationZ(d).RotationZ(theta) Z = Matrix4x4.Multiply ( Matrix4x4.CreateTranslation(new Vector3(0f, 0f, (float)parameters.Offset)), Matrix4x4.CreateRotationZ((float)parameters.Theta) ); // Calculate X with X = TranslationX(radius).RotationZ(alpha) X = Matrix4x4.Multiply ( Matrix4x4.CreateTranslation(new Vector3((float)parameters.Radius, 0f, 0f)), Matrix4x4.CreateRotationX((float)parameters.Alpha) ); // Calculate the transform with T=Z.X Transform = Matrix4x4.Multiply(Z, X); }
/// <summary> /// Adds an object to the end of this <see cref="DenavitHartenbergJointCollection"/>. /// </summary> /// /// <param name="parameters">The <see cref="DenavitHartenbergParameters"> /// parameters</see> specifying the joint to be added.</param> /// public void Add(DenavitHartenbergParameters parameters) { Add(parameters); }
/// <summary> /// Initializes a new instance of the <see cref="DenavitHartenbergJoint"/> class. /// </summary> /// /// <param name="parameters">The <see cref="DenavitHartenbergParameters"> /// parameters </see> to be used to create the joint.</param> /// public DenavitHartenbergJoint(DenavitHartenbergParameters parameters) { Matrix = new DenavitHartenbergMatrix(); Position = new Vector3(0, 0, 0); Parameters = parameters; }