|
From: <jfa...@us...> - 2008-10-29 18:34:28
|
Revision: 5927
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=5927&view=rev
Author: jfaustwg
Date: 2008-10-29 18:34:25 +0000 (Wed, 29 Oct 2008)
Log Message:
-----------
r11053@lan-dhcp-121: jfaust | 2008-10-29 11:17:23 -0700
Add alpha to the map
Modified Paths:
--------------
pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/map_visualizer.cpp
pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/map_visualizer.h
Property Changed:
----------------
pkg/trunk/
Property changes on: pkg/trunk
___________________________________________________________________
Modified: svk:merge
- 920d6130-5740-4ec1-bb1a-45963d5fd813:/frameidpr:7015
920d6130-5740-4ec1-bb1a-45963d5fd813:/users/josh-pr:11046
920d6130-5740-4ec1-bb1a-45963d5fd813:/wgpkgtrunk:5865
f5854215-dd47-0410-b2c4-cdd35faa7885:/pkg/branches/rosbus:261
+ 920d6130-5740-4ec1-bb1a-45963d5fd813:/frameidpr:7015
920d6130-5740-4ec1-bb1a-45963d5fd813:/users/josh-pr:11053
920d6130-5740-4ec1-bb1a-45963d5fd813:/wgpkgtrunk:5865
f5854215-dd47-0410-b2c4-cdd35faa7885:/pkg/branches/rosbus:261
Modified: pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/map_visualizer.cpp
===================================================================
--- pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/map_visualizer.cpp 2008-10-29 18:33:53 UTC (rev 5926)
+++ pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/map_visualizer.cpp 2008-10-29 18:34:25 UTC (rev 5927)
@@ -58,7 +58,12 @@
, resolution_( 0.0f )
, width_( 0.0f )
, height_( 0.0f )
+, load_timer_( 2.0f )
, service_property_( NULL )
+, resolution_property_( NULL )
+, width_property_( NULL )
+, height_property_( NULL )
+, alpha_property_( NULL )
{
scene_node_ = scene_manager_->getRootSceneNode()->createChildSceneNode();
@@ -70,6 +75,8 @@
material_->getTechnique(0)->setLightingEnabled(false);
material_->setDepthBias( -16.0f, 0.0f );
material_->setCullingMode( Ogre::CULL_NONE );
+
+ setAlpha( 0.7f );
}
MapVisualizer::~MapVisualizer()
@@ -87,6 +94,38 @@
clear();
}
+void MapVisualizer::setAlpha( float alpha )
+{
+ alpha_ = alpha;
+
+ Ogre::Pass* pass = material_->getTechnique(0)->getPass(0);
+ Ogre::TextureUnitState* tex_unit = NULL;
+ if (pass->getNumTextureUnitStates() > 0)
+ {
+ tex_unit = pass->getTextureUnitState(0);
+ }
+ else
+ {
+ tex_unit = pass->createTextureUnitState();
+ }
+
+ tex_unit->setAlphaOperation( Ogre::LBX_SOURCE1, Ogre::LBS_MANUAL, Ogre::LBS_CURRENT, alpha_ );
+
+ if ( alpha_ < 0.9998 )
+ {
+ material_->setSceneBlending( Ogre::SBT_TRANSPARENT_ALPHA );
+ }
+ else
+ {
+ material_->setSceneBlending( Ogre::SBT_REPLACE );
+ }
+
+ if ( alpha_property_ )
+ {
+ alpha_property_->changed();
+ }
+}
+
void MapVisualizer::setService( const std::string& service )
{
service_ = service;
@@ -112,6 +151,7 @@
texture_.setNull();
Ogre::TextureManager::getSingleton().unload( tex_name );
+ load_timer_ = 2.0f;
loaded_ = false;
}
@@ -161,6 +201,7 @@
pixels[pidx+0] = val;
pixels[pidx+1] = val;
pixels[pidx+2] = val;
+ //pixels[pidx+3] = 1.0f;
}
}
@@ -281,16 +322,14 @@
void MapVisualizer::update( float dt )
{
- static float timer = 0.0f;
-
if ( !loaded_ )
{
- timer -= dt;
+ load_timer_ += dt;
- if ( timer < 0.0f )
+ if ( load_timer_ > 2.0f )
{
load();
- timer = 2.0f;
+ load_timer_ = 0.0f;
}
}
}
@@ -300,6 +339,9 @@
service_property_ = property_manager_->createProperty<StringProperty>( "Service", property_prefix_, boost::bind( &MapVisualizer::getService, this ),
boost::bind( &MapVisualizer::setService, this, _1 ), parent_category_, this );
+ alpha_property_ = property_manager_->createProperty<FloatProperty>( "Alpha", property_prefix_, boost::bind( &MapVisualizer::getAlpha, this ),
+ boost::bind( &MapVisualizer::setAlpha, this, _1 ), parent_category_, this );
+
resolution_property_ = property_manager_->createProperty<FloatProperty>( "Resolution", property_prefix_, boost::bind( &MapVisualizer::getResolution, this ),
FloatProperty::Setter(), parent_category_, this );
width_property_ = property_manager_->createProperty<FloatProperty>( "Width", property_prefix_, boost::bind( &MapVisualizer::getWidth, this ),
Modified: pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/map_visualizer.h
===================================================================
--- pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/map_visualizer.h 2008-10-29 18:33:53 UTC (rev 5926)
+++ pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/map_visualizer.h 2008-10-29 18:34:25 UTC (rev 5927)
@@ -65,6 +65,9 @@
float getWidth() { return width_; }
float getHeight() { return height_; }
+ float getAlpha() { return alpha_; }
+ void setAlpha( float alpha );
+
// Overrides from VisualizerBase
virtual void targetFrameChanged() {}
virtual void fixedFrameChanged();
@@ -95,10 +98,15 @@
float width_;
float height_;
+ float load_timer_;
+
+ float alpha_;
+
StringProperty* service_property_;
FloatProperty* resolution_property_;
FloatProperty* width_property_;
FloatProperty* height_property_;
+ FloatProperty* alpha_property_;
};
} // namespace ogre_vis
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|