• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ ogre::SceneManager类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: createDummyScene

void AbstractGameCore::createDummyScene()
{
	m_pRenderWindow->removeAllViewports();
	Ogre::SceneManager* sm = m_pOgreRoot->createSceneManager(Ogre::ST_GENERIC, "DummyScene");
	Ogre::Camera* cam = sm->createCamera("DummyCamera");
	m_pRenderWindow->addViewport(cam);
}
开发者ID:Yati1,项目名称:pulmo,代码行数:7,代码来源:AbstractGameCore.cpp


示例2: rayTest

bool gkMouseSensor::rayTest(void)
{
	// cannot test no movable data,
	if (m_type == MOUSE_MOUSE_OVER && (m_object->getType() == GK_OBJECT || m_object->getType() == GK_SKELETON))
		return false;


	GK_ASSERT(m_object);
	gkCamera* cam = m_object->getOwner()->getMainCamera();
	Ogre::Camera* oc = cam->getCamera();


	gkMouse* mse = gkWindowSystem::getSingleton().getMouse();

	gkScalar ncx = mse->position.x / mse->winsize.x;
	gkScalar ncy = mse->position.y / mse->winsize.y;


	Ogre::Ray dest;
	oc->getCameraToViewportRay(ncx, ncy, &dest);

	if (m_rayQuery == 0)
	{
		Ogre::SceneManager* mgr = m_object->getOwner()->getManager();
		m_rayQuery = mgr->createRayQuery(dest);
	}
	else m_rayQuery->setRay(dest);


	// do the test
	Ogre::RaySceneQueryResult& res = m_rayQuery->execute();

	bool result = false;
	for (Ogre::RaySceneQueryResult::iterator it = res.begin(); it != res.end(); ++it)
	{
		Ogre::RaySceneQueryResultEntry ent = (*it);

		if (ent.movable == oc)
			continue;


		if (ent.movable)
		{
			if (m_type == MOUSE_MOUSE_OVER)
			{
				if (ent.movable == m_object->getMovable())
				{
					result = true;
					break;
				}
			}
			else
			{
				result = true;
				break;
			}
		}
	}
	return result;
}
开发者ID:Draion,项目名称:Gamekit,代码行数:60,代码来源:gkMouseSensor.cpp


示例3: RemoveMesh

void EC_Mesh::RemoveMesh()
{
    OgreWorldPtr world = world_.lock();

    if (entity_)
    {
        emit MeshAboutToBeDestroyed();
        
        RemoveAllAttachments();
        DetachEntity();
        
        Ogre::SceneManager* sceneMgr = world->OgreSceneManager();
        sceneMgr->destroyEntity(entity_);
        
        entity_ = 0;
    }
    
    if (!cloned_mesh_name_.empty())
    {
        try
        {
            Ogre::MeshManager::getSingleton().remove(cloned_mesh_name_);
        }
        catch(Ogre::Exception& e)
        {
            LogWarning("EC_Mesh::RemoveMesh: Could not remove cloned mesh:" + std::string(e.what()));
        }
        
        cloned_mesh_name_ = std::string();
    }
}
开发者ID:katik,项目名称:naali,代码行数:31,代码来源:EC_Mesh.cpp


示例4: enter

