hi everyone !! i would like make a class and function for make a window in osg, 
i have this source, but when i tried them separately, it have errors.The file 
"DemoVentana.cpp"it does well, but the other one no.

                                          
#include "Ventana.h"

osg::Camera* createCamera(int x, int y, int w, int h)
{
	osg::ref_ptr<osg::GraphicsContext::Traits> traits = new osg::GraphicsContext::Traits;
	traits->x = x;
	traits->y = y;
	traits->width = w;
	traits->height = h;
	traits->doubleBuffer = true;
	traits->windowName = "Funcion de Ventana";
	traits->windowDecoration = true;

	osg::ref_ptr<osg::GraphicsContext> gc = osg::GraphicsContext::createGraphicsContext(traits.get());

	osg::ref_ptr<osg::Camera> camera = new osg::Camera;
	camera->setGraphicsContext(gc.get());
	camera->setViewport(new osg::Viewport(0, 0, traits->width, traits->height));
	return camera.release();
}
#ifndef H_VENTANA
#define H_VENTANA

#include <osg/Group>
#include <osgViewer/Viewer>

class Ventana 
{

        public:
                osg::Camera* createCamera(int x, int y, int w, int h);

};
#endif
#include <osg/Group>
#include <osgDB/ReadFile>
#include <osgViewer/Viewer>

osg::Camera* createCamera(int x, int y, int w, int h)
{
	osg::ref_ptr<osg::GraphicsContext::Traits> traits = new osg::GraphicsContext::Traits;
	traits->x = x;
	traits->y = y;
	traits->width = w;
	traits->height = h;
	traits->doubleBuffer = true;
	traits->windowName = "Funcion de Ventana";
	traits->windowDecoration = true;

	osg::ref_ptr<osg::GraphicsContext> gc =	osg::GraphicsContext::createGraphicsContext(traits.get());

	osg::ref_ptr<osg::Camera> camera = new osg::Camera;
	camera->setGraphicsContext(gc.get());
	camera->setViewport(new osg::Viewport(0, 0, traits->width, traits->height));
	return camera.release();
}

int main(int argc, char** argv)
{
	osg::ArgumentParser arguments(&argc, argv);
	osg::Node* model = osgDB::readNodeFiles(arguments);
	if (!model) model = osgDB::readNodeFile("cow.osg");

	osgViewer::Viewer viewer;
	viewer.addSlave(createCamera(300, 100, 900, 600));//, osg::Matrixd::translate( 1.0,-1.0,0.0), osg::Matrixd(),false );
	viewer.setSceneData(model);
	return viewer.run();
}
#include <osgDB/ReadFile>

#include "Ventana.h"

int main(int argc, char** argv)
{
	osg::ArgumentParser arguments(&argc, argv);
	osg::Node* model = osgDB::readNodeFiles(arguments);
	if (!model) model = osgDB::readNodeFile("cow.osg");

	osgViewer::Viewer viewer;
	viewer.addSlave(createCamera(300, 100, 900, 600));
	viewer.setSceneData(model);
	return viewer.run();
}
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to