OpendTect  6.6
posinfo2dsurv.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: Bert
8  Date: Aug 2010
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 
15 #include "basicmod.h"
16 #include "posinfo2d.h"
17 #include "separstr.h"
18 #include "survgeom.h"
19 #include "threadlock.h"
20 #include "callback.h"
21 #include "idxpair.h"
22 
23 class FilePath;
24 class BufferStringSet;
25 namespace PosInfo { class Survey2D; }
26 
27 
31 
32 
33 namespace PosInfo
34 {
35 
38 inline mGlobal(Basic) Survey2D& POS2DAdmin()
39 {
40  return const_cast<Survey2D&>( S2DPOS() );
41 }
42 
43 
44 
48 mExpClass(Basic) Line2DKey : public IdxPair
49 {
50 public:
51 
52  Line2DKey( int lsid=-1, int lineid=-1 )
53  : IdxPair(lsid,lineid) {}
54 
55  inline bool operator ==( const Line2DKey& oth ) const
56  { return IdxPair::operator==(oth); }
57  inline bool operator !=( const Line2DKey& oth ) const
58  { return !( operator==(oth) ); }
59 
60  inline IdxType& lsID() { return first; }
61  inline IdxType lsID() const { return first; }
62  inline IdxType& lineID() { return second; }
63  inline IdxType lineID() const { return second; }
64 
65  bool isOK() const;
66 
67  const char* toString() const;
68  bool fromString(const char*);
69 
70  bool haveLSID() const;
71  bool haveLineID() const;
72 
73  bool isUdf() const;
74  static const Line2DKey& udf();
75 
76 };
77 
78 typedef Line2DKey GeomID;
79 
80 
81 
84 mExpClass(Basic) Survey2D : public CallBacker
85 {
86 public:
87 
89 
90  static void initClass();
91  bool isEmpty() const { return lsnm_.isEmpty(); }
92 
93  //using names
94  bool hasLineSet(const char*) const;
95  bool hasLine(const char* lnm,const char* lsnm=0) const;
96  void getLineSets( BufferStringSet& nms ) const
97  { getKeys(lsindex_,nms); }
98  void getLines(BufferStringSet&,const char* lsnm=0) const;
99 
100  const char* curLineSet() const { return lsnm_.buf(); }
101  void setCurLineSet(const char*) const;
102 
103  bool getGeometry(Line2DData&) const;
104  bool setGeometry(const Line2DData&);
105 
106  void removeLine(const char*);
107  void removeLineSet(const char*);
108  void renameLineSet(const char*,const char*);
109 
110  // using ids
111  const char* getLineSet(IdxType lsid) const;
112  const char* getLineName(IdxType lineid) const;
113  IdxType getLineSetID(const char*) const;
114  IdxType getLineID(const char*) const;
115  bool hasLineSet(IdxType lsid) const;
116  bool hasLine(IdxType lineid,IdxType lsid=-1) const;
118  void getLines(BufferStringSet&,IdxType lsid) const;
119 
121  void setCurLineSet(IdxType lsid) const;
122 
123  bool getGeometry(IdxType lid,Line2DData&) const;
124  bool getGeometry(const Line2DKey&,Line2DData&) const;
126 
127  void renameLine(const char*oldnm,const char*newnm);
128  void removeLine(IdxType lid);
129  void removeLineSet(IdxType lsid);
130 
131  Line2DKey getLine2DKey(const char* lsnm,const char* linenm) const;
132  const char* getLSFileNm(const char* lsnm) const;
133  const char* getLineFileNm(const char* lsnm,const char* lnm) const;
134 
135  bool readDistBetwTrcsStats(const char* linemn,float& max,
136  float& median) const;
137 
138 protected:
139 
142 
143 private:
144 
152 
153  void readIdxFiles();
154  bool isIdxFileNew(const char* lsnm=0) const;
155  BufferString getIdxTimeStamp(const char* lsnm=0) const;
156  static void readIdxFile(const char*,IOPar&);
157  void writeIdxFile(bool) const;
158  void getKeys(const IOPar&,BufferStringSet&) const;
159  void getIDs(const IOPar&,TypeSet<IdxType>&) const;
161  const IOPar&) const;
162  int getLineSetIdx(IdxType lsid) const;
163  int getLineIdx(IdxType lineid) const;
164 
165  mGlobal(Basic) friend const Survey2D& ::S2DPOS();
166 
168 
169 public:
170 
172 
173 };
174 
175 
176 } // namespace PosInfo
177 
PosInfo::Line2DKey::haveLSID
bool haveLSID() const
PosInfo::Line2DKey::Line2DKey
Line2DKey(int lsid=-1, int lineid=-1)
Definition: posinfo2dsurv.h:52
PosInfo::Line2DKey::udf
static const Line2DKey & udf()
PosInfo::Survey2D::IdxType
Line2DKey::IdxType IdxType
Definition: posinfo2dsurv.h:88
PosInfo::Survey2D::getIDs
void getIDs(const IOPar &, TypeSet< IdxType > &) const
PosInfo::Survey2D::getNewID
IdxType getNewID(IOPar &)
PosInfo::Survey2D::getLines
void getLines(BufferStringSet &, IdxType lsid) const
PosInfo::Survey2D::getGeometry
bool getGeometry(Line2DData &) const
using lineName()
PosInfo::Survey2D::removeLine
void removeLine(const char *)
PosInfo::Survey2D::lsfp_
FilePath & lsfp_
Definition: posinfo2dsurv.h:146
PosInfo::Survey2D::renameLineSet
void renameLineSet(const char *, const char *)
PosInfo::Line2DKey::toString
const char * toString() const
PosInfo::Line2DKey::lineID
IdxType & lineID()
Definition: posinfo2dsurv.h:62
mGlobal
#define mGlobal(module)
Definition: commondefs.h:180
PosInfo::Line2DData
Position info for a 2D line.
Definition: posinfo2d.h:65
PosInfo::GeomID
Line2DKey GeomID
Definition: posinfo2dsurv.h:78
BufferStringSet
Set of BufferString objects.
Definition: bufstringset.h:26
PosInfo::Survey2D::hasLine
bool hasLine(const char *lnm, const char *lsnm=0) const
idxpair.h
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
FilePath
File pathname tools.
Definition: filepath.h:34
PosInfo::Line2DKey::isOK
bool isOK() const
true if a line exist with this key
PosInfo::Survey2D::updateMaxID
void updateMaxID(IdxType, IOPar &)
PosInfo::Line2DKey
Key holding ID for both lineset and line.
Definition: posinfo2dsurv.h:49
PosInfo::Survey2D::getLines
void getLines(BufferStringSet &, const char *lsnm=0) const
PosInfo::Line2DKey::isUdf
bool isUdf() const
PosInfo::Survey2D::readDistBetwTrcsStats
bool readDistBetwTrcsStats(const char *linemn, float &max, float &median) const
PosInfo::Line2DKey::lsID
IdxType lsID() const
Definition: posinfo2dsurv.h:61
PosInfo::POS2DAdmin
Survey2D & POS2DAdmin()
Your R/W access to the 2D line geometry database.
Definition: posinfo2dsurv.h:38
callback.h
CallBacker
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:185
PosInfo::Survey2D::getIdxTimeStamp
BufferString getIdxTimeStamp(const char *lsnm=0) const
operator==
bool operator==(const ArrayNDInfo &a1, const ArrayNDInfo &a2)
Definition: arrayndinfo.h:81
IdxPair::IdxType
Index_Type IdxType
Definition: idxpair.h:33
PosInfo::Survey2D::getLine2DKey
Line2DKey getLine2DKey(const char *lsnm, const char *linenm) const
PosInfo::Line2DKey::haveLineID
bool haveLineID() const
PosInfo::Survey2D::getLineIdx
int getLineIdx(IdxType lineid) const
PosInfo::Survey2D::getGeometry
bool getGeometry(IdxType lid, Line2DData &) const
PosInfo::Survey2D::getLineSetID
IdxType getLineSetID(const char *) const
S2DPOS
const PosInfo::Survey2D & S2DPOS()
Your read-access to the 2D line geometry database.
posinfo2d.h
IdxPair
A pair of numbers; base class for BinID et al.
Definition: idxpair.h:30
PosInfo::Survey2D::isIdxFileNew
bool isIdxFileNew(const char *lsnm=0) const
PosInfo::Survey2D::lsindex_
IOPar & lsindex_
Definition: posinfo2dsurv.h:148
PosInfo::Survey2D::setGeometry
bool setGeometry(const Line2DData &)
PosInfo::Survey2D::Survey2D
Survey2D()
PosInfo::Survey2D::renameLine
void renameLine(const char *oldnm, const char *newnm)
operator!=
bool operator!=(const ArrayNDInfo &a1, const ArrayNDInfo &a2)
Definition: arrayndinfo.h:90
PosInfo::Survey2D::removeLineSet
void removeLineSet(const char *)
PosInfo::Survey2D::hasLine
bool hasLine(IdxType lineid, IdxType lsid=-1) const
PosInfo::Survey2D::hasLineSet
bool hasLineSet(const char *) const
PosInfo::Survey2D::curLineSetID
IdxType curLineSetID() const
PosInfo::Survey2D::getLineSets
void getLineSets(BufferStringSet &nms) const
Definition: posinfo2dsurv.h:96
PosInfo::Survey2D::setCurLineSet
void setCurLineSet(const char *) const
PosInfo::Survey2D::curlstimestr_
BufferString curlstimestr_
Definition: posinfo2dsurv.h:150
PosInfo::Survey2D::basefp_
FilePath & basefp_
Definition: posinfo2dsurv.h:145
PosInfo::Survey2D::getLineSet
const char * getLineSet(IdxType lsid) const
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
PosInfo::Line2DKey::lineID
IdxType lineID() const
Definition: posinfo2dsurv.h:63
PosInfo::Survey2D::getLineFileNm
const char * getLineFileNm(const char *lsnm, const char *lnm) const
PosInfo::Survey2D::removeLineSet
void removeLineSet(IdxType lsid)
PosInfo::Survey2D::getNewStorageName
BufferString getNewStorageName(const char *, const FilePath &, const IOPar &) const
PosInfo::Survey2D::getGeometry
bool getGeometry(const Line2DKey &, Line2DData &) const
thread safe
PosInfo::Survey2D::getLSFileNm
const char * getLSFileNm(const char *lsnm) const
PosInfo::Survey2D::getLineSetIdx
int getLineSetIdx(IdxType lsid) const
PosInfo::Line2DKey::fromString
bool fromString(const char *)
PosInfo::Survey2D::lsnm_
BufferString lsnm_
Definition: posinfo2dsurv.h:147
PosInfo
Position info, often segmented.
Definition: posinfo.h:40
PosInfo::Survey2D::initClass
static void initClass()
PosInfo::Survey2D::writeIdxFile
void writeIdxFile(bool) const
threadlock.h
PosInfo::Survey2D::getKeys
void getKeys(const IOPar &, BufferStringSet &) const
IdxPair::operator==
bool operator==(const IdxPair &) const
Definition: idxpair.h:59
PosInfo::Survey2D::setCurLineSet
void setCurLineSet(IdxType lsid) const
PosInfo::Survey2D::readIdxFile
static void readIdxFile(const char *, IOPar &)
PosInfo::Line2DKey::lsID
IdxType & lsID()
Definition: posinfo2dsurv.h:60
PosInfo::Survey2D::getLineName
const char * getLineName(IdxType lineid) const
PosInfo::Survey2D::isEmpty
bool isEmpty() const
Definition: posinfo2dsurv.h:91
PosInfo::Survey2D::~Survey2D
~Survey2D()
PosInfo::Survey2D::readIdxFiles
void readIdxFiles()
PosInfo::Survey2D::lineindex_
IOPar & lineindex_
Definition: posinfo2dsurv.h:149
PosInfo::Survey2D
Repository for 2D line geometries.
Definition: posinfo2dsurv.h:85
survgeom.h
PosInfo::Survey2D::curLineSet
const char * curLineSet() const
Definition: posinfo2dsurv.h:100
PosInfo::Survey2D::removeLine
void removeLine(IdxType lid)
Threads::Lock
A lock of a type that (hopefully) suits your needs. To use it, you need the Locker class.
Definition: threadlock.h:53
PosInfo::Survey2D::getLineIDs
void getLineIDs(TypeSet< IdxType > &, IdxType lsid) const
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
PosInfo::Survey2D::lock_
Threads::Lock lock_
Definition: posinfo2dsurv.h:151
PosInfo::Survey2D::hasLineSet
bool hasLineSet(IdxType lsid) const
PosInfo::Survey2D::getLineID
IdxType getLineID(const char *) const
TypeSet< IdxType >
separstr.h

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