void MainGameState::enter()
{
    // Create the scene
    m_pScene = new Scene("main");

    Visual::World* pVisualWorld = new Visual::World("", m_pScene->getComponentsList());

    Ogre::SceneManager* pSceneManager = pVisualWorld->createSceneManager(Ogre::ST_GENERIC);
    pSceneManager->setShadowTechnique(Ogre::SHADOWTYPE_STENCIL_ADDITIVE);
    pSceneManager->setShadowFarDistance(20.0f);

    pVisualWorld->setAmbientLight(Color(0.5f, 0.5f, 0.5f));

    m_pCameraEntity = m_pScene->create("Camera");
    Visual::Camera* pCamera = new Visual::Camera("Camera", m_pCameraEntity->getComponentsList());
    pCamera->createViewport(Engine::getSingletonPtr()->getMainWindow());
    pCamera->setAutoAspectRatio(true);
    pCamera->setNearClipDistance(1.0f);
    m_pCameraEntity->getTransforms()->setPosition(0.0f, 0.0f, 300.0f);

    m_pEntity = m_pScene->create("Head");
    Visual::Object* pObject = new Visual::Object("Mesh", m_pEntity->getComponentsList());
    pObject->loadMesh("ogrehead.mesh");

    Entity* pLightEntity = m_pScene->create("Light");
    pLightEntity->getTransforms()->setPosition(200.0f, 100.0f, 200.0f);
    Visual::PointLight* pLight = new Visual::PointLight("Light", pLightEntity->getComponentsList());
    pLight->setDiffuseColor(Color(0.8f, 0.8f, 0.8f));

    m_pScene->show();
}
开发者ID:Kanma,项目名称:Athena-Framework,代码行数:31,代码来源:MainGameState.cpp


示例5: GetName

NxNode::~NxNode()
{
	LogMsg("Erasing NxNode : " + GetName() );

	LogMsg("Erasing NxActors ... " );
	NxActorListIterator NxActorsIter = GetNxActorIterator();
	while( NxActorsIter.hasMoreElements() ){
		delete NxActorsIter.getNext();
	}
	mNxActors.clear();
	LogMsg("Erasing NxActors : DONE" );

	LogMsg("Erasing NxSounds ... " );
	NxSoundMapIterator SoundIter = GetNxSoundIterator();
	while( SoundIter.hasMoreElements() ){
		delete SoundIter.getNext();
	}
	LogMsg("Erasing NxSounds : DONE" );

	LogMsg("Erasing NxEntities... " );
	NxEntityListIterator EntityIter = GetNxEntityIterator();
	while( EntityIter.hasMoreElements() ){
		delete EntityIter.getNext();
	}
	LogMsg("Erasing NxEntities : DONE" );

	Ogre::SceneManager * mManager = mSceneNode->getCreator(); // detach child first ?
	mManager->destroySceneNode( mSceneNode );

	LogMsg("Erasing NxNode : Done" );	
	LogMsg("-----------------------");
}
开发者ID:nxgraphics,项目名称:NxGraphics,代码行数:32,代码来源:NxNode.cpp


示例6: AddConstructionCapability

void LagomPlayerBase::AddConstructionCapability(LagomActorFactory* f)
{
	if(!f)
		return;
	if(_actorFactories.find(f) != _actorFactories.end())
		return;
	
	Ogre::SceneManager* manager = _state.GetSceneManager();
	
	Ogre::SceneNode* node = manager->createSceneNode();
	Ogre::Entity*	constructionObject = manager->createEntity(f->Mesh.c_str());

	Ogre::MaterialPtr materialPtr = Ogre::MaterialManager::getSingleton().getByName(getIntFactory().ConstructingMaterial);
	materialPtr->setSelfIllumination(1.0f,1.0f,1.0f);
	constructionObject->setCastShadows(false);
	constructionObject->setRenderQueueGroup(RENDER_QUEUE_SKIES_LATE);
	constructionObject->setMaterialName(getIntFactory().ConstructingMaterial);
	node->attachObject(constructionObject);
	node->setScale( f->MeshScale );

	_actorFactories.insert(FactoryMap::value_type(f,node));

	
	if(	_selectedActorFactory ==_actorFactories.end())
		_selectedActorFactory=_actorFactories.begin();
}
开发者ID:jaschmid,项目名称:Lagom,代码行数:26,代码来源:lagom_player_base.cpp


