![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2012 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 00006 00010 00011 #ifndef DtChannelSpecificGroup_H_ 00012 #define DtChannelSpecificGroup_H_ 00013 00014 #include <vrvOsg/vrvOsg.h> 00015 #include <vrvOsg/DtFastGroup.h> 00016 #include <boost/unordered_set.hpp> 00017 00018 namespace osg 00019 { 00020 class View; 00021 } 00022 00023 00024 namespace makVrv 00025 { 00026 class DtChannel; 00027 00030 class DT_DLL_VRVOSG DtChannelSpecificGroup : public DtFastGroup 00031 { 00032 public: 00034 DtChannelSpecificGroup(); 00035 DtChannelSpecificGroup(const DtChannelSpecificGroup& orig, const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY); 00036 00037 META_Node(vrvOsg, DtChannelSpecificGroup); 00038 00040 virtual ~DtChannelSpecificGroup(); 00041 00043 virtual void addChannel(DtChannel* channel); 00044 00046 virtual void removeChannel(DtChannel* channel); 00047 00049 virtual int numChannels() const; 00050 00052 virtual void traverse(osg::NodeVisitor& nv); 00053 00059 virtual void addView( osg::View* viewToAdd ); 00060 00062 virtual void removeView( osg::View* viewToRemove ); 00063 00064 protected: 00065 typedef boost::unordered_set<DtChannel*> ChannelSet; 00066 typedef boost::unordered_set<osg::View*> ViewSet; 00067 00068 ChannelSet myChannels; 00069 ViewSet myFastViewLookup; 00070 00071 }; 00072 00073 } 00074 00075 #endif