OpendTect  6.6
horizonrelation.h
Go to the documentation of this file.
1 #pragma once
2 
3 /*+
4 ________________________________________________________________________
5 
6  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
7  Author: Raman K Singh
8  Date: Jul 2010
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 
15 #include "earthmodelmod.h"
16 #include "multiid.h"
17 #include "objectset.h"
18 
19 class FileMultiString;
20 
21 
22 namespace EM
23 {
24 
31 {
32 public:
33 
34  mExpClass(EarthModel) Node
35  {
36  public:
37  Node(const MultiID&);
38 
42 
43  bool hasChild(const Node* descendant) const;
44 
45  void fillPar(IOPar&) const;
47  const RelationTree&);
48 
49  static const char* sKeyChildIDs();
50  static const char* sKeyLastModified();
51  };
52 
53 
54  RelationTree(bool is2d,bool read=true);
56 
57  const RelationTree::Node* getNode(const MultiID&) const;
58  void getParents(int,TypeSet<int>&) const;
59  void removeNode(const MultiID&,bool write=true);
60  void addRelation(const MultiID& id1,
61  const MultiID& id2,bool write=true);
62  // id1 is above id2
63 
64  int findRelation(const MultiID&,
65  const MultiID&) const;
66  /* 0 -> no relation
67  1 -> first horizon is at the top
68  2 -> second horizon is at the top */
69  bool getSorted(const TypeSet<MultiID>& unsortedids,
70  TypeSet<MultiID>& sortedids ) const;
71 
72  bool read() { return read(true); }
73  bool write() const;
74 
75 protected:
76 
78  bool is2d_;
79 
80  int findNode(const MultiID&) const;
81 
82  static const char* sKeyHorizonRelations();
83 
84  bool read(bool removeoutdated);
85 
86 public:
87  static bool clear(bool is2d,bool dowrite=true);
88  static bool sortHorizons(bool is2d,
89  const TypeSet<MultiID>& unsortedids,
90  TypeSet<MultiID>& sortedids);
95  static bool getSorted(bool is2d,TypeSet<MultiID>&);
96  static bool getSorted(bool is2d,BufferStringSet&);
97  static bool update(bool id2d,
98  const TypeSet<MultiID>& sortedids);
99 };
100 
101 } // namespace EM
102 
EM::RelationTree::findRelation
int findRelation(const MultiID &, const MultiID &) const
EM::RelationTree::getNode
const RelationTree::Node * getNode(const MultiID &) const
EM::RelationTree::getParents
void getParents(int, TypeSet< int > &) const
EM::RelationTree::Node::sKeyChildIDs
static const char * sKeyChildIDs()
EM::RelationTree::~RelationTree
~RelationTree()
ObjectSet
Set of pointers to objects.
Definition: commontypes.h:31
BufferStringSet
Set of BufferString objects.
Definition: bufstringset.h:26
EM::RelationTree::Node::hasChild
bool hasChild(const Node *descendant) const
EM::RelationTree::clear
static bool clear(bool is2d, bool dowrite=true)
EM::RelationTree::getSorted
static bool getSorted(bool is2d, TypeSet< MultiID > &)
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
FileMultiString
SeparString with backquotes as separators, use in most ascii files.
Definition: separstr.h:223
EM::RelationTree::read
bool read(bool removeoutdated)
EM::RelationTree::Node::Node
Node(const MultiID &)
EM::RelationTree::Node::id_
MultiID id_
Definition: horizonrelation.h:39
EM::RelationTree::sKeyHorizonRelations
static const char * sKeyHorizonRelations()
EM
Earth Model objects like horizons, faults, fault-sticks and bodies.
Definition: bulk2dhorizonscanner.h:26
EM::RelationTree::RelationTree
RelationTree(bool is2d, bool read=true)
EM::RelationTree::sortHorizons
static bool sortHorizons(bool is2d, const TypeSet< MultiID > &unsortedids, TypeSet< MultiID > &sortedids)
multiid.h
EM::RelationTree::getSorted
bool getSorted(const TypeSet< MultiID > &unsortedids, TypeSet< MultiID > &sortedids) const
EM::RelationTree::read
bool read()
Definition: horizonrelation.h:72
EM::RelationTree::Node::fillChildren
void fillChildren(const FileMultiString &, const RelationTree &)
EM::RelationTree::Node::datestamp_
BufferString datestamp_
Definition: horizonrelation.h:41
EM::RelationTree::Node
Definition: horizonrelation.h:35
EM::RelationTree
A Relation tree where a parent-child relationship means a top-bottom relationship for the horizons.
Definition: horizonrelation.h:31
MultiID
Compound key consisting of ints.
Definition: multiid.h:24
EM::RelationTree::update
static bool update(bool id2d, const TypeSet< MultiID > &sortedids)
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
EM::RelationTree::findNode
int findNode(const MultiID &) const
EM::RelationTree::Node::children_
ObjectSet< const Node > children_
Definition: horizonrelation.h:40
EM::RelationTree::is2d_
bool is2d_
Definition: horizonrelation.h:78
EM::RelationTree::write
bool write() const
EM::RelationTree::Node::fillPar
void fillPar(IOPar &) const
EM::RelationTree::nodes_
ObjectSet< RelationTree::Node > nodes_
Definition: horizonrelation.h:77
EM::RelationTree::addRelation
void addRelation(const MultiID &id1, const MultiID &id2, bool write=true)
EM::RelationTree::removeNode
void removeNode(const MultiID &, bool write=true)
objectset.h
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
EM::RelationTree::Node::sKeyLastModified
static const char * sKeyLastModified()
TypeSet< int >
EM::RelationTree::getSorted
static bool getSorted(bool is2d, BufferStringSet &)

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B.V. 1995-2021