示例7: drawRaycast

	// Dibujado de raycast para depurar
	void CShootRaycast::drawRaycast(const Ray& raycast) {
		Graphics::CScene *scene = Graphics::CServer::getSingletonPtr()->getActiveScene();
		Ogre::SceneManager *mSceneMgr = scene->getSceneMgr();

		std::stringstream aux;
		aux << "laser" << _nameWeapon << _temporal;
		++_temporal;
		std::string laser = aux.str();

		Ogre::ManualObject* myManualObject =  mSceneMgr->createManualObject(laser); 
		Ogre::SceneNode* myManualObjectNode = mSceneMgr->getRootSceneNode()->createChildSceneNode(laser+"_node"); 
 
		myManualObject->begin("laser", Ogre::RenderOperation::OT_LINE_STRIP);
		Vector3 v = raycast.getOrigin();
		myManualObject->position(v.x,v.y,v.z);

		for(int i=0; i < _distance;++i){
			Vector3 v = raycast.getPoint(i);
			myManualObject->position(v.x,v.y,v.z);
			// etc 
		}

		myManualObject->end(); 
		myManualObjectNode->attachObject(myManualObject);
	}// drawRaycast
开发者ID:franaisa,项目名称:Gloom,代码行数:26,代码来源:ShootRaycast.cpp


示例8: paintPlaceShipMode

/*
 *Paint the board and the ships needed to place the ships
 * 
 */
void MyFrameListener::paintPlaceShipMode() {
  Board* boardPS = new Board("MyFleetBoard", FLEET_BOARD);

  Ogre::Vector3* fleetBoardPosition = new Ogre::Vector3(-3, 1.0f, 0);
  Ogre::SceneManager* currentSM = Ogre::Root::getSingleton().
                                  getSceneManager("mainSM");
  boardPS->paintBoard(currentSM,
                      currentSM->getRootSceneNode(),
                      fleetBoardPosition);
  for ( int i = 0; i < 6; i++ ) {
    int size = 4;
    if (i < 2) {
      size = 1;
    } else if (i < 4) {
      size = 2;
    } else if (i < 5) {
      size = 3;
    }
    Ogre::Vector3* shipPos = new Ogre::Vector3(shipPositions[i][0]
                                               , shipPositions[i][1],
                                               shipPositions[i][2]);
    ShipOgreWrapper* ship = new ShipOgreWrapper(i, shipPos, size);
    ship->paintShip(currentSM,
                    currentSM->getRootSceneNode(),
                    NULL);
    boardPS->addShip(ship);
  }
  this->playerBoard = boardPS;
}
开发者ID:flush,项目名称:CEDV-2015,代码行数:33,代码来源:MyFrameListener.cpp


示例9: DestroyOcean

void EC_MeshmoonWater::DestroyOcean()
{
#ifdef MESHMOON_TRITON
    if (!state_.IsCreated())
        return;

    try
    {
        Ogre::SceneManager *ogreSceneManager = OgreSceneManager();
        if (ogreSceneManager)
        {
            if (renderQueueListener_)
                ogreSceneManager->removeRenderQueueListener(renderQueueListener_);
        }
        else
            LogWarning(LC + "Failed to uninitialize Triton library cleanly from Ogre, rendering scene not available!");

        if (renderSystemListener_)
            Ogre::Root::getSingleton().getRenderSystem()->removeListener(renderSystemListener_);
    }
    catch(const Ogre::Exception &ex)
    {
        LogError(LC + QString::fromStdString(ex.getDescription()));
    }

    SAFE_DELETE(renderQueueListener_);
    SAFE_DELETE(renderSystemListener_);
    SAFE_DELETE(renderTargetListener_);
    SAFE_DELETE(state_.environment);
    SAFE_DELETE(state_.ocean);
    SAFE_DELETE(state_.resourceLoader);
    
    state_.Reset();
#endif
}
开发者ID:Adminotech,项目名称:meshmoon-plugins,代码行数:35,代码来源:EC_MeshmoonWater.cpp


示例10: operator

        bool operator()()
        {
            Ogre::SceneManager* sm = GraphicsManager::get().sceneManager();

            Ogre::SceneNode* sceneNode =
                    positionComponent->sceneNode()->createChildSceneNode(
                            Ogre::StringConverter::toString(
                                    component->localId()),
                            offset, 
                            offsetRotation);

            Ogre::ParticleSystem* ps = sm->createParticleSystem(
                    Ogre::StringConverter::toString(component->localId()), 
                    fileName);

            sceneNode->attachObject(ps);

            component->m_sceneNode = sceneNode;
            component->m_particleSystem = ps;

            ThreadPool::get().schedule(boost::bind(
                    &ComponentContainer::componentAttachedCallback,
                    component->parent(), component));

            return true;
        }
