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;
}
|