当前位置: 首页>>代码示例>>C++>>正文


C++ CameraController::getFar方法代码示例

本文整理汇总了C++中CameraController::getFar方法的典型用法代码示例。如果您正苦于以下问题:C++ CameraController::getFar方法的具体用法?C++ CameraController::getFar怎么用?C++ CameraController::getFar使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CameraController的用法示例。


在下文中一共展示了CameraController::getFar方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: keyboardEvent

void keyboardEvent(unsigned char key, int x, int y) {
	switch (key) {
		case 'x':
		case 27 : {
				  exit(0);
				  break;
			  }
		case 'w': {
				  // move forward //
				  camera.move(CameraController::MOVE_FORWARD);
				  break;
			  }
		case 's': {
				  // move backward //
				  camera.move(CameraController::MOVE_BACKWARD);
				  break;
			  }
		case 'a': {
				  // move left //
				  camera.move(CameraController::MOVE_LEFT);
				  break;
			  }
		case 'd': {
				  // move right //
				  camera.move(CameraController::MOVE_RIGHT);
				  break;
			  }
		case 'z': {
				  camera.setOpeningAngle(camera.getOpeningAngle() + 0.1f);
				  break;
			  }
		case 'h': {
				  camera.setOpeningAngle(std::min(std::max(camera.getOpeningAngle() - 0.1f, 1.0f), 180.0f));
				  break;
			  }
		case 'r': {
				  camera.setNear(std::min(camera.getNear() + 0.1f, camera.getFar() - 0.01f));
				  break;
			  }
		case 'f': {
				  camera.setNear(std::max(camera.getNear() - 0.1f, 0.1f));
				  break;
			  }
		case 't': {
				  camera.setFar(camera.getFar() + 0.1f);
				  break;
			  }
		case 'g': {
				  camera.setFar(std::max(camera.getFar() - 0.1f, camera.getNear() + 0.01f));
				  break;
			  }
		case 'm': {
				  materialIndex++;
				  if (materialIndex >= materialCount) materialIndex = 0;
				  break;
			  }
		case '0':
		case '1':
		case '2':
		case '3':
		case '4':
		case '5':
		case '6':
		case '7':
		case '8':
		case '9': {
				  int lightIdx;
				  std::stringstream keyStr;
				  keyStr << key;
				  keyStr >> lightIdx;
				  if (lightIdx == 0) lightIdx = 10;
				  if (lightIdx > 0) toggleLightSource(lightIdx - 1);
				  break;
			  }
	}
	glutPostRedisplay();
}
开发者ID:Aegyr,项目名称:cg2,代码行数:77,代码来源:Ex07.cpp

示例2: keyboardEvent

void keyboardEvent(unsigned char key, int x, int y) {
    switch (key) {
        case 'x':
        case 27 : {
                      exit(0);
                      break;
                  }
        case 'w': {
                      // move forward //
                      camera.move(CameraController::MOVE_FORWARD);
                      break;
                  }
        case 's': {
                      // move backward //
                      camera.move(CameraController::MOVE_BACKWARD);
                      break;
                  }
        case 'a': {
                      // move left //
                      camera.move(CameraController::MOVE_LEFT);
                      break;
                  }
        case 'd': {
                      // move right //
                      camera.move(CameraController::MOVE_RIGHT);
                      break;
                  }
        case 'z': {
                      camera.setOpeningAngle(camera.getOpeningAngle() + 0.1f);
                      break;
                  }
        case 'h': {
                      camera.setOpeningAngle(std::min(std::max(camera.getOpeningAngle() - 0.1f, 1.0f), 180.0f));
                      break;
                  }
        case 'r': {
                      camera.setNear(std::min(camera.getNear() + 0.1f, camera.getFar() - 0.01f));
                      break;
                  }
        case 'f': {
                      camera.setNear(std::max(camera.getNear() - 0.1f, 0.1f));
                      break;
                  }
        case 't': {
                      camera.setFar(camera.getFar() + 0.1f);
                      break;
                  }
        case 'g': {
                      camera.setFar(std::max(camera.getFar() - 0.1f, camera.getNear() + 0.01f));
                      break;
                  }
        case 'm': {
                      materialIndex++;
                      if (materialIndex >= materialCount) materialIndex = 0;
                      break;
                  }
        case '5': {
                      // reset light pos //
                      light.position = initialLightPos;
                      lightSourcePosUpdate = true;
                      break;
                  }
        case '4': {
                      // move light source left //
                      light.position.x -= 0.05f;
                      lightSourcePosUpdate = true;
                      break;
                  }
        case '6': {
                      // move light source right //
                      light.position.x += 0.05f;
                      lightSourcePosUpdate = true;
                      break;
                  }
        case '2': {
                      // move light source backward //
                      light.position.z += 0.05f;
                      lightSourcePosUpdate = true;
                      break;
                  }
        case '8': {
                      // move light source forward //
                      light.position.z -= 0.05f;
                      lightSourcePosUpdate = true;
                      break;
                  }
        case '+': {
                      // move light source up //
                      light.position.y += 0.05f;
                      lightSourcePosUpdate = true;
                      break;
                  }
        case '-': {
                      // move light source down //
                      light.position.y -= 0.05f;
                      lightSourcePosUpdate = true;
                      break;
                  }
    }
    glutPostRedisplay();
//.........这里部分代码省略.........
开发者ID:CompN3rd,项目名称:cg2,代码行数:101,代码来源:Ex10.cpp

示例3: keyboardEvent

void keyboardEvent(unsigned char key, int x, int y) {
  switch (key) {
    case 'x':
    case 27 : {
      exit(0);
      break;
    }
    case 'w': {
      // move forward //
      camera.move(CameraController::MOVE_FORWARD);
      break;
    }
    case 's': {
      // move backward //
      camera.move(CameraController::MOVE_BACKWARD);
      break;
    }
    case 'a': {
      // move left //
      camera.move(CameraController::MOVE_LEFT);
      break;
    }
    case 'd': {
      // move right //
      camera.move(CameraController::MOVE_RIGHT);
      break;
    }
    case 'z': {
      camera.setOpeningAngle(camera.getOpeningAngle() + 0.1f);
      break;
    }
    case 'h': {
      camera.setOpeningAngle(std::min(std::max(camera.getOpeningAngle() - 0.1f, 1.0f), 180.0f));
      break;
    }
    case 'r': {
      camera.setNear(std::min(camera.getNear() + 0.1f, camera.getFar() - 0.01f));
      break;
    }
    case 'f': {
      camera.setNear(std::max(camera.getNear() - 0.1f, 0.1f));
      break;
    }
    case 't': {
      camera.setFar(camera.getFar() + 0.1f);
      break;
    }
    case 'g': {
      camera.setFar(std::max(camera.getFar() - 0.1f, camera.getNear() + 0.01f));
      break;
    }
    case 'm': {
      materialIndex++;
      if (materialIndex >= materialCount) materialIndex = 0;
      break;
    }
    case 'l': {
      lightIndex++;
      if (lightIndex >= lightCount) lightIndex = 0;
      break;
    }
  }
  glutPostRedisplay();
}
开发者ID:blinrybot,项目名称:cg2,代码行数:64,代码来源:Ex05.cpp


注:本文中的CameraController::getFar方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。