00001 #ifndef VRS_SG_OVERLAYIMAGEGL_H
00002 #define VRS_SG_OVERLAYIMAGEGL_H
00003
00004 #include <vrs/config.h>
00005 #include <vrs/image/image.h>
00006 #include <vrs/polygonset.h>
00007 #include <vrs/sg/scenething.h>
00008 #include <vrs/text.h>
00009 #include <vrs/sg/colorlineareffect.h>
00010
00011 namespace VRS
00012 {
00014
00017 class VRS_CORE_API OverlayImageGL : public SceneThing {
00018 public:
00019 OverlayImageGL();
00020 OverlayImageGL(SceneThing* parentThing);
00021 virtual ~OverlayImageGL();
00022 int addImage(Image* overlayImage, Vector& minPosition,Vector& maxPosition, bool showHide= true);
00023 int addText(Font* font,const std::string& text, Vector& minPosition = Vector(0,0,0), Vector& maxPosition= Vector(0,0,0),
00024 Text::AlignmentH alignmentH=Text::LEFT, Text::AlignmentV alignmentV=Text::BOTTOM,Color textColor = Color(0,0,0,1));
00025 bool removeOverlayItem(int i);
00026 int getSize();
00027 Image* getImageAt(int i);
00028 Text* getTextAt(int i);
00029 Vector getMinPosition(int i);
00030 Vector getMaxPosition(int i);
00031 ColorAttribute* getColorAttribute(int i);
00032 bool hideOverlayItem(int i);
00033 bool showOverlayItem(int i);
00034
00035 VRS_TYPEINFO(OverlayImageGL, SceneThing);
00036 private:
00037 SO<Dictionary<int,SO<SceneThing> > > overlayItems_;
00038 SO<Dictionary<int,Vector> > minPositions_;
00039 SO<Dictionary<int,Vector> > maxPositions_;
00040 SO<Dictionary<int,SO<ColorAttribute> > > colorAttrs_;
00041 int addItem(SceneThing* overlayItem, Vector& minPosition, Vector& maxPosition,ColorAttribute* color);
00042 SharedObj* getItem(int i,const ID& itemType);
00043 void init();
00044 int nextId;
00045
00046 };
00047 }
00048 #endif