From: <de...@us...> - 2002-12-14 18:50:44
|
Update of /cvsroot/csp/APPLICATIONS/CSPFlightSim/Source In directory sc8-pr-cvs1:/tmp/cvs-serv6602 Modified Files: trees.cpp Log Message: Adding more tree varieties Index: trees.cpp =================================================================== RCS file: /cvsroot/csp/APPLICATIONS/CSPFlightSim/Source/trees.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** trees.cpp 12 Dec 2002 21:13:45 -0000 1.3 --- trees.cpp 14 Dec 2002 18:50:41 -0000 1.4 *************** *** 1,14 **** ! #include "stdinc.h" ! ! #include <stdlib.h> #include <osg/Billboard> ! #include <osg/Group> ! #include <osg/Geode> #include <osg/Geometry> #include <osg/Texture2D> - #include <osg/TexEnv> - #include <osg/BlendFunc> - #include <osg/AlphaFunc> #include <osgDB/ReadFile> --- 1,8 ---- ! #include <sstream> #include <osg/Billboard> ! #include <osg/BlendFunc> #include <osg/Geometry> #include <osg/Texture2D> #include <osgDB/ReadFile> *************** *** 99,104 **** for (unsigned short i=0;i<p_ustypeTreeNumber;++i) { ! aTree.h = treeHeightFactor * 10.0; ! aTree.w = treeWidthFactor * 5.0; treesArray.push_back(makeTree( aTree));//, osgNew StateSet(*p_pstate[i % 3]) )); } --- 93,98 ---- for (unsigned short i=0;i<p_ustypeTreeNumber;++i) { ! aTree.h = treeHeightFactor * 8.0; ! aTree.w = treeWidthFactor * 8.0; treesArray.push_back(makeTree( aTree));//, osgNew StateSet(*p_pstate[i % 3]) )); } *************** *** 107,111 **** } ! std::vector<Geometry *> g_treesBase(1); Node *makeTreesPatch( float xoff, float yoff, float spacing, float width, --- 101,105 ---- } ! std::vector<Geometry *> g_treesBase; Node *makeTreesPatch( float xoff, float yoff, float spacing, float width, *************** *** 117,126 **** std::vector<std::string> treefileName; ! treefileName.push_back("Images/tree0.rgba"); ! treefileName.push_back("Images/tree1.gif"); treefileName.push_back("Images/tree2.gif"); treefileName.push_back("Images/tree3.gif"); treefileName.push_back("Images/tree4.gif"); ! unsigned short typeTreeNumber = treefileName.size(); --- 111,129 ---- std::vector<std::string> treefileName; ! treefileName.push_back("Images/tree0.rgba"); ! ! for (i=5;i<15;++i) ! { ! std::ostringstream osStream; ! osStream << "Images/tree" << i << ".png"; ! string a = osStream.str(); ! treefileName.push_back(osStream.str()); ! } ! ! treefileName.push_back("Images/tree1.gif"); treefileName.push_back("Images/tree2.gif"); treefileName.push_back("Images/tree3.gif"); treefileName.push_back("Images/tree4.gif"); ! unsigned short typeTreeNumber = treefileName.size(); *************** *** 161,165 **** jcnt = 10; //height/spacing; ! if (!g_treesBase[0]) { g_treesBase = MakeBaseTreeArray(typeTreeNumber,state); --- 164,168 ---- jcnt = 10; //height/spacing; ! if (g_treesBase.empty()) { g_treesBase = MakeBaseTreeArray(typeTreeNumber,state); *************** *** 169,177 **** float baseRadius = 64.0 + 32.0 * RandomNumber(); ! for (j=0;j<jcnt;++j) { Billboard *bb = osgNew Billboard; - unsigned short indice; //bb->setMode(osg::Billboard::POINT_ROT_EYE ); for (i=0;i<icnt;++i) --- 172,180 ---- float baseRadius = 64.0 + 32.0 * RandomNumber(); ! unsigned short iState = static_cast<unsigned short>(RandomNumber() * typeTreeNumber); + for (j=0;j<jcnt;++j) { Billboard *bb = osgNew Billboard; //bb->setMode(osg::Billboard::POINT_ROT_EYE ); for (i=0;i<icnt;++i) *************** *** 185,190 **** y = fmod(y, 64000.0f); Vec3 pos(x,y,z); ! ! indice = (2 * count) % typeTreeNumber; Geometry * aGSet = osgNew Geometry(*g_treesBase[indice]); bb->addDrawable( aGSet, pos ); --- 188,192 ---- y = fmod(y, 64000.0f); Vec3 pos(x,y,z); ! unsigned short indice = (2 * count) % typeTreeNumber; Geometry * aGSet = osgNew Geometry(*g_treesBase[indice]); bb->addDrawable( aGSet, pos ); *************** *** 193,197 **** group->addChild( bb ); } ! group->setStateSet( state[static_cast<unsigned short>(RandomNumber() * typeTreeNumber)] ); return group; } --- 195,199 ---- group->addChild( bb ); } ! group->setStateSet( state[iState] ); return group; } |