camera.hpp

来自「shrike is a utility application that act」· HPP 代码 · 共 51 行

HPP
51
字号
// 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 + =
减小字号Ctrl + -
显示快捷键?