当前位置: 首页>>代码示例>>C++>>正文


C++ RenderWindow::addListener方法代码示例

本文整理汇总了C++中ogre::RenderWindow::addListener方法的典型用法代码示例。如果您正苦于以下问题:C++ RenderWindow::addListener方法的具体用法?C++ RenderWindow::addListener怎么用?C++ RenderWindow::addListener使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ogre::RenderWindow的用法示例。


在下文中一共展示了RenderWindow::addListener方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: onInitialize

void OculusDisplay::onInitialize()
{
  fullscreen_property_ = new rviz::BoolProperty( "Render to Oculus", false,
    "If checked, will render fullscreen on your secondary screen. Otherwise, shows a window.",
    this, SLOT(onFullScreenChanged()));

  prediction_dt_property_ = new rviz::FloatProperty( "Motion prediction (ms)", 30.0,
    "Time in ms to predict head motion. Decreases overall latency and motion sickness.",
    this, SLOT(onPredictionDtChanged()) );

  near_clip_property_ = new rviz::FloatProperty( "Near Clip Distance", 0.02,
    "Minimum rendering distance for Oculus camera.",
    this );

  horizontal_property_ = new rviz::BoolProperty( "Fixed Horizon", true,
    "If checked, will ignore the pitch component of the RViz camera.", this);

  follow_cam_property_ = new rviz::BoolProperty( "Follow RViz Camera", true,
    "If checked, will set the Oculus camera to the same position as the main view camera.",
    this, SLOT( onFollowCamChanged() ) );

  tf_frame_property_ = new rviz::TfFrameProperty( "Target Frame", "<Fixed Frame>",
    "Tf frame that the Oculus camera should follow.", this, context_->getFrameManager(), true );

  offset_property_ = new rviz::VectorProperty( "Offset", Ogre::Vector3(0,0,0),
    "Additional offset of the Oculus camera from the followed RViz camera or target frame.", this );

  pub_tf_property_ = new rviz::BoolProperty( "Publish tf", true,
    "If checked, will publish the pose of the Oculus camera as a tf frame.",
    this, SLOT( onPubTfChanged() ) );

  pub_tf_frame_property_ = new rviz::StringProperty( "Tf Frame", "oculus",
    "Name of the published tf frame.", this );

  render_widget_ = new rviz::RenderWidget( rviz::RenderSystem::get() );
  render_widget_->setVisible(false);
  render_widget_->setWindowTitle( "Oculus View" );

  render_widget_->setParent( context_->getWindowManager()->getParentWindow() );
  render_widget_->setWindowFlags( Qt::Window | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowMaximizeButtonHint );

  Ogre::RenderWindow *window = render_widget_->getRenderWindow();
  window->setVisible(false);
  window->setAutoUpdated(false);
  window->addListener(this);

  scene_node_ = scene_manager_->getRootSceneNode()->createChildSceneNode();
}
开发者ID:rahulraw,项目名称:adVentuRe,代码行数:48,代码来源:oculus_display.cpp

示例2: createScene


//.........这里部分代码省略.........

	// Create a light
	Ogre::Light* l = sceneMgr->createLight("MainLight");
	l->setPosition(20,80,50);

	caelumSystem = new Caelum::CaelumSystem(root, sceneMgr, Caelum::CaelumSystem::CAELUM_COMPONENTS_NONE);

	try {
		caelumSystem->setSkyDome(new Caelum::SkyDome(sceneMgr, caelumSystem->getCaelumCameraNode()));
	} catch (Caelum::UnsupportedException& ex) {
		Dout << ex.getFullDescription();
	}

	try {
		caelumSystem->setSun(new Caelum::SphereSun(sceneMgr, caelumSystem->getCaelumCameraNode()));
	} catch (Caelum::UnsupportedException& ex) {
		Dout << ex.getFullDescription();
	}

	try {
		caelumSystem->setMoon(new Caelum::Moon(sceneMgr, caelumSystem->getCaelumCameraNode()));
	} catch (Caelum::UnsupportedException& ex) {
		Dout << ex.getFullDescription();
	}

	try {
		caelumSystem->setCloudSystem(new Caelum::CloudSystem(sceneMgr, caelumSystem->getCaelumGroundNode()));
	} catch (Caelum::UnsupportedException& ex) {
		Dout << ex.getFullDescription();
	}

	try {
		caelumSystem->setPointStarfield(new Caelum::PointStarfield(sceneMgr, caelumSystem->getCaelumCameraNode()));
	} catch (Caelum::UnsupportedException& ex) {
		Dout << ex.getFullDescription();
	}

	// Register caelum.
	// Don't make it a frame listener; update it by hand.
	//Root::getSingletonPtr ()->addFrameListener (caelumSystem.get ());
	caelumSystem->attachViewport(viewPort);

	try {
		caelumSystem->setPrecipitationController(new Caelum::PrecipitationController(sceneMgr));
	} catch (Caelum::UnsupportedException& ex) {
		Dout << ex.getFullDescription();
	}

	caelumSystem->setSceneFogDensityMultiplier(0.0015);

	caelumSystem->setManageAmbientLight(true);
	caelumSystem->setMinimumAmbientLight(Ogre::ColourValue(0.1, 0.1, 0.1));

	// Setup sun options

	if (caelumSystem->getSun()) {
		// Make the sun very obvious:
		//caelumSystem->getSun ()->setDiffuseMultiplier (Ogre::ColourValue (1, 10, 1));

		caelumSystem->getSun()->setAutoDisableThreshold(0.05);
		caelumSystem->getSun()->setAutoDisable(false);
	}

	if (caelumSystem->getMoon()) {
		// Make the moon very obvious:
		//caelumSystem->getMoon ()->setDiffuseMultiplier (Ogre::ColourValue (1, 1, 10));

		caelumSystem->getMoon()->setAutoDisableThreshold(0.05);
		caelumSystem->getMoon()->setAutoDisable(false);
	}

	if (caelumSystem->getCloudSystem()) {
		try {
			caelumSystem->getCloudSystem()->createLayerAtHeight(2000);
			caelumSystem->getCloudSystem()->createLayerAtHeight(5000);
			caelumSystem->getCloudSystem()->getLayer(0)->setCloudSpeed(Ogre::Vector2(0.000005, -0.000009));
			caelumSystem->getCloudSystem()->getLayer(1)->setCloudSpeed(Ogre::Vector2(0.0000045, -0.0000085));
		}

		catch (Caelum::UnsupportedException& ex) {
			Dout << ex.getFullDescription();
		}
	}

	if (caelumSystem->getPrecipitationController()) {
		caelumSystem->getPrecipitationController()->setIntensity(0);
	}

	// Set time acceleration.
	//caelumSystem->getUniversalClock ()->setTimeScale (0);

	// Sunrise with visible moon.
	caelumSystem->getUniversalClock()->setGregorianDateTime(2007, 4, 9, 9, 33, 0);

	caelumSystem->getUniversalClock()->setTimeScale(1024);

	window->addListener(caelumSystem);

	root->addFrameListener(caelumSystem);
}
开发者ID:Mononofu,项目名称:OTE,代码行数:101,代码来源:graphics.cpp


注:本文中的ogre::RenderWindow::addListener方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。