Ejemplo n.º 1
0
    IntersectPoint::IntersectPoint(SceneManipulator* sceneManipulator)
        : HitIndicator(sceneManipulator)
        , mIntersectNode(NULL)
        , mIntersectEntity(NULL)
    {
        // Create intersection node and entity

        mIntersectNode = getIndicatorRootSceneNode()->createChildSceneNode();

        Real radius = 1;
        int rings = 16;
        int segments = 16;
        Ogre::MeshPtr sphereMesh = createCommonSphere(radius, rings, segments);
        Ogre::MaterialPtr material = createColourMaterial(
            Ogre::ColourValue(1, 0, 0, 0.75),
            Ogre::ColourValue(0, 1, 0),
            1);

        mIntersectEntity = getSceneManager()->createEntity(mIntersectNode->getName(), sphereMesh->getName());
        mIntersectEntity->setQueryFlags(0);
        mIntersectEntity->setNormaliseNormals(true);
        mIntersectEntity->setMaterialName(material->getName());
        mIntersectEntity->setRenderQueueGroup(Ogre::RENDER_QUEUE_7);
        mIntersectNode->attachObject(mIntersectEntity);
        mIntersectNode->setVisible(false);

        reshape();
    }
Ejemplo n.º 2
0
 //////////////////////////////////////////////////////////////////////////
 // IntersectGrids                                                /////
 //////////////////////////////////////////////////////////////////////////
 IntersectGrids::IntersectGrids(SceneManipulator* sceneManipulator)
     : HitIndicator(sceneManipulator)
 {
     mIntersectGridsNode = getIndicatorRootSceneNode()->createChildSceneNode();
     intersectGrids = new IntersectGrid;
     intersectGrids->setQueryFlags(0);
     intersectGrids->setGridColour( Ogre::ColourValue(1.0, 1.0, 1.0, 0.3) );
     mIntersectGridsNode->attachObject(intersectGrids);
 }
Ejemplo n.º 3
0
    Ogre::SceneNode*
    JunctionPoints::allocNode(void)
    {
        Ogre::SceneNode* node;
        if (mFreeNodes.empty())
        {
            node = getIndicatorRootSceneNode()->createChildSceneNode();
            Ogre::Entity* entity = getSceneManager()->createEntity(node->getName(), mBaseMesh->getName());
            entity->setQueryFlags(0);
			//david-<<
            //entity->setNormaliseNormals(true);
			//david->>
            node->attachObject(entity);
        }
        else
        {
            node = mFreeNodes.back();
            mFreeNodes.pop_back();
            getIndicatorRootSceneNode()->addChild(node);
        }

        node->setScale(mScale, mScale, mScale);
        return node;
    }
Ejemplo n.º 4
0
    StandardModelIndicator::StandardModelIndicator(SceneManipulator* sceneManipulator)
        : HitIndicator(sceneManipulator)
        , mIntersectNode(NULL)
        , mIntersectEntity(NULL)
    {
        // Create intersection node and entity

        mIntersectNode = getIndicatorRootSceneNode()->createChildSceneNode();

        mIntersectEntity = getSceneManager()->createEntity(mIntersectNode->getName(), "standardmodel.mesh");
        mIntersectEntity->setQueryFlags(0);
        mIntersectEntity->setNormaliseNormals(true);
        mIntersectEntity->setMaterialName("BaseWhite");
        mIntersectEntity->setRenderQueueGroup(Ogre::RENDER_QUEUE_7);
        mIntersectNode->attachObject(mIntersectEntity);
        mIntersectNode->setVisible(false);

        reshape();
    }
Ejemplo n.º 5
0
    void DisableDecalGrids::_createProjector(void)
    {
        if (NULL == mProjector)
        {
            mProjectorNode = getIndicatorRootSceneNode()->createChildSceneNode();

            mProjector = static_cast<Projector*>
                ( getSceneManipulator()->getSceneManager()->
                createMovableObject(mProjectorNode->getName(), ProjectorFactory::FACTORY_TYPE_NAME) );

            mProjector->setProjectionType(Ogre::PT_ORTHOGRAPHIC);
            mProjector->setTerrain( getSceneManipulator()->getTerrain() );
            mProjector->setAspectRatio(1);
            mProjector->setShowFrustum(false);
            mProjector->setEnableClipPlanes(false);
            mProjector->setPatchMaterial("DisableDecalProjector");

            mProjectorNode->attachObject(mProjector);
            mProjectorNode->setDirection(Ogre::Vector3::NEGATIVE_UNIT_Y, mIntersectGridsNode->TS_WORLD);
        }
    }
Ejemplo n.º 6
0
    CreateObjectAction::CreateObjectAction(SceneManipulator* sceneManipulator)
        : Action(sceneManipulator)
        , mDirty(true)
        , mObject()
		, mHasPosition(false)
		, mRangeSphereEntity(NULL)
		, mRangeSphereNode(NULL)
    {
		// create a entity for indicate the range of a point light
		mRangeSphereNode = getIndicatorRootSceneNode()->createChildSceneNode();

		Ogre::MeshPtr sphereMesh = Fairy::createCommonSphere("PointLightRangeSphere", 100, 16, 16);
		Ogre::MaterialPtr material = Fairy::createPureColourMaterial(Ogre::ColourValue(0, 1, 0, 0.75));

		material->getTechnique(0)->getPass(0)->setPolygonMode(Ogre::PM_WIREFRAME);
		material->getTechnique(0)->getPass(0)->setCullingMode(Ogre::CULL_NONE);

		mRangeSphereEntity = getSceneManager()->createEntity("CreateLightRangeSphere", sphereMesh->getName());
		mRangeSphereEntity->setMaterialName(material->getName());

		mRangeSphereNode->attachObject(mRangeSphereEntity);
		mRangeSphereNode->setVisible(false);
    }