![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2008 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtOsgMultiRibbon.h,v $ $Revision: 1.8 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00012 00013 #pragma once 00014 00015 #include <vrvOsg/vrvOsg.h> 00016 #include <vrvOsg/DtOsgRibbon.h> 00017 00018 #include <vector> 00019 00020 namespace osg { class Node; class Group; } 00021 00022 namespace makVrv 00023 { 00026 class DT_DLL_VRVOSG DtOsgMultiRibbon : public DtOsgRibbon 00027 { 00028 public: 00029 typedef std::vector<DtOsgRibbon*> RibbonSet; 00030 00032 DtOsgMultiRibbon(); 00033 00035 DtOsgMultiRibbon(RibbonSet& ribbons); 00036 00038 osg::Node* node(); 00039 00041 void addRibbon(DtOsgRibbon* ribbon); 00042 00043 protected: 00045 ~DtOsgMultiRibbon(); 00046 00048 virtual void update(double dt, double simTime); 00049 00050 typedef std::vector<osg::ref_ptr<DtOsgRibbon> > RibbonRefPtrSet; 00051 00052 virtual void addParticle(osg::Vec3d const& left, osg::Vec3d const& right, 00053 double simTime); 00054 00056 virtual float currentSegmentLength(); 00057 00059 virtual void extendCurrentSegment(osg::Vec3d const& left, 00060 osg::Vec3d const& right, double simTime); 00061 00062 virtual osg::Drawable* getDrawable(); 00063 00065 RibbonRefPtrSet myRibbons; 00066 00067 osg::ref_ptr<osg::Group> myNode; 00068 }; 00069 } 00070