MCPcopy Create free account
hub / github.com/NVIDIAGameWorks/PhysX / SetupCamera

Function SetupCamera

kaplademo/source/kaplaDemo/SampleViewer.cpp:1086–1149  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1084// ------------------------------------------------------------------------------------
1085
1086void SetupCamera(bool mirrored = false)
1087{
1088 glMatrixMode(GL_PROJECTION);
1089 glLoadIdentity();
1090 float aspectRatio = ((float)glutGet(GLUT_WINDOW_WIDTH)/(float)glutGet(GLUT_WINDOW_HEIGHT));
1091 gluPerspective(gCamera.fov, aspectRatio, zNear, zFar);
1092 glMatrixMode(GL_MODELVIEW);
1093 glLoadIdentity();
1094
1095 if (gCamera.trackballMode) {
1096 gCamera.trackballCenter.x = 0.0f;
1097 gCamera.trackballCenter.z = 0.0f;
1098 gCamera.pos = gCamera.trackballCenter - gCamera.forward * gCamera.trackballRadius;
1099 }
1100
1101
1102 gSampleScene->getCamera(gCamera.pos, gCamera.forward);
1103
1104 PxVec3 pos = gCamera.pos;
1105 PxVec3 dir = gCamera.forward;
1106 PxVec3 apos = gCamera.pos + dir;
1107
1108
1109 gluLookAt(pos.x, pos.y, pos.z, pos.x + dir.x, pos.y + dir.y, pos.z + dir.z, 0.0f, 1.0f, 0.0f);
1110
1111 if (mirrored) {
1112 PxTransform trans;
1113
1114 PxVec3 waterN(0.0f, 1.0f, 0.0f);
1115 PxVec3 waterP(0.0f,gGroundY,0.0f);
1116 float QQQ = 0.00f;
1117 waterP.y += QQQ;
1118 float np2 = 2.0f*waterN.dot(waterP);
1119
1120 PxVec3 r0 = PxVec3(1.0f, 0.0f, 0.0f) - 2*waterN.x*waterN;
1121 PxVec3 r1 = PxVec3(0.0f, 1.0f, 0.0f) - 2*waterN.y*waterN;
1122 PxVec3 r2 = PxVec3(0.0f, 0.0f, 1.0f) - 2*waterN.z*waterN;
1123 PxVec3 t = np2*waterN;
1124
1125 float matGL[16] = {
1126 r0.x, r1.x, r2.x, 0.0f,
1127 r0.y, r1.y, r2.y, 0.0f,
1128 r0.z, r1.z, r2.z, 0.0f,
1129 t.x, t.y, t.z, 1.0f};
1130
1131 glMultMatrixf(matGL);
1132
1133 }
1134
1135
1136 glGetFloatv(GL_MODELVIEW_MATRIX, modelMatrix);
1137 glGetFloatv(GL_PROJECTION_MATRIX, projMatrix);
1138
1139 gDefaultShader->updateCamera(modelMatrix, projMatrix);
1140 if (gSampleScene != NULL) {
1141 for (int i = 0; i < (int)gSampleScene->getShaders().size(); i++)
1142 gSampleScene->getShaders()[i]->updateCamera(modelMatrix, projMatrix);
1143 gSampleScene->setCamera(gCamera.pos, gCamera.forward, PxVec3(0,1,0), gCamera.fov);

Callers 2

RenderSceneFunction · 0.85
RenderCallbackFunction · 0.85

Calls 9

PxVec3Class · 0.50
getCameraMethod · 0.45
dotMethod · 0.45
updateCameraMethod · 0.45
sizeMethod · 0.45
setCameraMethod · 0.45
getNormalizedMethod · 0.45
crossMethod · 0.45
normalizeMethod · 0.45

Tested by

no test coverage detected