📄 camera.hpp
字号:
// Sh: A GPU metaprogramming language.//// Copyright 2003-2005 Serious Hack Inc.// // This library is free software; you can redistribute it and/or// modify it under the terms of the GNU Lesser General Public// License as published by the Free Software Foundation; either// version 2.1 of the License, or (at your option) any later version.//// This library is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU// Lesser General Public License for more details.//// You should have received a copy of the GNU Lesser General Public// License along with this library; if not, write to the Free Software// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, // MA 02110-1301, USA//////////////////////////////////////////////////////////////////////////////#ifndef SMASHTEST_CAMERA_HPP#define SMASHTEST_CAMERA_HPP#include <sh/sh.hpp>#include <iostream>class Camera {public: Camera(); void move(float x, float y, float z); void orbit(int sx, int sy, int x, int y, int w, int h); void glModelView(); void glProjection(float aspect); SH::ShMatrix4x4f shModelView(); SH::ShMatrix4x4f shModelViewProjection(SH::ShMatrix4x4f viewport);private: SH::ShMatrix4x4f perspective(float fov, float aspect, float near, float far); SH::ShMatrix4x4f proj; SH::ShMatrix4x4f rots; SH::ShMatrix4x4f trans; friend std::ostream &operator<<(std::ostream &output, Camera &camera); friend std::istream &operator>>(std::istream &input, Camera &camera);};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -