本文整理汇总了C++中Arcball::resetQuat方法的典型用法代码示例。如果您正苦于以下问题:C++ Arcball::resetQuat方法的具体用法?C++ Arcball::resetQuat怎么用?C++ Arcball::resetQuat使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Arcball
的用法示例。
在下文中一共展示了Arcball::resetQuat方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: update
void MemExploreApp::update()
{
Vec2f center = getWindowCenter();
mCameraArcball.resetQuat();
mCameraArcball.mouseDown(center);
mCameraArcball.mouseDrag(getWindowSize() - mMousePos);
mCamera.setOrientation(mCameraArcball.getQuat() * mCamera.getOrientation());
// Reset mouse position to center of screen
if(mIsFullscreen) {
Vec2f center = getWindowCenter();
CGSetLocalEventsSuppressionInterval(0.0);
CGWarpMouseCursorPosition(CGPointMake(center.x, center.y));
mMousePos = center;
}
float speed = 0.01f;
Vec3f camX = mCamera.getOrientation() * Vec3f::xAxis() * speed;
Vec3f camY = mCamera.getOrientation() * Vec3f::yAxis() * speed;
Vec3f camZ = mCamera.getOrientation() * Vec3f::zAxis() * speed;
if(mKeysDown.count('w')) mCameraAcc -= camZ;
if(mKeysDown.count('a')) mCameraAcc -= camX;
if(mKeysDown.count('s')) mCameraAcc += camZ;
if(mKeysDown.count('d')) mCameraAcc += camX;
if(mKeysDown.count('q')) mCameraAcc += camY;
if(mKeysDown.count('e')) mCameraAcc -= camY;
mCameraVel += mCameraAcc;
mCamera.setEyePoint(mCamera.getEyePoint() + mCameraVel);
mCameraVel *= 0.975f;
mCameraAcc *= 0.8f;
}