OpenWalnut  1.4.0
WGELabel.h
00001 //---------------------------------------------------------------------------
00002 //
00003 // Project: OpenWalnut ( http://www.openwalnut.org )
00004 //
00005 // Copyright 2009 OpenWalnut Community, BSV@Uni-Leipzig and CNCF@MPI-CBS
00006 // For more information see http://www.openwalnut.org/copying
00007 //
00008 // This file is part of OpenWalnut.
00009 //
00010 // OpenWalnut is free software: you can redistribute it and/or modify
00011 // it under the terms of the GNU Lesser General Public License as published by
00012 // the Free Software Foundation, either version 3 of the License, or
00013 // (at your option) any later version.
00014 //
00015 // OpenWalnut is distributed in the hope that it will be useful,
00016 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00017 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018 // GNU Lesser General Public License for more details.
00019 //
00020 // You should have received a copy of the GNU Lesser General Public License
00021 // along with OpenWalnut. If not, see <http://www.gnu.org/licenses/>.
00022 //
00023 //---------------------------------------------------------------------------
00024 
00025 #ifndef WGELABEL_H
00026 #define WGELABEL_H
00027 
00028 #include <osgText/Text>
00029 #include <osgText/FadeText>
00030 
00031 #include "WGELayoutableItem.h"
00032 
00033 /**
00034  * Label layout-item. An layoutable item which displays text. This is nice for labeling elements on the screen. It can be used stand-alone (as it
00035  * simply is an osgText::Text instance or in conjunction with an WGEItemLayouter.
00036  */
00037 class WGELabel: public osgText::Text,
00038                                 WGELayoutableItem
00039 {
00040 public:
00041     /**
00042      * Convenience typedef for a osg::ref_ptr< WGELabel >.
00043      */
00044     typedef osg::ref_ptr< WGELabel > SPtr;
00045 
00046     /**
00047      * Convenience typedef for a osg::ref_ptr< const WGELabel >.
00048      */
00049     typedef osg::ref_ptr< const WGELabel > ConstSPtr;
00050 
00051     /**
00052      * Default constructor.
00053      */
00054     WGELabel();
00055 
00056     /**
00057      * Destructor.
00058      */
00059     virtual ~WGELabel();
00060 
00061     /**
00062      * Gets the current anchor point of the label.
00063      *
00064      * \return the anchor.
00065      */
00066     virtual osg::Vec3 getAnchor() const;
00067 
00068     /**
00069      * Sets the anchor point in world coordinates of this labels.
00070      *
00071      * \param anchor the anchor point
00072      */
00073     virtual void setAnchor( const osg::Vec3& anchor );
00074 
00075 protected:
00076     /**
00077      * The anchor of the label in world space.
00078      */
00079     osg::Vec3 m_anchor;
00080 
00081 private:
00082 };
00083 
00084 #endif  // WGELABEL_H
00085