The first error is related a function not being declared.
http://msdn.microsoft.com/en-us/library/yha416c7(VS.80).aspx
Take a look at the example osgtext, I am guessing the correct line of code
is 
osgText::Text not text(), I don't like using namespaces it makes the code
hard to read :)




-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Jaime Home
Sent: 05 May 2010 15:52
To: [email protected]
Subject: [osg-users] [build] Problems with planet game.

Hi guys, I'm new to OpenSceneGraph, I'm doing a Uni course and I need some
help.

Here's my code.


Code:
#include <iostream> 
#include <ctime> 
#include <cstdlib>
#include <osg/Group>
#include <osg/Geode>
#include <osg/Geometry>
#include <osg/ShapeDrawable>
#include <osg/MatrixTransform>
#include <osgViewer/Viewer>
#include <osg/Texture2D>
#include <osgDB/ReadFile>
#include <osgText/Font>
#include <osgText/Text>



using namespace std;
using namespace osg;
using namespace osgViewer;
using namespace osgDB;
using namespace osgText;




class PlanetCallback : public osg::NodeCallback
{
public:
        PlanetCallback()
        {
                angle = 0.0;
        }

        virtual void operator()( osg::Node* node,
                                                        osg::NodeVisitor* nv
)
        {
                // Normally, check to make sure we have an update
                // visitor, not necessary in this simple example.
                osg::MatrixTransform* mt =
                dynamic_cast<osg::MatrixTransform*>( node );
                osg::Matrix mR, mT;
                

                // Move the planet away from the sun
                mT.makeTranslate(Vec3(4, 0, 0));
                mR.makeRotate(angle, Vec3(0, 0, 1));
                mt->setMatrix( mT * mR );

                angle=angle+0.001;
                
                // Continue traversing so that OSG can process
                // any other nodes with callbacks.
                traverse( node, nv );
        }

private:
        double angle;
};


int main()
{
        srand((unsigned)time(0));

        // the viewer
        Viewer *viewer=new Viewer();
        
        // the root node
        osg::Group *root=new Group();
        
        // the planets
        const int NUM=9;
        Geode *geode[NUM];
        Sphere *sphere[NUM];
        ShapeDrawable *draw[NUM];
        MatrixTransform *rot[NUM];

        // setup the planets
        for(int k=0;k<NUM;k++)
        {
                geode[k]=new Geode();
                sphere[k]=new Sphere(Vec3(k,0,0),0.4);
                draw[k]=new ShapeDrawable(sphere[k]);
            draw[k]->setColor(Vec4(1,0,0,1));
            geode[k]->addDrawable(draw[k]);

                //add texture
                //Texture2D *tex=new Texture2D();
        //Image*image=readImageFile("C:/Mars.jpg");
    //tex->setImage(image);
        //StateSet* state=draw[k]->getOrCreateStateSet();
        //state->setTextureAttributeAndModes(0,tex,StateAttribute::ON);
        //geode[k]->addDrawable(draw[k]);

                
                // rotate the sphere(s)
        rot[k]=new MatrixTransform();   
            rot[k]->setUpdateCallback(new PlanetCallback());
            rot[k]->addChild(geode[k]);
                root->addChild(rot[k]);
        }
        
        //add test
        Text *textX=new text();
        textX->setText('Hello, this is a project about planets moving around
the sun");
        textX->setPosition (Vec3 (1.1,0,0));
        textX->setCharacterSize(0.2);
        textX->setColor (Vec4(1,0,0,1));
        sxsgeode->addDrawable(textX);
        textX->setAxisAlignment(Text::VZ_PLANE);
        // add the sun
        Geode *geodeSun = new Geode();
        Sphere *sphereSun = new Sphere(Vec3(0,0,0),1);
        ShapeDrawable * drawSun = new ShapeDrawable(sphereSun);
        drawSun->setColor(Vec4(1, 1, 0, 1));
        geodeSun->addDrawable(drawSun);
        root->addChild(geodeSun);




        
        viewer->setSceneData(root);
        viewer->setUpViewInWindow(100,100,512,512);


        viewer->run();
}




Here are the errors.

> 1>------ Build started: Project: Planets, Configuration: Release Win32
------
> 1>Compiling...
> 1>MainThread.cpp
> 1>.\MainThread.cpp(104) : error C2061: syntax error : identifier 'text'
> 1>.\MainThread.cpp(105) : error C2001: newline in constant
> 1>.\MainThread.cpp(105) : error C2015: too many characters in constant
> 1>.\MainThread.cpp(106) : error C2146: syntax error : missing ')' before
identifier 'textX'
> 1>.\MainThread.cpp(109) : error C2065: 'sxsgeode' : undeclared identifier
> 1>.\MainThread.cpp(109) : error C2227: left of '->addDrawable' must point
to class/struct/union/generic type
> 1>        type is ''unknown-type''
> 1>.\MainThread.cpp(110) : error C2039: 'VZ_PLANE' : is not a member of
'osgText::Text'
> 1>        C:\Users\J\Desktop\OpenSceneGraph-2.8.2\include\osgText/Text(27)
: see declaration of 'osgText::Text'
> 1>.\MainThread.cpp(110) : error C2065: 'VZ_PLANE' : undeclared identifier
> 1>Build log was saved at
"file://c:\Users\J\Desktop\Planets\Planets\Release\BuildLog.htm"
> 1>Planets - 8 error(s), 0 warning(s)
> ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped
==========


I also have 4 questions please.
1. I can't get textures working to make the circles look like the 9 planets,
how do I do this?
2. How can I get 5 planets to go the way they're going now, and 4 planets to
go the other way?
3. How can I add names to make the planets.
4. How can I do a space like background, not just the blue one I have now?

Thanks all.

(Please Note: I'm basically a 1st grader on my first day at school, so
please try and use simple English).

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=27579#27579





_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to