![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2008 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtRangeLineDriver.h,v $ $Revision: 1.8 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00012 00013 #pragma once 00014 #include "DtRangeLineElement.h" 00015 #include "DtRangeLineStateListener.h" 00016 00017 #include <vrvCore/DtElementDefinitionManager.h> 00018 #include <vrvCore/DtElementEntry.h> 00019 #include <vrvCore/DtIntervisibilityDriver.h> 00020 #include <vrvCore/DtSelectionManager.h> 00021 #include <vrvCore/DtUniqueID.h> 00022 #include <vrvCore/vrvCore.h> 00023 #include <vrvUtil/DtSignalConnectionManager.h> 00024 #include <vrvUtil/DtVirtualBaseClass.h> 00025 00026 #include <boost/signals.hpp> 00027 #include <boost/unordered_map.hpp> 00028 00029 class DtVector; 00030 00031 namespace makVrv 00032 { 00033 class DtDe; 00034 class DtBasicEditingEventProcessor; 00035 class DtUnicode; 00036 class DtIntervisibilityStateListener; 00037 class DtElementDefinitionManager; 00038 } 00039 00040 namespace exampleRangeLine 00041 { 00042 class DtRangeLineElement; 00043 class DtRangeLineStateListener; 00044 00049 class DtRangeLineDriver : public makVrv::DtIntervisibilityDriver 00050 { 00051 public: 00052 00054 DtRangeLineDriver(makVrv::DtDe&); 00055 00057 virtual ~DtRangeLineDriver(); 00058 00060 virtual DtRangeLineElement* create(const DtVector& start, 00061 const DtVector& end); 00062 00064 virtual void create(const AttachPoints& ap = AttachPoints()); 00065 00066 protected: 00068 virtual makVrv::DtBasicEditingEventProcessor* createEventProcessor() const; 00069 00071 virtual makVrv::DtIntervisibilityStateListener* createListener( 00072 const std::string& definition) const; 00073 00075 virtual makVrv::DtIntervisibilityElement* createElement( 00076 makVrv::DtIntervisibilityStateListener*, 00077 const makVrv::DtUnicode& definition) const; 00078 00081 virtual bool isAttachableObjectType( 00082 makVrv::DtElementEntry::ObjectType t) const; 00083 virtual bool isAttachableObjectType(makVrv::DtUniqueID id) const; 00084 00085 virtual void slot_place(makVrv::DtUniqueID attachTo, DtVector v, 00086 double altAboveGround); 00087 00088 virtual void completeSetup(); 00089 00090 void installElementDefinitions( 00091 makVrv::DtElementDefinitionManager& manager); 00092 void createVisualizerDefinitions( 00093 makVrv::DtElementDefinitionManager& manager, int modelSet); 00094 00095 }; 00096 } 00097