OpendTect  6.6
flatposdata.h
Go to the documentation of this file.
1 #pragma once
2 /*+
3 ________________________________________________________________________
4 
5  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
6  Author: A.H. Bril
7  Date: Feb 2007
8  RCS: $Id$
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "generalmod.h"
14 #include "ranges.h"
15 #include "indexinfo.h"
16 
26 {
27 public:
29  : x1rg_(0,0,1)
30  , x2rg_(0,0,1)
31  , x1pos_(0)
32  , x1offs_(0) {}
33  FlatPosData( const FlatPosData& fpd )
34  : x1pos_(0) { *this = fpd; }
35  ~FlatPosData() { delete [] x1pos_; }
36  FlatPosData& operator =(const FlatPosData&);
37  FlatPosData* clone() { return new FlatPosData(*this); }
38 
39  void setRange(bool forx1,
40  const StepInterval<double>&);
41  inline const StepInterval<double>& range( bool forx1 ) const
42  { return forx1 ? x1rg_ : x2rg_; }
43  void setX1Pos(float*,int sz,double offs);
47 
48  inline int nrPts( bool forx1 ) const
49  { return range(forx1).nrSteps() + 1; }
50  float width( bool forx1 ) const
51  { return ( float )( range(forx1).width() ); }
52  IndexInfo indexInfo(bool forx1,double pos) const;
53 
54  double position(bool forx1,int) const;
56  void getPositions(bool forx1,TypeSet<float>&) const;
58  float* getPositions(bool forx1) const;
61  inline double offset( bool forx1 ) const
62  { return forx1 ? x1offs_ : 0; }
64 
65  inline bool isIrregular() const
66  { return x1pos_ && nrPts(true) > 2; }
67  inline void setRegular()
68  { setRange( true, range(true) ); }
69 
70 protected:
71 
74 
75  float* x1pos_;
76  double x1offs_;
77 
78  inline StepInterval<double>& rg( bool forx1 )
79  { return forx1 ? x1rg_ : x2rg_; }
80 };
81 
82 
FlatPosData::clone
FlatPosData * clone()
Definition: flatposdata.h:37
FlatPosData::getPositions
void getPositions(bool forx1, TypeSet< float > &) const
With offset applied.
FlatPosData::setX1Pos
void setX1Pos(float *, int sz, double offs)
indexinfo.h
FlatPosData::~FlatPosData
~FlatPosData()
Definition: flatposdata.h:35
FlatPosData::position
double position(bool forx1, int) const
With offset applied.
FlatPosData::indexInfo
IndexInfo indexInfo(bool forx1, double pos) const
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
FlatPosData::x1pos_
float * x1pos_
Definition: flatposdata.h:75
IndexInfo
Info on (floating-point) position in an array or StepInterval.
Definition: indexinfo.h:23
FlatPosData::offset
double offset(bool forx1) const
For use with getPositions.
Definition: flatposdata.h:61
FlatPosData::x1offs_
double x1offs_
Definition: flatposdata.h:76
FlatPosData::isIrregular
bool isIrregular() const
Definition: flatposdata.h:65
FlatPosData::nrPts
int nrPts(bool forx1) const
Definition: flatposdata.h:48
FlatPosData::setRange
void setRange(bool forx1, const StepInterval< double > &)
FlatPosData
Positioning of flat 'bulk' data. Only the 'x1' axis can be irregular.
Definition: flatposdata.h:26
StepInterval< double >
FlatPosData::range
const StepInterval< double > & range(bool forx1) const
Definition: flatposdata.h:41
FlatPosData::x2rg_
StepInterval< double > x2rg_
Definition: flatposdata.h:73
FlatPosData::setRegular
void setRegular()
Definition: flatposdata.h:67
FlatPosData::rg
StepInterval< double > & rg(bool forx1)
Definition: flatposdata.h:78
FlatPosData::x1rg_
StepInterval< double > x1rg_
Definition: flatposdata.h:72
ranges.h
FlatPosData::FlatPosData
FlatPosData()
Definition: flatposdata.h:28
FlatPosData::FlatPosData
FlatPosData(const FlatPosData &fpd)
Definition: flatposdata.h:33
FlatPosData::getPositions
float * getPositions(bool forx1) const
FlatPosData::width
float width(bool forx1) const
Definition: flatposdata.h:50
TypeSet< float >

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