Hello Björn,

I did the necessary changes as suggested, unfortunately i am getting the
blank screen.


So i am providing you the code snippet where i defined the main scenegraph:



*******************************************************************************

    /*
    Create the whole scene here
     - now we load the teapot
    */

    NodePtr utah_teapot1 = SceneFileHandler::the().read("teapot.obj");

    //set  a string name for that node
    //we shall use that string to search
    setName(utah_teapot1,"UTAH_TEAPOT1");

    /*
    Check if the data loading
    operation was ok or not
    */
    if(utah_teapot1 == NullFC)
    {
        cout << "Loading the specified file was not possible." << endl;
        return NullFC;
    }


    //the getCore method returns the CoredNodePtr,
    //which all other pointer classes derived from
    GeometryPtr geoUtah1 = GeometryPtr::dcast(utah_teapot1->getCore());

    /*
    Now create the material
    for that for that geometry
    inside the function createToonScene() - i m creating the shader chunk
    */
    beginEditCP(geoUtah1, Geometry::MaterialFieldMask);
        geoUtah1->setMaterial(createToonScene());
    endEditCP(geoUtah1, Geometry::MaterialFieldMask);

    /*
    Set the geometry to
    the node that we have
    just read
    */
    beginEditCP(utah_teapot1, Node::CoreFieldMask);
        utah_teapot1->setCore(geoUtah1);
    endEditCP(utah_teapot1, Node::CoreFieldMask);



    GeometryPtr geoUtah2 = GeometryPtr::dcast(utah_teapot1->getCore());

    /*
    Now create the material
    for that for that geometry
    */
    beginEditCP(geoUtah2, Geometry::MaterialFieldMask);
        geoUtah2->setMaterial(createPhongScene());
    endEditCP(geoUtah2, Geometry::MaterialFieldMask);


    /*
    Now create a Node for that
    newly created geometry with
    the material
    */
    NodePtr utah_teapot2 = Node::create();


    beginEditCP(utah_teapot2, Node::CoreFieldMask);
        utah_teapot2->setCore(geoUtah2);
    endEditCP(utah_teapot2, Node::CoreFieldMask);

    //crate a node with a switch core
   // I declared the SwitchPtr sw as global
    sw = Switch::create();


    /*
    Create a Node to hold the switch core
    */
    switchNode = Node::create();

    beginEditCP(switchNode,Node::ChildrenFieldMask |
                           Node::CoreFieldMask);
        switchNode->setCore(sw);
        switchNode->addChild(utah_teapot1);
        switchNode->addChild(utah_teapot2);
    endEditCP(switchNode,Node::ChildrenFieldMask |
                           Node::CoreFieldMask);

    /*
    At last create the root
    */
    NodePtr root = Node::create();

    beginEditCP(root, Node::CoreFieldMask |
                      Node::ChildrenFieldMask);
                root->setCore(Group::create());
                root->addChild(switchNode);
    endEditCP(root, Node::CoreFieldMask |
                    Node::ChildrenFieldMask);


    return root;



********************************************************************************




And in the key-press event i have as follows:

************************************

    switch(k)
    {
        case 27:
        {
            OSG::osgExit();
            exit(0);
        }
        break;
        case 't':
        {

            cout << "toon" << endl;
            beginEditCP(sw, Switch::ChoiceFieldMask);
                /*the first choice is set to mode
                  that will be changed with the
                  key-press event
                */
                sw->setChoice(0);
            endEditCP(sw, Switch::ChoiceFieldMask);
        }
        break;
        case 'p':
        {
            cout << "phong" << endl;

            beginEditCP(sw, Switch::ChoiceFieldMask);
                /*the first choice is set to mode
                  that will be changed with the
                  key-press event
                */
                sw->setChoice(1);
            endEditCP(sw, Switch::ChoiceFieldMask);
        }
        break;
        default:
            break;


**************************************
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to