开发者ID:twiad,项目名称:COA-Jump-And-Run---Engine,代码行数:26,代码来源:GraphicsParticleComponent.cpp


示例11: operator

        bool operator()()
        {
            Ogre::SceneManager* sm = GraphicsManager::get().sceneManager();

            Ogre::Entity* entity = sm->createEntity(
                    Ogre::StringConverter::toString(component->localId()), 
                    fileName);

            Ogre::StaticGeometry* sg = sm->createStaticGeometry(
                    Ogre::StringConverter::toString(component->localId()));

            sg->addEntity(
                    entity,
                    positionComponent->sceneNode()->getPosition() + offset,
                    positionComponent->sceneNode()->getOrientation() * 
                            offsetRotation);

            sg->build();

            component->m_entity = entity;
            component->m_staticGeometry = sg;

            ThreadPool::get().schedule(boost::bind(
                    &ComponentContainer::componentAttachedCallback,
                    component->parent(), component));

            return true;
        }
开发者ID:twiad,项目名称:COA-Jump-And-Run---Engine,代码行数:28,代码来源:GraphicsStaticMeshComponent.cpp


示例12: createOgreVehicle

OgreVehicle* OgreVehicle::createOgreVehicle(Ogre::SceneNode* parNode, std::string name, Ogre::Vector3 pos)
{
	if (parNode)
	{
		OgreVehicle* vehicle = new OgreVehicle();
		vehicle->mName = name;
		vehicle->mParNode = parNode;
		Ogre::SceneManager* sceneMgr = vehicle->mParNode->getCreator();
		Ogre::String nodeName = "User_" + name;
		vehicle->mNode = vehicle->mParNode->createChildSceneNode(nodeName);
		Ogre::SceneNode* pNodeBody = vehicle->mNode->createChildSceneNode("Body" + nodeName);
		Ogre::SceneNode* pNodeCam = vehicle->mNode->createChildSceneNode("Cam" + nodeName);
		Ogre::Entity* eBody = sceneMgr->createEntity("eBody"+nodeName, OGRE_VEHICLE_FILE);
		pNodeBody->attachObject(eBody);
		pNodeBody->setScale(0.0002*SCALE_TERRAIN, 0.0002*SCALE_TERRAIN, 0.0002*SCALE_TERRAIN);
		vehicle->mNode->setPosition(pos);

		vehicle->mWheels[0] = OgreWheel::createOgreWheel(pNodeBody, Ogre::Vector3(1.02f, -0.3622f, 1.26));
		vehicle->mWheels[1] = OgreWheel::createOgreWheel(pNodeBody, Ogre::Vector3(1.12f, -0.3622f,-1.54));
		vehicle->mWheels[2] = OgreWheel::createOgreWheel(pNodeBody, Ogre::Vector3(-1.02f, -0.3622f, 1.26));
		vehicle->mWheels[3] = OgreWheel::createOgreWheel(pNodeBody, Ogre::Vector3(-1.12f, -0.3622f,-1.54));
		
		return vehicle;
	}
	return NULL;
}
开发者ID:landys,项目名称:cute-car,代码行数:26,代码来源:OgreAllVehicle.cpp


示例13: updateFromCamera

