pro文件配置:

.h文件源码:

.cpp文件源码:
#include "OgreWidget.h"
#include "ui_OgreWidget.h"
#include "Ogre.h"
#include <QWheelEvent>
#include <QDebug>
OgreWidget::OgreWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::OgreWidget)
{
ui->setupUi(this);
mApplicationContextQt = nullptr;
mEntitySceneNode = nullptr;
mCamera = nullptr;
mSceneManager = nullptr;
mImgSceneNode = nullptr;
mPosPressMouse = Ogre::Vector3::ZERO;
mPosPressNOde = Ogre::Vector3::ZERO;
}
OgreWidget::~OgreWidget()
{
release();
delete ui;
}
void OgreWidget::create()
{
QWindow *tWindow = new QWindow();
tWindow->setGeometry(0, 0, 800, 600);//必须设置区域,否则会崩溃
mApplicationContextQt = new OgreBites::ApplicationContextQt();
mApplicationContextQt->injectMainWindow(tWindow);//必须在initApp前执行
mApplicationContextQt->initApp();
QWidget *tWidget = QWidget::createWindowContainer(tWindow);//必须在initApp后执行
ui->GLayout->addWidget(tWidget);
mSceneManager = mApplicationContextQt->getRoot()->createSceneManager();
Ogre::SceneNode *lightSceneNode = mSceneManager->getRootSceneNode()->createChildSceneNode();
lightSceneNode->setPosition(0, 0, 15);
Ogre::Light *tLight = mSceneManager->createLight("MainLight");
lightSceneNode->attachObject(tLight);
Ogre::SceneNode *cameraSceneNode = mSceneManager->getRootSceneNode()->createChildSceneNode();
cameraSceneNode->setPosition(0, 0, 15);
mCamera = mSceneManager->createCamera("myCam");
mCamera->setNearClipDistance(5);
cameraSceneNode->attachObject(mCamera);
mApplicationContextQt->getRenderWindow()->addViewport(mCamera);
mEntitySce

最低0.47元/天 解锁文章

1532

被折叠的 条评论
为什么被折叠?



