14 #include "earthmodelmod.h" 29 namespace Geometry {
class Element; }
32 template <
class T>
class Array2D;
49 , flagfor2dviewer( false )
50 , event( EMObjectCallbackData::
Undef )
57 , attrib( data.attrib )
58 , flagfor2dviewer( data.flagfor2dviewer )
63 enum Event {
Undef, PositionChange, PosIDChange, PrefColorChange, Removal,
66 ParentColorChange} event;
89 virtual bool canGoTo()
const {
return false; }
103 enum Type { PermanentControlNode, TemporaryControlNode,
123 Auto=(int)
'2', Gridding=(
int)
'3' };
125 virtual const char* getTypeStr()
const = 0;
126 virtual uiString getUserTypeStr()
const = 0;
128 void setDBKey(
const DBKey&);
130 virtual bool isOK()
const {
return true; }
132 void setName(
const char* nm ) { objname_ = nm; }
136 virtual void setNewName();
138 virtual int nrSections()
const = 0;
139 virtual SectionID sectionID(
int)
const = 0;
141 virtual bool canSetSectionName()
const;
142 virtual bool setSectionName(
const SectionID&,
const char*,
144 virtual int sectionIndex(
const SectionID&)
const;
153 const Color& preferredColor()
const;
154 void setPreferredColor(
const Color&,
155 bool addtohistory=
false);
159 void setPreferredMarkerStyle3D(
162 void setBurstAlert(
bool yn);
163 bool hasBurstAlert()
const;
168 virtual bool isDefined(
const EM::PosID&)
const;
175 const Coord3&,
bool addtohistory,
177 virtual bool unSetPos(
const EM::PosID&,
bool addtohistory);
205 virtual bool enableGeometryChecks(
bool);
206 virtual bool isGeometryChecksEnabled()
const;
208 virtual bool isAtEdge(
const EM::PosID&)
const;
231 virtual int nrPosAttribs()
const;
232 virtual int posAttrib(
int idx)
const;
233 virtual void addPosAttrib(
int attr);
234 virtual void removePosAttribList(
int attr,
235 bool addtohistory=
true);
236 virtual void setPosAttrib(
const EM::PosID&,
237 int attr,
bool yn,
bool addtohistory=
true);
239 virtual bool isPosAttrib(
const EM::PosID&,
int attr)
const;
240 virtual const char* posAttribName(
int)
const;
241 virtual int addPosAttribName(
const char*);
244 void setPosAttrMarkerStyle(
int attr,
246 virtual void lockPosAttrib(
int attr,
bool yn);
247 virtual bool isPosAttribLocked(
int attr)
const;
252 void removeAllUnSeedPos();
254 void emptyRemovedPolySelectedPosBox();
269 virtual void lock(
bool yn) { locked_=yn;}
272 {
return insideselremoval_; }
278 void setSelectionColor(
const Color&);
279 const Color& getSelectionColor()
const;
283 void saveDisplayPars()
const;
285 static int sTerminationNode();
286 static int sSeedNode();
287 static int sIntersectionNode();
298 const Coord3&,
bool addtohistory,
301 virtual void prepareForDelete();
302 void posIDChangeCB(CallBacker*);
303 void useDisplayPars(
const IOPar&);
329 static const char* nrposattrstr();
330 static const char* posattrprefixstr();
331 static const char* posattrsectionstr();
332 static const char* posattrposidstr();
338 static Color sDefaultSelectionColor();
344 #define mDefineEMObjFuncs( clss ) \ 346 clss(EM::EMManager&); \ 347 static void initClass(); \ 348 static EMObject* create(EM::EMManager&); \ 349 static clss* create(const char* nm); \ 350 static FixedString typeStr(); \ 351 const char* getTypeStr() const; \ 356 #define mImplementEMObjFuncs( clss, typenm ) \ 357 void clss::initClass() \ 359 EMOF().addCreator( create, typeStr() ); \ 363 EMObject* clss::create( EM::EMManager& emm ) \ 365 EMObject* obj = new clss( emm ); \ 366 if ( !obj ) return 0; \ 368 emm.addObject( obj ); \ 369 obj->unRefNoDelete(); \ 373 clss* clss::create( const char* nm ) \ 375 const ObjectID objid = EMM().createObject( typeStr(), nm ); \ 376 EMObject* emobj = EMM().getObject( objid ); \ 377 mDynamicCastGet(clss*,newobj,emobj); \ 381 FixedString clss::typeStr() { return typenm; } \ 382 const char* clss::getTypeStr() const { return typeStr(); } \ 383 void clss::setNewName() \ 385 static int objnr = 1; \ 386 BufferString nm( "<New ", typenm, " " ); \ 387 nm.add( objnr++ ).add( ">" ); \
od_int16 SectionID
Definition: emposid.h:23
#define mExpClass(module)
Definition: commondefs.h:157
od_int32 ObjectID
Definition: emposid.h:22
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
BufferString objname_
Definition: emobject.h:304
OD::MarkerStyle3D & preferredmarkerstyle_
Definition: emobject.h:312
virtual void getLinkedPos(const EM::PosID &posid, TypeSet< EM::PosID > &) const
Definition: emobject.h:218
A lock of a type that (hopefully) suits your needs. To use it, you need the Locker class...
Definition: threadlock.h:51
T to(const F &fr)
Definition: convert.h:31
Event
Definition: emobject.h:63
FixedString Undef()
Definition: keystrs.h:139
virtual bool isNodeSourceType(const TrcKey &, NodeSourceType) const
Definition: emobject.h:188
Is an identifier for each position in the earthmodel.
Definition: emposid.h:35
bool locked_
Definition: emobject.h:321
Color & preferredcolor_
Definition: emobject.h:310
virtual int approximateSize() const
Definition: emobject.h:87
virtual bool hasLockedNodes() const
Definition: emobject.h:202
Definition: emobject.h:64
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
#define od_int64
Definition: plftypes.h:34
ObjectSet< PosAttrib > posattribs_
Definition: emobject.h:313
Type type_
Definition: emobject.h:107
virtual void unlockAll()
Definition: emobject.h:197
DBKey storageid_
Definition: emobject.h:306
virtual const Color getLockColor() const
Definition: emobject.h:201
Position attribute.
Definition: emobject.h:98
TypeSet< int > attribs_
Definition: emobject.h:314
bool isSelRemoving() const
Definition: emobject.h:273
TypeSet< PosID > posids_
Definition: emobject.h:108
int attrib
Definition: emobject.h:70
EM::PosID pid0
Definition: emobject.h:68
uiString uiName() const
Definition: emobject.h:135
Definition: uistring.h:88
virtual bool isOK() const
Definition: emobject.h:130
EMObjectCallbackData()
Definition: emobject.h:45
Definition: emobject.h:65
od_int64 SubID
Definition: emposid.h:24
virtual void setNodeLocked(const TrcKey &, bool locked)
Definition: emobject.h:191
FixedString None()
Definition: keystrs.h:90
Definition: emobject.h:104
class EMManager & manager_
Definition: emobject.h:307
void setErrMsg(const uiString &m)
Definition: emobject.h:276
Set of pointers to objects.
Definition: commontypes.h:28
virtual void setChangedFlag()
Definition: emobject.h:263
Iterator that iterates a number of positions (normally all) on an EMObject. The object is created by ...
Definition: emobject.h:81
bool haslockednodes_
Definition: emobject.h:327
3D point or vector
Definition: commontypes.h:57
virtual bool isNodeLocked(const TrcKey &) const
Definition: emobject.h:192
virtual int maximumSize() const
Definition: emobject.h:88
Set of (small) copyable elements.
Definition: commontypes.h:26
int burstalertcount_
Definition: emobject.h:322
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
Array2D ( Subclass of ArrayND ) is a two dimensional array.
Definition: arraynd.h:127
Class that can execute a task.
Definition: task.h:193
virtual void setLockColor(const Color &)
Definition: emobject.h:200
bool insideselremoval_
Definition: emobject.h:325
const ObjectID & id() const
Definition: emobject.h:124
virtual const Array2D< char > * getLockedNodes() const
Definition: emobject.h:199
virtual EM::PosID goTo(od_int64)
Definition: emobject.h:90
bool fullyloaded_
Definition: emobject.h:320
virtual bool isNodeSourceType(const PosID &, NodeSourceType) const
Definition: emobject.h:186
Manages the loaded/half loaded EM objects in OpendTect.
Definition: emmanager.h:42
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:32
bool selremoving_
Definition: emobject.h:326
virtual bool isLoaded() const
Definition: emobject.h:259
bool isInsideSelRemoval() const
Definition: emobject.h:271
EM::PosID pid1
Definition: emobject.h:69
bool isFullyLoaded() const
Definition: emobject.h:265
void setFullyLoaded(bool yn)
Definition: emobject.h:266
Interface for classes that select on basis of a key.
Definition: selector.h:23
virtual void lockAll()
Definition: emobject.h:196
uiString toUiString(const DBKey &ky)
Definition: dbkey.h:117
virtual bool canGoTo() const
Definition: emobject.h:89
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
CNotifier< EMObject, const EMObjectCallbackData & > change
Definition: emobject.h:256
Definition: geomelement.h:35
Type
Definition: emobject.h:103
virtual ~EMObjectIterator()
Definition: emobject.h:84
virtual Executor * saver()
Definition: emobject.h:260
virtual void lock(bool yn)
Definition: emobject.h:269
#define mDeprecated
Definition: plfdefs.h:213
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
bool flagfor2dviewer
Definition: emobject.h:71
bool isEmpty(const char *)
uiString errmsg_
Definition: emobject.h:308
mDeprecated void setMultiID(const DBKey &k)
Definition: emobject.h:337
virtual bool isNodeLocked(const PosID &) const
Definition: emobject.h:194
void setName(const char *nm)
Definition: emobject.h:132
BufferString errmsg_
Definition: horizontracker.h:117
virtual Executor * loader()
Definition: emobject.h:258
Color selectioncolor_
Definition: emobject.h:315
PosAttrib()
Definition: emobject.h:101
EMObjectCallbackData(const EMObjectCallbackData &data)
Definition: emobject.h:54
Base class for all EarthModel objects.
Definition: emobject.h:117
OD::LineStyle & preferredlinestyle_
Definition: emobject.h:311
EM object callback data.
Definition: emobject.h:42
Earth Model objects like horizons, faults, fault-sticks and bodies.
Definition: embody.h:23
static Color Blue()
Definition: color.h:77
Notifier with automatic capsule creation.
Definition: notify.h:166
Threads::Lock setposlock_
Definition: emobject.h:323
NodeSourceType
Definition: emobject.h:122
Color is an RGB color object, with a transparancy. The storage is in a 4-byte integer, similar to Qt.
Definition: color.h:24
virtual bool isLocked() const
Definition: emobject.h:268
ObjectID id_
Definition: emobject.h:305
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
virtual EMObjectIterator * createIterator(const EM::SectionID &, const TrcKeyZSampling *=0) const
Definition: emobject.h:225
const char * errMsg() const
Definition: horizontracker.h:59
Represents a unique trace position in one of the surveys that OpendTect is managing.
Definition: trckey.h:26
virtual bool isChanged() const
Definition: emobject.h:261
TrcKeyZSampling removebypolyposbox_
Definition: emobject.h:317
virtual bool removeSection(SectionID, bool hist)
Definition: emobject.h:145
virtual void setNodeSourceType(const TrcKey &, NodeSourceType)
Definition: emobject.h:181
virtual void resetChangedFlag()
Definition: emobject.h:264
Definition: arraytesselator.h:19
bool locked_
Definition: emobject.h:109
IOObjContext * getIOObjContext(Seis::GeomType, bool forread)
bool changed_
Definition: emobject.h:319
virtual bool hasNodeSourceType(const PosID &) const
Definition: emobject.h:183
Specification to enable chunkwise execution of a process.
Definition: executor.h:38
Holds the context for selecting and/or creating IOObjs.
Definition: ioobjctxt.h:59
mDeprecated const DBKey & multiID() const
Definition: emobject.h:336
const DBKey & dbKey() const
Definition: emobject.h:127
Definition: emobject.h:63