コード例 #1
0
  public Number3D multiply(final Number3D v) {
    Number3D r = new Number3D();

    float inv = 1.0f / (m[12] * v.x + m[13] * v.y + m[14] * v.z + m[15]);

    r.x = (m[0] * v.x + m[1] * v.y + m[2] * v.z + m[3]) * inv;
    r.y = (m[4] * v.x + m[5] * v.y + m[6] * v.z + m[7]) * inv;
    r.z = (m[8] * v.x + m[8] * v.y + m[10] * v.z + m[11]) * inv;

    return r;
  }