void DeferredLight::updateFromCamera(Ogre::Camera* camera)
{
	const Ogre::MaterialPtr& mat = getMaterial();
	if (!mat->isLoaded()) 
	{
		mat->load();
	}
	Ogre::Technique* tech = mat->getBestTechnique();
	Ogre::Vector3 farCorner = camera->getViewMatrix(true) * camera->getWorldSpaceCorners()[4];

	for (unsigned short i=0; i<tech->getNumPasses(); i++) 
	{
		Ogre::Pass* pass = tech->getPass(i);
		Ogre::GpuProgramParametersSharedPtr params = pass->getVertexProgramParameters();
		if (params->_findNamedConstantDefinition("farCorner"))
			params->setNamedConstant("farCorner", farCorner);
	    
		params = pass->getFragmentProgramParameters();
		if (params->_findNamedConstantDefinition("farCorner"))
			params->setNamedConstant("farCorner", farCorner);

		// If inside light geometry, render back faces with CMPF_GREATER, otherwise normally
		if (mParentLight->getType() == Ogre::Light::LT_DIRECTIONAL)
		{
			pass->setCullingMode(Ogre::CULL_CLOCKWISE);
			pass->setDepthCheckEnabled(false);
		}
		else
		{
			pass->setDepthCheckEnabled(true);
			if (isCameraInsideLight(camera))
			{
				pass->setCullingMode(Ogre::CULL_ANTICLOCKWISE);
				pass->setDepthFunction(Ogre::CMPF_GREATER_EQUAL);
			}
			else
			{
				pass->setCullingMode(Ogre::CULL_CLOCKWISE);
				pass->setDepthFunction(Ogre::CMPF_LESS_EQUAL);
			}
		}

		Ogre::Camera shadowCam("ShadowCameraSetupCam", 0);
		shadowCam._notifyViewport(camera->getViewport());
		Ogre::SceneManager* sm = mParentLight->_getManager();
		sm->getShadowCameraSetup()->getShadowCamera(sm, 
			camera, camera->getViewport(), mParentLight, &shadowCam, 0);
			
		//Get the shadow camera position
		if (params->_findNamedConstantDefinition("shadowCamPos")) 
		{
			params->setNamedConstant("shadowCamPos", shadowCam.getPosition());
		}
		if (params->_findNamedConstantDefinition("shadowFarClip"))
		{
			params->setNamedConstant("shadowFarClip", shadowCam.getFarClipDistance());
		}

	}
}
开发者ID:arbonagw,项目名称:Soyouz,代码行数:60,代码来源:deferredlight.cpp


示例14: parseLevel

	void Level::parseLevel (XmlFile *file, XMLElement *element)
	{
		Ogre::SceneManager *mSceneMgr = RadXML::getSingletonPtr ()->getSceneManager ();

		name = element->getAttributeValue ("name");
		setJavascriptToEvent ("onload", element->getAttributeValue ("onload"));

		std::string strSkyBox = element->getAttributeValue ("skybox");
		std::string strAmbientColor = element->getAttributeValue ("ambientcolor");
		std::string strShadowColor = element->getAttributeValue ("shadowcolor");

		if (name == "")
		{
			int iRandName = rand ();
			setName (RadXmlCommon::s13IntToString (iRandName));
		}

		if (strSkyBox != "")
			mSceneMgr->setSkyBox (true, strSkyBox);

		if (strAmbientColor != "")
		{
			Ogre::ColourValue cvColor = RadXML::parseColourValue (strAmbientColor);
			mSceneMgr->setAmbientLight (cvColor);
		}

		if (strShadowColor != "")
		{
			Ogre::ColourValue cvColor = RadXML::parseColourValue (strAmbientColor);
			mSceneMgr->setShadowColour (cvColor);
		}

		parseXMLMovables (file, element);
	}
开发者ID:qeensh,项目名称:RadXML,代码行数:34,代码来源:RadXmlLevel.cpp


示例15:

