[osg-users] Problem using osgCal2
Rahul Jain
rahulj at darshan3d.com
Tue Jul 22 06:56:34 PDT 2008
Hi All ,
I am trying to place some characters (cal3D) on a terrain I created
using VPB at a particular location on the terrain using the code shown
below. But when i run my program i do not see any thing, using mouse
(trackball) functionality i cam locate the terrain but could not locate
the model. Can some one tell me what am i doing wrong. I am using latest
version of osgCal2 (checked out from svn ) and OSG 2.0.
int main(int argc, char** argv)
{
if (argc < 2)
{
std::cout << "specify cal3D cfg file for loading a model " <<
std::endl;
return 1;
}
// Create and setup core model
osg::ref_ptr< osgCal::CoreModel > coreModel( new osgCal::CoreModel() );
osg::ref_ptr< osgCal::BasicMeshAdder > meshAdder( new
osgCal::DefaultMeshAdder );
osg::ref_ptr< osgCal::MeshParameters > p( new osgCal::MeshParameters );
p->software = true;
// Load core model from file
coreModel->load(argv[1]);
// Create Model
osgCal::Model* model = new osgCal::Model();
// Load model
model->load(coreModel.get(), meshAdder.get());
// Create a root node for the scene graph
osg::Group* root = new osg::Group;
// Load terrain from the file
osg::Node* terrainNode = osgDB::readNodeFile("oahu.osga");
// Add terrain to the scene
root->addChild(terrainNode);
// Choose a location on a terrain to place the model
osg::Vec3 newPos(2356473.250, 611159.125, 1.515);
// Create a position attitude transform node
osg::PositionAttitudeTransform* pat = new
osg::PositionAttitudeTransform;
// Set position
pat->setPosition(newPos);
// Add character model to the pat
pat->addChild(model);
// Add pat to the scene
root->addChild(pat);
// Setup viewer
osgViewer::Viewer viewer;
// Set scene data
viewer.setSceneData(root);
viewer.run();
return 0;
}
cheers
RJ
More information about the osg-users
mailing list