Made the Professional services subscript optional - use "osglogo ps" to enable
it.
This commit is contained in:
@@ -23,6 +23,8 @@
|
|||||||
|
|
||||||
//#include "CreateShadowedScene.h"
|
//#include "CreateShadowedScene.h"
|
||||||
|
|
||||||
|
static bool s_ProfessionalServices = false;
|
||||||
|
|
||||||
class MyBillboardTransform : public osg::PositionAttitudeTransform
|
class MyBillboardTransform : public osg::PositionAttitudeTransform
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -50,7 +52,7 @@ class MyBillboardTransform : public osg::PositionAttitudeTransform
|
|||||||
osg::Vec3 side = _axis^_normal;
|
osg::Vec3 side = _axis^_normal;
|
||||||
side.normalize();
|
side.normalize();
|
||||||
|
|
||||||
float angle = acos(eyevector*side);
|
float angle = atan2f(eyevector*_normal,eyevector*side);
|
||||||
billboardRotation.makeRotate(osg::PI_2-angle,_axis);
|
billboardRotation.makeRotate(osg::PI_2-angle,_axis);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -177,34 +179,9 @@ osg:: Node* createTextLeft(const osg::BoundingBox& bb)
|
|||||||
{
|
{
|
||||||
osg::Geode* geode = new osg::Geode();
|
osg::Geode* geode = new osg::Geode();
|
||||||
|
|
||||||
//std::string font("fonts/times.ttf");
|
|
||||||
std::string font("fonts/arial.ttf");
|
|
||||||
|
|
||||||
//osgText::Text* text = new osgText::Text(new osgText::PolygonFont(font,80, 3));
|
|
||||||
osgText::Text* text = new osgText::Text(new osgText::TextureFont(font,100));
|
|
||||||
|
|
||||||
text->setText("OpenSceneGraph");
|
|
||||||
text->setAlignment(osgText::Text::RIGHT_CENTER);
|
|
||||||
text->setAxisAlignment(osgText::Text::XZ_PLANE);
|
|
||||||
text->setPosition(bb.center()-osg::Vec3((bb.xMax()-bb.xMin()),-(bb.yMax()-bb.yMin())*0.5f,(bb.zMax()-bb.zMin())*0.3f));
|
|
||||||
//text->setColor(osg::Vec4(0.37f,0.48f,0.67f,1.0f)); // Neil's orignal OSG colour
|
|
||||||
text->setColor(osg::Vec4(0.20f,0.45f,0.60f,1.0f)); // OGL logo colour
|
|
||||||
|
|
||||||
|
|
||||||
osgText::Text* subscript = new osgText::Text(new osgText::TextureFont(font,45));
|
|
||||||
|
|
||||||
subscript->setText("Professional Services");
|
|
||||||
subscript->setAlignment(osgText::Text::RIGHT_CENTER);
|
|
||||||
subscript->setAxisAlignment(osgText::Text::XZ_PLANE);
|
|
||||||
subscript->setPosition(bb.center()-osg::Vec3((bb.xMax()-bb.xMin())*3.5f,-(bb.yMax()-bb.yMin())*0.3f,(bb.zMax()-bb.zMin())*0.7f));
|
|
||||||
subscript->setColor(osg::Vec4(0.0f,0.0f,0.0f,1.0f)); // black
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
osg::StateSet* stateset = geode->getOrCreateStateSet();
|
osg::StateSet* stateset = geode->getOrCreateStateSet();
|
||||||
|
|
||||||
|
|
||||||
osg::BlendFunc *transp= new osg::BlendFunc();
|
osg::BlendFunc *transp= new osg::BlendFunc();
|
||||||
transp->setFunction(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
transp->setFunction(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
|
|
||||||
@@ -214,8 +191,33 @@ osg:: Node* createTextLeft(const osg::BoundingBox& bb)
|
|||||||
stateset->setRenderingHint(osg::StateSet::TRANSPARENT_BIN);
|
stateset->setRenderingHint(osg::StateSet::TRANSPARENT_BIN);
|
||||||
|
|
||||||
|
|
||||||
|
//std::string font("fonts/times.ttf");
|
||||||
|
std::string font("fonts/arial.ttf");
|
||||||
|
|
||||||
|
osgText::Text* text = new osgText::Text(new osgText::TextureFont(font,100));
|
||||||
|
|
||||||
|
text->setText("OpenSceneGraph");
|
||||||
|
text->setAlignment(osgText::Text::RIGHT_CENTER);
|
||||||
|
text->setAxisAlignment(osgText::Text::XZ_PLANE);
|
||||||
|
text->setPosition(bb.center()-osg::Vec3((bb.xMax()-bb.xMin()),-(bb.yMax()-bb.yMin())*0.5f,(bb.zMax()-bb.zMin())*0.3f));
|
||||||
|
//text->setColor(osg::Vec4(0.37f,0.48f,0.67f,1.0f)); // Neil's orignal OSG colour
|
||||||
|
text->setColor(osg::Vec4(0.20f,0.45f,0.60f,1.0f)); // OGL logo colour
|
||||||
|
|
||||||
geode->addDrawable( text );
|
geode->addDrawable( text );
|
||||||
|
|
||||||
|
|
||||||
|
if (s_ProfessionalServices)
|
||||||
|
{
|
||||||
|
osgText::Text* subscript = new osgText::Text(new osgText::TextureFont(font,45));
|
||||||
|
|
||||||
|
subscript->setText("Professional Services");
|
||||||
|
subscript->setAlignment(osgText::Text::RIGHT_CENTER);
|
||||||
|
subscript->setAxisAlignment(osgText::Text::XZ_PLANE);
|
||||||
|
subscript->setPosition(bb.center()-osg::Vec3((bb.xMax()-bb.xMin())*3.5f,-(bb.yMax()-bb.yMin())*0.3f,(bb.zMax()-bb.zMin())*0.7f));
|
||||||
|
subscript->setColor(osg::Vec4(0.0f,0.0f,0.0f,1.0f)); // black
|
||||||
|
|
||||||
geode->addDrawable( subscript );
|
geode->addDrawable( subscript );
|
||||||
|
}
|
||||||
|
|
||||||
return geode;
|
return geode;
|
||||||
}
|
}
|
||||||
@@ -452,6 +454,9 @@ int main( int argc, char **argv )
|
|||||||
// parameters that have been matched.
|
// parameters that have been matched.
|
||||||
viewer.readCommandLine(commandLine);
|
viewer.readCommandLine(commandLine);
|
||||||
|
|
||||||
|
|
||||||
|
if (std::find(commandLine.begin(),commandLine.end(),std::string("ps"))!=commandLine.end()) s_ProfessionalServices = true;
|
||||||
|
|
||||||
osg::Node* node = createLogo();
|
osg::Node* node = createLogo();
|
||||||
|
|
||||||
// add model to viewer.
|
// add model to viewer.
|
||||||
|
|||||||
Reference in New Issue
Block a user