本文整理汇总了C++中camera::setFocus方法的典型用法代码示例。如果您正苦于以下问题:C++ camera::setFocus方法的具体用法?C++ camera::setFocus怎么用?C++ camera::setFocus使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类camera
的用法示例。
在下文中一共展示了camera::setFocus方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: drawScene
/**
* Draws the scene (used in display).
*/
void drawScene() {
glMatrixMode(GL_MODELVIEW);
glEnable(GL_DEPTH_TEST);
glPushMatrix(); {
cam.updateLookat();
for (unsigned int i = 0; i < objs.size(); i++) {
objs[i]->draw();
if (draw_arrows) {
glDisable(GL_DEPTH_TEST);
objs[i]->drawArrows();
glEnable(GL_DEPTH_TEST);
}
if (draw_bounding_box) {
objs[i]->drawBoundingBox();
}
if (follow && objs[i]->classId == PART_ID) {
particleSystem *temp = (particleSystem*)objs[i];
cam.setFocus(temp->pos);
}
}
} glPopMatrix();
}
示例2: keyboard
/**
* The keyboard function that defines keys to be used.
*/
void keyboard(unsigned char key, int x, int y) {
switch(key) {
/* GENERAL */
case 27:
exit(EXIT_SUCCESS);
break;
case 'f': case 'F':
full_screen_flag = !full_screen_flag;
if (full_screen_flag) {
glutFullScreen();
}
else {
GW = 1080; GH = 720;
glutReshapeWindow(GW, GH);
}
break;
case '2': case '@':
draw_arrows = !draw_arrows;
break;
case '3': case '#':
draw_bounding_box = !draw_bounding_box;
break;
case '4': case '$':
follow = !follow;
if (!follow) { cam.setFocus(pnt3d(0, 0, 0)); }
break;
case '9':
load();
break;
case '(':
save();
break;
/* CAMERA */
case ' ':
cam.cam_spin_flag = !cam.cam_spin_flag;
break;
/* PARTICLES */
case '/': case '?':
general((char*)"cif");
break;
case '\'': case '\"':
general((char*)"retract_flag");
break;
case '1':
objs.push_back(new particleSystem(pnt3d(rand() % 10 - 5,
rand() % 10 - 5,
rand() % 10 - 5)));
break;
case '!':
objs.pop_back();
break;
case '5': case '%':
general((char*)"points_flag");
break;
case '6': case '^':
general((char*)"switch_mesh");
break;
case '7': case '&':
general((char*)"type");
break;
case '0': case ')':
general((char*)"screen_saver");
break;
default:
key_states[key] = true;
break;
}
}