GameplayScreen::~GameplayScreen()
{
	//Destroy our game objects
	delete mWhacker;
	for(unsigned int i=0; i<mDragons.size(); i++)
	{
		delete mDragons[i];
	}
	//Destroy all entities created
	Ogre::SceneManager* mSceneManager = Ogre::Root::getSingletonPtr()->getSceneManager("ApplicationSceneManager");
	mSceneManager->destroyEntity("Stage");
	//Remove the stage mesh
	mStageNode->removeAndDestroyAllChildren();
	mStageNode->getParentSceneNode()->removeAndDestroyChild(mStageNode->getName());
	//Destroy our score overlay
	//To do this, we must traverse all elements contained within
	//the overlay and remove them one at a time.
	Ogre::OverlayManager* overlayMgr = Ogre::OverlayManager::getSingletonPtr();
	Ogre::Overlay::Overlay2DElementsIterator iter = mOverlay->get2DElementsIterator();
	for(;iter.hasMoreElements();)
	{
		Ogre::OverlayContainer * childContainer = iter.getNext();
		Ogre::OverlayContainer::ChildIterator contIter = childContainer->getChildIterator();
		for(;contIter.hasMoreElements();)
		{
			Ogre::OverlayElement* curElement = contIter.getNext();
			overlayMgr->destroyOverlayElement(curElement->getName());
		}
		overlayMgr->destroyOverlayElement(childContainer->getName());
	}
	overlayMgr->destroy(mOverlay->getName());
}
开发者ID:SamBushman,项目名称:SlayADragon,代码行数:32,代码来源:GameplayScreen.cpp


示例16: _destroyAll

	//-----------------------------------------------------------------------
	void LightRenderer::_destroyAll(void)
	{
		if (!mParentTechnique)
			return;

		// Note: The created ChildSceneNodes are destroyed when the ParticleSystem is destroyed
		vector<LightRendererVisualData*>::const_iterator it;
		vector<LightRendererVisualData*>::const_iterator itEnd = mAllVisualData.end();
		for (it = mAllVisualData.begin(); it != itEnd; ++it)
		{
			PU_DELETE_T(*it, LightRendererVisualData, MEMCATEGORY_SCENE_OBJECTS);
		}

		mAllVisualData.clear();
		mVisualData.clear();

		// Destroy the Lights. Do it like this, because it must be assured that the light still exists
		// and has not already been destroyed.
		Ogre::SceneManager* sceneManager = mParentTechnique->getParentSystem()->getSceneManager();
		for (size_t i = 0; i < mQuota; i++)
		{
			if (sceneManager->hasLight(mLightName + StringConverter::toString(i)))
			{
				sceneManager->destroyLight(mLightName + StringConverter::toString(i));
			}
		}
		mLights.clear();

		// Reset the visual data in the pool
		mParentTechnique->initVisualDataInPool();
	}
开发者ID:fusion44,项目名称:particleuniverse,代码行数:32,代码来源:ParticleUniverseLightRenderer.cpp


示例17: CreateWaterPlane

void EC_WaterPlane::CreateWaterPlane()
{
    if (!ViewEnabled())
        return;
    
    if (entity_)
        RemoveWaterPlane();
    
    OgreWorldPtr world = world_.lock();
    // Create water plane
    if (world)
    {
        Ogre::SceneManager *sceneMgr = world->GetSceneManager();
        assert(sceneMgr);

        if (node_ != 0)
        {
            int x = xSize.Get();
            int y = ySize.Get();
            float uTile =  scaleUfactor.Get() * x; /// Default x-size 5000 --> uTile 1.0
            float vTile =  scaleVfactor.Get() * y;
            
            Ogre::MeshPtr mesh = Ogre::MeshManager::getSingleton().createPlane(Name().toStdString().c_str(),
                Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, Ogre::Plane(Ogre::Vector3::UNIT_Y, 0),
                x, y, xSegments.Get(), ySegments.Get(), true, 1, uTile, vTile, Ogre::Vector3::UNIT_X);
            
            entity_ = sceneMgr->createEntity(world->GetUniqueObjectName("EC_WaterPlane_entity"), Name().toStdString().c_str());
            entity_->setMaterialName(materialName.Get().toStdString().c_str());
            entity_->setCastShadows(false);
            // Tries to attach entity, if there is not EC_Placeable availible, it will not attach object
            AttachEntity();
        }
    }
}
开发者ID:Ilikia,项目名称:naali,代码行数:34,代码来源:EC_WaterPlane.cpp


示例18: onActorRemoved

