| 219 | } |
| 220 | } |
| 221 | void Camera3DTestDemo::SwitchViewCallback(Object* sender, CameraType cameraType) |
| 222 | { |
| 223 | if (_cameraType == cameraType) |
| 224 | { |
| 225 | return; |
| 226 | } |
| 227 | _cameraType = cameraType; |
| 228 | if (_cameraType == CameraType::Free) |
| 229 | { |
| 230 | _camera->setPosition3D(Vec3(0, 130, 130) + _mesh->getPosition3D()); |
| 231 | _camera->lookAt(_mesh->getPosition3D()); |
| 232 | |
| 233 | _RotateRightlabel->setColor(Color3B::WHITE); |
| 234 | _RotateLeftlabel->setColor(Color3B::WHITE); |
| 235 | _ZoomInlabel->setColor(Color3B::WHITE); |
| 236 | _ZoomOutlabel->setColor(Color3B::WHITE); |
| 237 | } |
| 238 | else if (_cameraType == CameraType::FirstPerson) |
| 239 | { |
| 240 | Vec3 newFaceDir; |
| 241 | _mesh->getWorldToNodeTransform().getForwardVector(&newFaceDir); |
| 242 | newFaceDir.normalize(); |
| 243 | _camera->setPosition3D(Vec3(0, 35, 0) + _mesh->getPosition3D()); |
| 244 | _camera->lookAt(_mesh->getPosition3D() + newFaceDir * 50); |
| 245 | |
| 246 | _RotateRightlabel->setColor(Color3B::WHITE); |
| 247 | _RotateLeftlabel->setColor(Color3B::WHITE); |
| 248 | _ZoomInlabel->setColor(Color3B::GRAY); |
| 249 | _ZoomOutlabel->setColor(Color3B::GRAY); |
| 250 | } |
| 251 | else if (_cameraType == CameraType::ThirdPerson) |
| 252 | { |
| 253 | _camera->setPosition3D(Vec3(0, 130, 130) + _mesh->getPosition3D()); |
| 254 | _camera->lookAt(_mesh->getPosition3D()); |
| 255 | |
| 256 | _RotateRightlabel->setColor(Color3B::GRAY); |
| 257 | _RotateLeftlabel->setColor(Color3B::GRAY); |
| 258 | _ZoomInlabel->setColor(Color3B::WHITE); |
| 259 | _ZoomOutlabel->setColor(Color3B::WHITE); |
| 260 | } |
| 261 | } |
| 262 | void Camera3DTestDemo::onEnter() |
| 263 | { |
| 264 | CameraBaseTest::onEnter(); |
nothing calls this directly
no test coverage detected