16 #include <vrvUtil/signalslib.h>
21 #include <vrvCore/DtDe.h>
22 #include <vrvCore/DtSimEntry.h>
23 #include <vrvCore/DtElementEntry.h>
25 #include <matrix/geodCoord.h>
27 #include <boost/signal.hpp>
31 class DtCopyObjectCreator;
33 class DtVrfObjectManipulationEventProcessor;
40 typedef std::map<std::string, DtPasteInformation>
DtPasteData;
57 virtual void clearPasteData();
61 virtual void copy(
const makVrv::DtUniqueID&
id);
63 virtual bool canCopy()
const
65 return (myObjectsCopying.size() == 0);
68 int numCopying()
const
70 return myObjectsCopying.size();
73 virtual bool canPaste()
const
75 return ((myPasteData.size() != 0) && !pasting());
83 virtual void cancelPaste();
97 virtual void copyOperationPending(
DtCopyObject*,
const std::string&);
100 virtual DtCopyObject* createCopyObject(
const makVrv::DtElementEntry&)
const;
103 virtual DtCopyObject* createCopyObject(
int type)
const = 0;
105 void setPasteFlags(
int f)
110 int pasteFlags()
const
115 bool hasObjectsToPaste()
const
117 return (myObjectsPasting.size() != 0);
121 virtual void setPreserveOffsets(
bool);
122 virtual bool preserveOffsets()
const;
134 return myEventProcessor != 0;
139 void setMaximumToProcessInPastePass(
int i)
141 myMaximumToProcessInPastePass = i;
144 int maximumToProcessInPastePass()
const
146 return myMaximumToProcessInPastePass;
150 virtual void cleanup();
153 virtual DtCopyObject* createObjectFromPasteData(
int type,
const std::string& buffer)
const;
156 virtual void queueObjectsToPaste();
159 virtual void slot_onPaste();
163 return myObjectsPasting;
166 virtual void setPasteData(
const std::string& name,
int type,
const std::string& pasteBuffer);
180 virtual void cleanupEventProcessor();
184 virtual void slot_onLocationChanged(
const DtVector&,
double);
187 virtual void pasteOperationPending(
DtCopyObject*,
const std::string&);