void ProjectManager::onActorRemoved(const QString& actorName)
{
    QOCamera* cameraNode = getCameraWithName("cam1");
    if(!cameraNode)
    {
        qFatal("ProjectManager.onActorRemoved: Can't determine focused actor without "
               "a corresponding CameraNode.");
    }
    else
    {
        // Refocus the camera on the root scene node.
        if(cameraNode->focusedNode() ==
           mScenarioManager.getCurrentScene()->getActorByName(actorName)->getSceneNode())
        {
            Ogre::Root& root = Ogre::Root::getSingleton();
            Ogre::SceneManager* mgr = root.getSceneManager(Application::sSceneManagerName);
            cameraNode->focus(mgr->getRootSceneNode());
        }
    }

    if(mSelectedActor && mSelectedActor->getName() == actorName)
    {
        Scene* current = mScenarioManager.getCurrentScene();
        changeInspectorSelection(current->getName(),
                                 current->getKnowledge(),
                                 current);
        mSelectedActor = NULL;
    }
}
开发者ID:palais-ai,项目名称:palais-sandbox,代码行数:29,代码来源:ProjectManager.cpp


示例19: AttachEntity

void EC_WaterPlane::AttachEntity()
{
    if (attached_ || entity_ == 0)
        return;

    EC_Placeable* placeable = dynamic_cast<EC_Placeable* >(FindPlaceable().get());
    
    // If there exist placeable attach node and entity to it
    if (placeable != 0 )
    {
        Ogre::SceneNode* node = placeable->GetSceneNode();
        node->addChild(node_);
        node_->attachObject(entity_);
        node_->setVisible(true);
    }
    else
    {
        // There is no placeable attacht entity to OgreSceneRoot 
        Ogre::SceneManager* sceneMgr = world_.lock()->GetSceneManager();
        node_->attachObject(entity_);
        sceneMgr->getRootSceneNode()->addChild(node_);
        node_->setVisible(true);
        attachedToRoot_ = true;
    }

    attached_ = true;
}
开发者ID:Ilikia,项目名称:naali,代码行数:27,代码来源:EC_WaterPlane.cpp


示例20: testModelMountScaling

void ModelMountTestCase::testModelMountScaling()
{
	Ogre::Root root;
	Ogre::SceneManager* sceneManager = root.createSceneManager(Ogre::ST_GENERIC);

	TestModel model(*sceneManager);

	//First test with a straight forward case.
	Ogre::SceneNode* node = sceneManager->getRootSceneNode()->createChildSceneNode();
	//We get an error when it's destroyed. So we don't destroy it.
	SceneNodeProvider* nodeProvider = new SceneNodeProvider(node, nullptr);
	Model::ModelMount mount(model, nodeProvider);
	scaleAndTestMount(model, mount, nodeProvider->getNode());

	//Test with the parent node being scaled
	node->setScale(Ogre::Vector3(3.0f, 0.2f, 200.0f));
	Ogre::SceneNode* subNode = node->createChildSceneNode();
	nodeProvider = new SceneNodeProvider(subNode, nullptr);
	Model::ModelMount mount2(model, nodeProvider);
	scaleAndTestMount(model, mount2, nodeProvider->getNode());

	//Test with the parent node being scaled and rotated
	node->setScale(Ogre::Vector3(3.0f, 0.2f, 200.0f));
	node->yaw(Ogre::Degree(42));
	node->pitch(Ogre::Degree(76));
	node->roll(Ogre::Degree(98));
	subNode = node->createChildSceneNode();
	nodeProvider = new SceneNodeProvider(subNode, nullptr);
	Model::ModelMount mount3(model, nodeProvider);
	scaleAndTestMount(model, mount3, nodeProvider->getNode());
}
开发者ID:sajty,项目名称:ember,代码行数:31,代码来源:ModelMountTestCase.cpp



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ ogre::SceneNode类代码示例发布时间:2022-05-31
下一篇:
C++ ogre::Root类代码示例发布时间:2022-05-31
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap