OpendTect  6.6
binid.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: A.H.Bril
8  Date: 21-6-1996
9  Contents: Positions: Inline/crossline and Coordinate
10  RCS: $Id$
11 ________________________________________________________________________
12 
13 -*/
14 
15 #include "basicmod.h"
16 #include "bufstring.h"
17 #include "posidxpair.h"
18 
19 // The following should become separate classes with their own specific
20 // functions at some point in time ...
21 typedef BinID BinIDStep;
22 typedef BinID BinIDDelta; // is base class for:
25 
26 
30 mExpClass(Basic) BinID : public Pos::IdxPair
31 {
32 public:
33 
34  inline BinID() {}
35  inline BinID(IdxType i,IdxType x);
36  inline BinID(const Pos::IdxPair&);
38 
39  inline const BinID& operator+=(const BinIDAbsDelta&);
40  inline const BinID& operator-=(const BinIDAbsDelta&);
41  inline BinID operator+(const BinIDAbsDelta&) const;
42  inline BinID operator-(const BinIDAbsDelta&) const;
43 
44  // BinIDRelDelta operator:
45  inline BinIDAbsDelta operator*(const Pos::Index_Type_Pair&) const;
46  // BinIDAbsDelta operator:
47  inline BinIDRelDelta operator/(const Pos::Index_Type_Pair&) const;
48 
49  // BinID[Abs|Rel]Delta operators:
50  // 'BinID' below should be either BinIDRelDelta or BinIDAbsDelta
51  inline BinID operator*(int) const;
52  inline BinID operator/(int) const;
53  inline BinID operator-() const;
54 
55  inline static BinID fromInt64(od_int64);
56 
57  inline const char* toString(bool is2d=false) const;
58  inline bool fromString(const char*);
59 
60  inline BufferString usrDispStr() const;
61 };
62 
63 
65  : Pos::IdxPair(i,c)
66 {
67 }
68 
69 
70 inline BinID::BinID( const Pos::IdxPair& p )
71  : Pos::IdxPair(p)
72 {
73 }
74 
75 
76 inline const BinID& BinID::operator+=( const BinIDAbsDelta& bid )
77  { inl() += bid.inl(); crl() += bid.crl(); return *this; }
78 inline const BinID& BinID::operator-=( const BinIDAbsDelta& bid )
79  { inl() -= bid.inl(); crl() -= bid.crl(); return *this; }
80 inline BinID BinID::operator+( const BinIDAbsDelta& bid ) const
81  { return BinID( inl()+bid.inl(), crl()+bid.crl() ); }
82 inline BinID BinID::operator-( const BinIDAbsDelta& bid ) const
83 { return BinID( inl()-bid.inl(), crl()-bid.crl() ); }
84 
85 inline BinID BinID::operator-() const
86 { return BinID( -inl(), -crl() ); }
87 
89 { return BinID( first*ip.first, second*ip.second ); }
90 
92 { return BinID( first/ip.first, second/ip.second ); }
93 
94 inline BinID BinID::operator*( int factor ) const
95 { return BinID( inl()*factor, crl()*factor ); }
96 
97 inline BinID BinID::operator/( int denominator ) const
98  { return BinID( inl()/denominator, crl()/denominator ); }
99 
100 
102 {
104  return BinID( p.first, p.second );
105 }
106 
107 
108 inline const char* BinID::toString( bool is2d ) const
109 {
110  return IdxPair::getUsrStr( "", "/", "", is2d );
111 }
112 
113 
114 inline bool BinID::fromString( const char* str )
115 {
116  return IdxPair::parseUsrStr( str, "", "/", "" );
117 }
118 
119 
121 {
122  BufferString ret;
123  ret.set( inl() ).add( "/" ).add( crl() );
124  return ret;
125 }
BufferString::add
BufferString & add(char)
Pos::IdxPair::crl
IdxType & crl()
Definition: posidxpair.h:47
BinID::usrDispStr
BufferString usrDispStr() const
Definition: binid.h:120
BinID::toString
const char * toString(bool is2d=false) const
Definition: binid.h:108
Pos
Position.
Definition: commontypes.h:78
BinID::operator-=
const BinID & operator-=(const BinIDAbsDelta &)
Definition: binid.h:78
BinIDStep
BinID BinIDStep
Definition: binid.h:21
od_int64
#define od_int64
Definition: plftypes.h:35
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
BinID::operator-
BinID operator-() const
Definition: binid.h:85
IdxPair::IdxType
Index_Type IdxType
Definition: idxpair.h:33
IdxPair::getUsrStr
const char * getUsrStr(const char *prefx, const char *sep, const char *postfx, bool only2nd) const
bufstring.h
BufferString::set
BufferString & set(const char *)
Definition: bufstring.h:246
BinID
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:31
IdxPair
A pair of numbers; base class for BinID et al.
Definition: idxpair.h:30
BinIDAbsDelta
BinID BinIDAbsDelta
Definition: binid.h:23
BinID::BinID
BinID()
Definition: binid.h:34
posidxpair.h
BinID::operator+=
const BinID & operator+=(const BinIDAbsDelta &)
Definition: binid.h:76
BinID::fromInt64
static BinID fromInt64(int64_t)
Definition: binid.h:101
BinID::operator/
BinIDRelDelta operator/(const Pos::Index_Type_Pair &) const
Definition: binid.h:91
operator*
Coord3 operator*(double f, const Coord3 &b)
Definition: coord.h:129
BinIDDelta
BinID BinIDDelta
Definition: binid.h:22
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
BinID::operator*
BinIDAbsDelta operator*(const Pos::Index_Type_Pair &) const
Definition: binid.h:88
Pos::Index_Type_Pair
::Index_Type_Pair Index_Type_Pair
Definition: posidxpair.h:21
operator-
int operator-(const DateInfo &di1, const DateInfo &di2)
Definition: dateinfo.h:128
Pos::IdxPair::fromInt64
static IdxPair fromInt64(int64_t)
Definition: posidxpair.h:94
BinIDRelDelta
BinID BinIDRelDelta
Definition: binid.h:24
Pos::IdxPair::inl
IdxType & inl()
Definition: posidxpair.h:42
IdxPair::parseUsrStr
bool parseUsrStr(const char *str, const char *prefx, const char *sep, const char *postfx)
Pos::IdxPair
IdxPair with position indices; base class for BinID et al.
Definition: posidxpair.h:29
BinID::fromString
bool fromString(const char *)
Definition: binid.h:114
BinID::operator+
BinID operator+(const BinIDAbsDelta &) const
Definition: binid.h:80
Seis::Blocks::IdxType
short IdxType
Definition: seisblocks.h:40
toString
BufferString toString(const BufferStringSet &bss)
Definition: bufstringset.h:156

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