Matrix4d.rotateAroundLocal

Pre-multiply the rotation - and possibly scaling - transformation of the given {@link Quaterniond} to this matrix while using <code>(ox, oy, oz)</code> as the rotation origin. <p> When used with a right-handed coordinate system, the produced rotation will rotate a vector counter-clockwise around the rotation axis, when viewing along the negative axis direction towards the origin. When used with a left-handed coordinate system, the rotation is clockwise. <p> If <code>M</code> is <code>this</code> matrix and <code>Q</code> the rotation matrix obtained from the given quaternion, then the new matrix will be <code>Q * M</code>. So when transforming a vector <code>v</code> with the new matrix by using <code>Q * M * v</code>, the quaternion rotation will be applied last! <p> This method is equivalent to calling: <code>translateLocal(-ox, -oy, -oz).rotateLocal(quat).translateLocal(ox, oy, oz)</code> <p> Reference: <a href="http://en.wikipedia.org/wiki/Rotation_matrix#Quaternion">http://en.wikipedia.org</a>

@param quat the {@link Quaterniond} @param ox the x coordinate of the rotation origin @param oy the y coordinate of the rotation origin @param oz the z coordinate of the rotation origin @return this

  1. Matrix4d rotateAroundLocal(Quaterniond quat, double ox, double oy, double oz, Matrix4d dest)
  2. Matrix4d rotateAroundLocal(Quaterniond quat, double ox, double oy, double oz)
    struct Matrix4d
    ref return
    rotateAroundLocal
    (,
    double ox
    ,
    double oy
    ,
    double oz
    )

Meta