17 #include <vrvUtil/DtVirtualBaseClass.h>
18 #include <vrvCore/DtUniqueID.h>
19 #include <vrvCore/DtSelectionManager.h>
20 #include <vrvCore/DtElementEntry.h>
22 #include <boost/signal.hpp>
36 class DtVrfObjectManipulationHandlerBaseClass;
37 class DtVrfEditManagerEventProcessor;
64 bool creatingObject()
const;
71 virtual void setAlwaysCreateLocal(
bool);
72 virtual bool alwaysCreateLocal()
const;
80 virtual void removeObjectManipulationHandler(
const DtEntityType&);
83 virtual makVrv::DtElementEntry::ElementType mapKindToType(
int)
const;
86 virtual void addKindToTypeMapping(
int,
const makVrv::DtElementEntry::ElementType&);
89 virtual bool hasTypeToKindMapping(
const makVrv::DtElementEntry::ElementType&)
const;
94 virtual void removeObjectManipulationHandler(
const makVrv::DtElementEntry::ElementType&);
99 virtual bool isEditable(
const makVrv::DtUniqueID&)
const;
100 virtual void setEditable(
const makVrv::DtUniqueID&,
bool);
103 virtual std::vector<DtVector> convertToLocal(
const std::vector<DtVector>& geocentric)
const;
106 virtual bool isEditingOrCreating()
const;
116 virtual void slot_onCreateObject(
const DtEntityType&, std::string,
int,
const std::vector<DtVector>&,
double entityHeading,
bool clamp,
bool isAggregated, std::string userData );
119 virtual void slot_onCreateTerrainProp(
const DtString& propType,
const DtString& propModelDef);
125 virtual void onInputDriverToBeDestroyed( makVrv::DtInputDriver* inputDriver );
127 virtual void cleanup();
145 const std::string& keywords =
"");
148 virtual void setLocation(
const DtVector& loc);
151 virtual void createTerrainProp(
const DtString& propType,
const DtString& propModelDef);
165 boost::signal<void (const DtEntityType&, std::string, int, const std::vector<DtVector>&,double,
bool,
bool, std::string )> signal_createObject;
177 bool editingObjects()
const;
178 void setAllowEditing(
bool b);
179 bool allowEditing()
const;
184 virtual void editSelectedObjects(
const makVrv::DtUniqueID& principalID,
185 makVrv::DtChannel& initiatingChannel,
const DtEditingType& edtype=Mouse );
188 virtual void deleteSelected();
189 virtual void deleteProp(makVrv::DtUniqueID
id);
191 virtual void deleteVertex(
const makVrv::DtUniqueID& vertexId );
192 virtual void deleteVertex(
const makVrv::DtUniqueID& shapeId,
195 virtual void addVertexBefore(
const makVrv::DtUniqueID& vertexId );
197 virtual void addVertexBefore(
const makVrv::DtUniqueID& shapeId,
200 virtual void addVertexBeforeSelected();
202 virtual void addVertexAfter(
const makVrv::DtUniqueID& vertexId );
204 virtual void addVertexAfter(
const makVrv::DtUniqueID& shapeId,
207 virtual void addVertexAfterSelected();
211 const DtVector& dbVtxLocation )
const;
215 virtual bool getVertexLocation(
const makVrv::DtUniqueID& vertexId,
223 virtual void requestAndProcessEnvState(
const makVrv::DtUniqueID& sceneId,
227 virtual void setWaitTimeAfterComplete(
double);
228 virtual double waitTimeAfterComplete()
const;
247 const makVrv::DtUniqueID& shapeId,
const DtVector& dbVtxLocation );
250 const makVrv::DtUniqueID& shapeId,
const DtVector& dbVtxLocation,
bool before );
254 virtual void slot_onTick();
256 virtual void slot_onAttributesChanged(
257 const makVrv::DtElementData::EntryAttributesList& signalList );
259 virtual bool isOnIdList( makVrv::DtUniqueID
id,
260 const makVrv::DtSelectionManager::IdSet& list );
279 typedef boost::unordered_map<makVrv::DtUniqueID, bool>
EditableMap;
282 typedef boost::unordered_map<int, makVrv::DtElementEntry::ElementType>
KindToTypeMap;
285 typedef boost::unordered_map<makVrv::DtElementEntry::ElementType, DtVrfObjectManipulationHandlerCreatorInterface*>
TypeCreatorMap;
294 public makVrv::DtVirtualBaseClass
303 static void registerInstance( makVrv::DtDe& de,