VR-Forces 4.0.4 Class Documentation
include/vrvCore/DtAttachableEntityFanUpdater.h
Go to the documentation of this file.
00001 /*****************************************************************************
00002  * Copyright (c) 2012 MAK Technologies, Inc.
00003  * All rights reserved.
00004  *****************************************************************************/
00005 
00009 
00010 #pragma once
00011 
00012 #include <vrvCore/vrvCore.h>
00013 #include <vrvCore/DtAttachableIntervisibilityUpdater.h>
00014 #include <vrvCore/DtIntersector.h>
00015 #include <vrvUtil/DtVirtualBaseClass.h>
00016 
00017 #include <boost/unordered_map.hpp>
00018 
00019 namespace makVrv
00020 {
00021 
00022    class DtElementEntry;
00023    class DtOverlayEllipseArcModelAgent;
00024    class DtExtrudedCircleModelAgent;
00025    class DtMultiLineModelAgent;
00026    class DtSceneObjectAgent;
00027 
00035    class DT_DLL_VRVCORE DtAttachableEntityFanUpdater : public DtAttachableIntervisibilityUpdater
00036    {
00037    public:
00038 
00041       DtAttachableEntityFanUpdater( DtDe& de, DtElementID id, bool doNotAddToMgr = false );
00042 
00044       virtual ~DtAttachableEntityFanUpdater();
00045 
00046       virtual void setEntityFanUpdateRate( double d );
00047 
00049       virtual void setCircleAgent( DtOverlayEllipseArcModelAgent* );
00050       virtual void setCircleAgent( DtExtrudedCircleModelAgent* );
00051 
00053       virtual void setMultiLineModelAgent( DtMultiLineModelAgent* );
00054 
00056       virtual void setSceneObjectAgent( DtSceneObjectAgent* );
00057 
00058    protected:
00059 
00060       virtual void updateSceneObject();
00061       virtual bool doIntersection();
00062 
00064       virtual void update();
00065 
00066       virtual void update( double );
00067 
00070       virtual bool removeElement( DtElementID id, bool disconnect = true );
00071 
00073       virtual void sceneObjectRemoved( DtUniqueID );
00074 
00076       virtual bool isIntersectableObject( const DtElementEntry& ) const;
00077 
00078    protected:
00079 
00080       struct EntityFanIntersectionInformation : public IntersectionInformation
00081       {
00082          DtSceneObject* sceneObject;
00083       };
00084 
00086       typedef boost::unordered_map<DtElementID,EntityFanIntersectionInformation> Intersections;
00087       Intersections myIntersections;
00088 
00089       double myEntityFanUpdateRate;
00090       bool myForceUpdate;
00091       double myLastRadius;
00092 
00093       DtOverlayEllipseArcModelAgent*   my2DCircleAgent;
00094       DtExtrudedCircleModelAgent* my3DCircleAgent;
00095       DtMultiLineModelAgent* myMultiLineModelAgent;
00096       DtSceneObjectAgent* mySceneObjectAgent;
00097 
00098       DtUniqueID mySceneObjectId;
00099 
00100    };
00101 
00104    class DT_DLL_VRVCORE DtAttachableEntityFanUpdaterCreator : public DtVirtualBaseClass
00105    {
00106    public:
00107 
00108       virtual ~DtAttachableEntityFanUpdaterCreator();
00109 
00110       static DtAttachableEntityFanUpdaterCreator& instance(DtDe&);
00111       static void registerInstance( DtDe&, DtAttachableEntityFanUpdaterCreator* );
00112 
00113       virtual DtAttachableEntityFanUpdater* create( DtDe&, DtElementID id );
00114 
00115    protected:
00116 
00117       DtAttachableEntityFanUpdaterCreator();
00118 
00119    };
00120 
00121 }

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)