OpendTect  6.3
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 ________________________________________________________________________
11 
12 -*/
13 
14 #include "basicmod.h"
15 #include "posidxpair.h"
16 
17 // The following should become separate classes with their own specific
18 // functions at some point in time ...
19 typedef BinID BinIDStep;
20 typedef BinID BinIDDelta; // is base class for:
23 
24 
28 mExpClass(Basic) BinID : public Pos::IdxPair
29 {
30 public:
31 
32  inline BinID() {}
33  inline BinID(IdxType i,IdxType x);
34  inline BinID(const Pos::IdxPair&);
36 
37  inline const BinID& operator+=(const BinIDAbsDelta&);
38  inline const BinID& operator-=(const BinIDAbsDelta&);
39  inline BinID operator+(const BinIDAbsDelta&) const;
40  inline BinID operator-(const BinIDAbsDelta&) const;
41 
42  // BinIDRelDelta operator:
43  inline BinIDAbsDelta operator*(const Pos::Index_Type_Pair&) const;
44  // BinIDAbsDelta operator:
45  inline BinIDRelDelta operator/(const Pos::Index_Type_Pair&) const;
46 
47  // BinID[Abs|Rel]Delta operators:
48  // 'BinID' below should be either BinIDRelDelta or BinIDAbsDelta
49  inline BinID operator*(int) const;
50  inline BinID operator/(int) const;
51  inline BinID operator-() const;
52 
53  inline static BinID fromInt64(od_int64);
54 
55  inline const char* toString(bool is2d=false) const;
56  inline bool fromString(const char*);
57 
58 };
59 
60 
62  : Pos::IdxPair(i,c)
63 {
64 }
65 
66 
67 inline BinID::BinID( const Pos::IdxPair& p )
68  : Pos::IdxPair(p)
69 {
70 }
71 
72 
73 inline const BinID& BinID::operator+=( const BinIDAbsDelta& bid )
74  { inl() += bid.inl(); crl() += bid.crl(); return *this; }
75 inline const BinID& BinID::operator-=( const BinIDAbsDelta& bid )
76  { inl() -= bid.inl(); crl() -= bid.crl(); return *this; }
77 inline BinID BinID::operator+( const BinIDAbsDelta& bid ) const
78  { return BinID( inl()+bid.inl(), crl()+bid.crl() ); }
79 inline BinID BinID::operator-( const BinIDAbsDelta& bid ) const
80 { return BinID( inl()-bid.inl(), crl()-bid.crl() ); }
81 
82 inline BinID BinID::operator-() const
83 { return BinID( -inl(), -crl() ); }
84 
86 { return BinID( first*ip.first, second*ip.second ); }
87 
89 { return BinID( first/ip.first, second/ip.second ); }
90 
91 inline BinID BinID::operator*( int factor ) const
92 { return BinID( inl()*factor, crl()*factor ); }
93 
94 inline BinID BinID::operator/( int denominator ) const
95  { return BinID( inl()/denominator, crl()/denominator ); }
96 
97 
99 {
101  return BinID( p.first, p.second );
102 }
103 
104 
105 inline const char* BinID::toString( bool is2d ) const
106 {
107  return IdxPair::getUsrStr( "", "/", "", is2d );
108 }
109 
110 
111 inline bool BinID::fromString( const char* str )
112 {
113  return IdxPair::parseUsrStr( str, "", "/", "" );
114 }
#define mExpClass(module)
Definition: commondefs.h:157
bool fromString(const char *)
Definition: binid.h:111
int operator-(const DateInfo &di1, const DateInfo &di2)
Definition: dateinfo.h:127
BinID operator-() const
Definition: binid.h:82
const BinID & operator-=(const BinIDAbsDelta &)
Definition: binid.h:75
const char * getUsrStr(const char *prefx, const char *sep, const char *postfx, bool only2nd) const
BinID operator+(const BinIDAbsDelta &) const
Definition: binid.h:77
#define od_int64
Definition: plftypes.h:34
IdxType & inl()
Definition: posidxpair.h:41
IdxPair with position indices; base class for BinID et al.
Definition: posidxpair.h:27
::Index_Type_Pair Index_Type_Pair
Definition: posidxpair.h:20
BinID BinIDDelta
Definition: binid.h:20
BinIDAbsDelta operator*(const Pos::Index_Type_Pair &) const
Definition: binid.h:85
BinID BinIDAbsDelta
Definition: binid.h:21
static IdxPair fromInt64(int64_t)
Definition: posidxpair.h:93
const BinID & operator+=(const BinIDAbsDelta &)
Definition: binid.h:73
const char * toString(bool is2d=false) const
Definition: binid.h:105
BinID BinIDRelDelta
Definition: binid.h:22
Position.
Definition: commontypes.h:38
BinID()
Definition: binid.h:32
BinIDRelDelta operator/(const Pos::Index_Type_Pair &) const
Definition: binid.h:88
BufferString toString(const DBKey &ky)
Definition: dbkey.h:115
IdxType & crl()
Definition: posidxpair.h:46
Index_Type IdxType
Definition: idxpair.h:32
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:28
static BinID fromInt64(int64_t)
Definition: binid.h:98
Point2D< T > operator*(int f, const Point2D< T > &b)
Definition: geometry.h:86
A pair of numbers; base class for BinID et al.
Definition: idxpair.h:28
BinID BinIDStep
Definition: binid.h:19
bool parseUsrStr(const char *str, const char *prefx, const char *sep, const char *postfx)

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