40 enum Type { NodeOnly, Leaved, Leaf };
46 virtual
Type type() const = 0;
47 virtual
bool isEmpty()
const {
return false; }
48 virtual bool isUndef()
const {
return false; }
49 virtual bool hasChildren()
const = 0;
50 bool isLeaf()
const {
return type()==Leaf; }
51 bool isLeaved()
const {
return type()==Leaved; }
74 virtual int level()
const = 0;
92 void doUse(
const char*,
int*);
95 void notifChange(
bool isrem=
false);
101 int treeDepth()
const;
102 bool isBelow(
const UnitRef*)
const;
104 bool precedes(
const UnitRef&)
const;
108 virtual void use(
const char* s ) { doUse(s,0); }
109 virtual void getPropsFrom(
const IOPar&);
110 virtual void putPropsTo(
IOPar&)
const;
128 virtual bool isEmpty()
const {
return refs_.isEmpty(); }
130 virtual bool hasLeaves()
const = 0;
133 virtual void setCode(
const char* c ) { code_ = c; }
139 int nrRefs()
const {
return refs_.size(); }
140 UnitRef&
ref(
int idx ) {
return *refs_[idx]; }
141 const UnitRef&
ref(
int idx )
const {
return *refs_[idx]; }
144 virtual bool isParentOf(
const UnitRef&)
const;
146 UnitRef*
find(
const char* urcode ) {
return fnd(urcode); }
147 const UnitRef*
find(
const char* urcode )
const{
return fnd(urcode); }
149 virtual int nrLeaves()
const;
150 virtual int level()
const {
return upnode_?upnode_->level()+1:0; }
158 UnitRef* fnd(
const char*)
const;
160 void changeTimeRange(
float dtime);
165 virtual bool add(UnitRef*,
bool rev=
false);
166 virtual bool insert(UnitRef*,
int posidx);
167 virtual UnitRef* replace(
int uridx,UnitRef*);
168 void moveChild(
int,
bool up);
169 void remove(
int uridx )
171 void remove(
const UnitRef* ur )
176 virtual void getPropsFrom(
const IOPar&);
177 virtual void putPropsTo(
IOPar&)
const;
189 : NodeUnitRef(up,c,d) {}
208 : NodeUnitRef(up,c,d) {}
214 void setLevelID(LevelID);
216 virtual int nrLeaves()
const {
return refs_.size(); }
218 {
return refs_.
isEmpty() ? 0 : refs_[0]->firstLeaf(); }
232 { doFill(bs,levelid_); }
233 virtual void use(
const char* s ) { doUse(s,levelid_); }
246 virtual bool isUndef()
const;
252 void setLithology(
int);
255 Color dispColor(
bool lith_else_upnode)
const;
256 virtual int level()
const {
return upnode_?upnode_->level()+1:0; }
264 virtual void use(
const char* s ) { doUse(s,&lith_); }
269 virtual void getPropsFrom(
const IOPar&);
#define mExpClass(module)
Definition: commondefs.h:157
int lithology() const
Definition: stratunitref.h:251
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
NodeUnitRef * topNode()
Definition: stratunitref.h:274
virtual int level() const
Definition: stratunitref.h:256
virtual void use(const char *s)
Definition: stratunitref.h:108
UnitRef for units containing Leaf units only.
Definition: stratunitref.h:200
virtual const LeafUnitRef * firstLeaf() const
Definition: stratunitref.h:217
const UnitRef & ref(int idx) const
Definition: stratunitref.h:141
UnitRef & ref(int idx)
Definition: stratunitref.h:140
UnitRef for units containing non-Leaf units only.
Definition: stratunitref.h:184
int lith_
Definition: stratunitref.h:261
bool isLeaved() const
Definition: stratunitref.h:51
NodeUnitRef * upnode_
Definition: stratunitref.h:83
virtual int level() const
Definition: stratunitref.h:150
NodeOnlyUnitRef(NodeUnitRef *up, const char *c, const char *d=0)
Definition: stratunitref.h:187
Interval< float > timerg_
Definition: stratunitref.h:155
virtual bool hasChildren() const
Definition: stratunitref.h:129
virtual const LeafUnitRef * firstLeaf() const
Definition: stratunitref.h:257
ObjectSet< T >::size_type indexOf(const ObjectSet< T > &os, const S &val)
Locate object in set.
Definition: objectset.h:173
single integer ID with comparison but no automatic conversion. Note that you will want to make a subc...
Definition: integerid.h:47
virtual bool isParentOf(const UnitRef &) const
Definition: stratunitref.h:73
Level::ID LevelID
Definition: stratunitref.h:204
virtual T * removeSingle(size_type, bool keep_order=true)
Definition: objectset.h:464
#define mDeclareEnumUtils(enm)
Some utilities surrounding the often needed enum <-> string table.
Definition: enums.h:188
const OD::String & description() const
Definition: stratunitref.h:57
Class to help setup a callback handling.
Definition: notify.h:121
virtual void fill(BufferString &bs) const
Definition: stratunitref.h:263
Set of pointers to objects.
Definition: commontypes.h:28
LevelID levelid_
Definition: stratunitref.h:229
virtual Interval< float > timeRange() const
Definition: stratunitref.h:135
virtual void use(const char *s)
Definition: stratunitref.h:264
Color color_
Definition: stratunitref.h:86
LevelID levelID() const
Definition: stratunitref.h:213
virtual void use(const char *s)
Definition: stratunitref.h:233
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
int indexOf(const UnitRef *ur) const
Definition: stratunitref.h:142
const NodeUnitRef * upNode(int skip=0) const
Definition: stratunitref.h:65
bool isLeaf() const
Definition: stratunitref.h:50
void setUpNode(NodeUnitRef *newpar)
Definition: stratunitref.h:67
a name and an ID.
Definition: stratlith.h:32
Notifier< UnitRef > changed
Definition: stratunitref.h:76
virtual const OD::String & code() const
Definition: stratunitref.h:132
const LeafUnitRef * getLeaf(const Lithology &l) const
Definition: stratunitref.h:224
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:270
encapsulates the read-access-only part of strings in OD.
Definition: odstring.h:29
NodeUnitRef * upNode(int skip=0)
UnitRef for units containing other units only.
Definition: stratunitref.h:120
virtual Type type() const
Definition: stratunitref.h:192
virtual bool isEmpty() const
Definition: stratunitref.h:47
virtual bool isEmpty() const
Definition: stratunitref.h:128
UnitRef for layers.
Definition: stratunitref.h:240
const IOPar & pars() const
Definition: stratunitref.h:62
Color color() const
Definition: stratunitref.h:59
BufferString code_
Definition: stratunitref.h:156
static const char * sKeyPropsFor()
Definition: stratunitref.h:112
const LeafUnitRef * getLeaf(int i) const
Definition: stratunitref.h:221
Reference data for a stratigraphic unit.
Definition: stratunitref.h:36
virtual bool isUndef() const
Definition: stratunitref.h:48
virtual int nrLeaves() const
Definition: stratunitref.h:216
Type
Definition: stratunitref.h:40
Stratigraphy.
Definition: stratlevel.h:25
ObjectSet< UnitRef > refs_
Definition: stratunitref.h:154
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
const UnitRef * find(const char *urcode) const
Definition: stratunitref.h:147
virtual Type type() const
Definition: stratunitref.h:210
int nrRefs() const
Definition: stratunitref.h:139
Tree of UnitRef's.
Definition: stratreftree.h:27
bool isEmpty(const char *)
virtual void setCode(const char *)
Definition: stratunitref.h:56
Concatenated short keys separated by dots. Used for Object identifiers in the Object Manager...
Definition: compoundkey.h:21
LeavedUnitRef(NodeUnitRef *up, const char *c, const char *d=0)
Definition: stratunitref.h:206
virtual void setCode(const char *c)
Definition: stratunitref.h:133
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 hasLeaves() const
Definition: stratunitref.h:211
virtual void fill(BufferString &bs) const
Definition: stratunitref.h:107
virtual void setDescription(const char *d)
Definition: stratunitref.h:58
FixedString ID()
Definition: keystrs.h:71
virtual bool hasChildren() const
Definition: stratunitref.h:249
UnitRef * find(const char *urcode)
Definition: stratunitref.h:146
void removeAllChildren()
Definition: stratunitref.h:173
Notifier< UnitRef > toBeDeleted
Definition: stratunitref.h:77
IOPar pars_
Definition: stratunitref.h:87
BufferString desc_
Definition: stratunitref.h:85
IOPar & pars()
Definition: stratunitref.h:61
virtual bool hasLeaves() const
Definition: stratunitref.h:191
virtual void fill(BufferString &bs) const
Definition: stratunitref.h:231
virtual Type type() const
Definition: stratunitref.h:248
static const char * sKeyTreeProps()
Definition: stratunitref.h:113
void deepErase(ObjectSet< T > &os)
empty the ObjectSet deleting all objects pointed to.
Definition: objectset.h:122