コード例 #1
0
ファイル: AnimPose.cpp プロジェクト: disigma/hifi
AnimPose::AnimPose(const glm::mat4& mat) {
    scale = extractScale(mat);
    // quat_cast doesn't work so well with scaled matrices, so cancel it out.
    glm::mat4 tmp = glm::scale(mat, 1.0f / scale);
    rot = glm::normalize(glm::quat_cast(tmp));
    trans = extractTranslation(mat);
}
コード例 #2
0
ファイル: GLMHelpers.cpp プロジェクト: disigma/hifi
float extractUniformScale(const glm::mat4& matrix) {
    return extractUniformScale(extractScale(matrix));
}
コード例 #3
0
ファイル: GLMHelpers.cpp プロジェクト: disigma/hifi
glm::quat glmExtractRotation(const glm::mat4& matrix) {
    glm::vec3 scale = extractScale(matrix);
    // quat_cast doesn't work so well with scaled matrices, so cancel it out.
    glm::mat4 tmp = glm::scale(matrix, 1.0f / scale);
    return glm::normalize(glm::quat_cast(tmp));
}
コード例 #4
0
ファイル: AnimSkeleton.cpp プロジェクト: pewing/hifi
AnimPose::AnimPose(const glm::mat4& mat) {
    scale = extractScale(mat);
    rot = glm::normalize(glm::quat_cast(mat));
    trans = extractTranslation(mat);
}