⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 camera.cpp

📁 赫赫大名的 OGRE 游戏引擎
💻 CPP
字号:
#ifdef HAVE_CONFIG_H
#   include "config.h"
#   ifdef HAVE_SNPRINTF
#       undef HAVE_SNPRINTF
#   endif
#endif

#include "OgrePythonLink.h"
#include "OgreSphere.h"

using namespace boost::python;
using namespace Ogre;

void exportCamera()
{
    class_<Camera>("Camera", init<std::string, SceneManager*>())
        .def("getSceneManager", &Camera::getSceneManager,
                return_internal_reference<>())
        .def("getName", &Camera::getName, ccr())
        .def("setProjectionType", &Camera::setProjectionType)
        .def("getProjectionType", &Camera::getProjectionType)
        .def("setDetailLevel", &Camera::setDetailLevel)
        .def("getDetailLevel", &Camera::getDetailLevel)
        .def("setPosition",  (void (Camera::*)(Real, Real, Real))
            &Camera::setPosition)
        .def("setPosition",  (void (Camera::*)(const Vector3&)) 
            &Camera::setPosition)
        .def("getPosition", &Camera::getPosition, ccr())
        .def("move", &Camera::move)
        .def("moveRelative", &Camera::moveRelative)
        .def("setDirection", (void (Camera::*) (Real, Real, Real))&Camera::setDirection)
        .def("setDirection", (void (Camera::*) (const Vector3&))&Camera::setDirection)
        .def("getDirection", &Camera::getDirection)
        .def("lookAt", (void (Camera::*)(Real,Real,Real))&Camera::lookAt)
        .def("lookAt", (void (Camera::*)(const Vector3&))&Camera::lookAt)
        .def("roll", &Camera::roll)
        .def("yaw", &Camera::yaw)
        .def("pitch", &Camera::pitch)
        .def("rotate", (void (Camera::*)(const Vector3&,Real))&Camera::rotate)
        .def("rotate", (void (Camera::*)(const Quaternion&))&Camera::rotate)
        .def("setFixedYawAxis", &Camera::setFixedYawAxis)
        .def("setFOVy", &Camera::setFOVy)
        .def("getFOVy", &Camera::getFOVy)
        .def("setNearClipDistance", &Camera::setNearClipDistance)
        .def("getNearClipDistance", &Camera::getNearClipDistance)
        .def("setFarClipDistance", &Camera::setFarClipDistance)
        .def("getFarClipDistance", &Camera::getFarClipDistance)
        .def("setAspectRatio", &Camera::setAspectRatio)
        .def("getAspectRatio", &Camera::getAspectRatio)
        .def("getProjectionMatrix", &Camera::getProjectionMatrix, rir())
        .def("getViewMatrix", &Camera::getViewMatrix, rir())
        .def("getFrustumPlane", &Camera::getFrustumPlane, rir())
        .def("isVisible", 
                (bool (Camera::*)(const AxisAlignedBox&, FrustumPlane*))
                 &Camera::isVisible)
        .def("isVisible", 
                (bool (Camera::*)(const Sphere&, FrustumPlane*))
                 &Camera::isVisible)
        .def("isVisible", 
                (bool (Camera::*)(const Vector3&, FrustumPlane*))
                 &Camera::isVisible)
        .def("getOrientation", &Camera::getOrientation, rir())
        .def("setOrientation", &Camera::setOrientation)
        .def("getDerivedOrientation", &Camera::getDerivedOrientation)
        .def("getDerivedPosition", &Camera::getDerivedPosition)
        .def("getDerivedDirection", &Camera::getDerivedDirection)
        .def("getMovableType", &Camera::getMovableType)
        .def("setAutoTracking", &Camera::setAutoTracking)
        .def("setLodBias", &Camera::setLodBias)
        .def("getLodBias", &Camera::getLodBias)
    ;

    enum_<ProjectionType>("ProjectionType")
        .value("PT_ORTHOGRAPHIC", PT_ORTHOGRAPHIC)
        .value("PT_PERSPECTIVE", PT_PERSPECTIVE)
    ;

    enum_<FrustumPlane>("FrustumPlane")
        .value("FRUSTUM_PLANE_NEAR", FRUSTUM_PLANE_NEAR)
        .value("FRUSTUM_PLANE_FAR", FRUSTUM_PLANE_FAR)
        .value("FRUSTUM_PLANE_LEFT", FRUSTUM_PLANE_LEFT)
        .value("FRUSTUM_PLANE_RIGHT", FRUSTUM_PLANE_RIGHT)
        .value("FRUSTUM_PLANE_TOP", FRUSTUM_PLANE_TOP)
        .value("FRUSTUM_PLANE_BOTTOM", FRUSTUM_PLANE_TOP)
    ;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -