本文整理汇总了C++中Matrix44f::transformVec方法的典型用法代码示例。如果您正苦于以下问题:C++ Matrix44f::transformVec方法的具体用法?C++ Matrix44f::transformVec怎么用?C++ Matrix44f::transformVec使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Matrix44f
的用法示例。
在下文中一共展示了Matrix44f::transformVec方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: viewFrame
void Decompressor::viewFrame() {
skinningProg.bind();
skinningProg.uniform("worldProxyJoints", frames.first[currentFrame], MaxProxyJoints);
skinningProg.uniform("worldProxyJointsT", frames.second[currentFrame], MaxProxyJoints);
skinningProg.unbind();
#ifdef GPUDEBUG
std::vector<Vec3f> debugPosBuffer;
for (int i=0; i<debugPoints.size(); i++) {
if (currentFrame == 0) {
debugPosBuffer.push_back(debugPoints[i]);
} else {
Vec3f pos = debugPoints[i] * (1-debugpjws[i][0]-debugpjws[i][1]-debugpjws[i][2]-debugpjws[i][3]);
for (int j=0; j<4; j++) {
Matrix33f& pjm = frames.first[currentFrame][(int)(debugpjis[i][j])];
Vec3f& pjv = frames.second[currentFrame][(int)(debugpjis[i][j])];
Matrix44f mat;
mat.setColumn(0, Vec4f(pjm.at(0, 0), pjm.at(1, 0), pjm.at(2, 0), 0));
mat.setColumn(1, Vec4f(pjm.at(0, 1), pjm.at(1, 1), pjm.at(2, 1), 0));
mat.setColumn(2, Vec4f(pjm.at(0, 2), pjm.at(1, 2), pjm.at(2, 2), 0));
mat.setColumn(3, Vec4f(pjv.x, pjv.y, pjv.z, 0));
Vec3f temp = mat.transformVec(debugPoints[i]);
pos += temp * debugpjws[i][j];
}
debugPosBuffer.push_back(pos);
}
}
debugMesh->bufferPositions(debugPosBuffer);
#endif
}