modelAssigner.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef EQ_PLY_MODELASSIGNER_H
00019 #define EQ_PLY_MODELASSIGNER_H
00020
00021 namespace eqPly
00022 {
00024 class ModelAssigner : public eq::ConfigVisitor
00025 {
00026 public:
00027 ModelAssigner( const ModelDistVector& models )
00028 : _models( models ), _current( models.begin( )), _layout( 0 ) {}
00029
00030 virtual eq::VisitorResult visit( eq::View* view )
00031 {
00032 const ModelDist* model = *_current;
00033 static_cast< View* >( view )->setModelID( model->getID( ));
00034
00035 ++_current;
00036 if( _current == _models.end( ))
00037 _current = _models.begin();
00038
00039 return eq::TRAVERSE_CONTINUE;
00040 }
00041
00042 private:
00043 const ModelDistVector& _models;
00044 ModelDistVector::const_iterator _current;
00045
00046 eq::Layout* _layout;
00047 };
00048
00049 }
00050 #endif // EQ_PLY_MODELASSIGNER_H