OpendTect  6.6
survgeom2d.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 "survgeom.h"
17 
18 namespace PosInfo { class Line2DData; }
19 
20 
21 namespace Survey
22 {
23 
26 mExpClass(Basic) Geometry2D : public Geometry
27 {
28 public:
29  Geometry2D(const char* lnm);
32 
33  virtual bool is2D() const { return true; }
34  virtual const char* getName() const;
35 
36  void add(const Coord&,int trcnr,float spnr);
37  void add(double x,double y,int trcnr,float spnr);
38  int size() const;
39  bool isEmpty() const;
40  void setEmpty();
41  bool getPosByTrcNr(int trcnr,Coord&,
42  float& spnr) const;
43  bool getPosBySPNr(float spnr,Coord&,
44  int& trcnr) const;
45  bool getPosByCoord(const Coord&,
46  int& trc,float& sp) const;
47 
48  virtual Coord toCoord(int linenr,int tracenr) const;
49  Coord toCoord(int tracenr) const;
50  virtual TrcKey nearestTrace(const Coord&,float* dist) const;
51 
52  virtual bool includes(int linenr,int tracenr) const;
53 
54  PosInfo::Line2DData& dataAdmin() { return data_; }
56  void touch();
57  const PosInfo::Line2DData& data() const { return data_; }
58  TypeSet<float>& spnrs() { return spnrs_; }
59  const TypeSet<float>& spnrs() const { return spnrs_; }
60 
62 
63  static BufferString makeUniqueLineName(const char* lsnm,
64  const char* lnm);
65  float averageTrcDist() const;
66  void setAverageTrcDist(float);
67  float lineLength() const;
68  void setLineLength(float);
69  RelationType compare(const Geometry&,bool usezrg) const;
70 
71  Geometry2D* as2D() { return this; }
72 
73 protected:
75 
78  mutable float trcdist_;
79  mutable float linelength_;
81 };
82 
83 } // namespace Survey
84 
Survey::Geometry2D::Geometry2D
Geometry2D(const char *lnm)
Survey::Geometry2D::spnrs
const TypeSet< float > & spnrs() const
Definition: survgeom2d.h:59
Survey::Geometry2D::lock_
Threads::Lock lock_
Definition: survgeom2d.h:80
Survey::Geometry2D::size
int size() const
Survey::Geometry2D::toCoord
virtual Coord toCoord(int linenr, int tracenr) const
Survey::Geometry2D::as2D
Geometry2D * as2D()
Definition: survgeom2d.h:71
Survey::Geometry2D::Geometry2D
Geometry2D(PosInfo::Line2DData *)
Line2DData becomes mine.
Survey::Geometry2D::~Geometry2D
~Geometry2D()
PosInfo::Line2DData
Position info for a 2D line.
Definition: posinfo2d.h:65
Survey::Geometry2D::setLineLength
void setLineLength(float)
Survey::Geometry2D::data
const PosInfo::Line2DData & data() const
Definition: survgeom2d.h:57
Geometry
Definition: arraytesselator.h:21
Survey::Geometry::RelationType
RelationType
Definition: survgeom.h:44
Survey::Geometry2D::getPosByCoord
bool getPosByCoord(const Coord &, int &trc, float &sp) const
Survey::Geometry2D::averageTrcDist
float averageTrcDist() const
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
Survey::Geometry2D::isEmpty
bool isEmpty() const
Survey::Geometry2D::getPosBySPNr
bool getPosBySPNr(float spnr, Coord &, int &trcnr) const
Survey::Geometry2D::setAverageTrcDist
void setAverageTrcDist(float)
Survey::Geometry2D::data_
PosInfo::Line2DData & data_
Definition: survgeom2d.h:76
Survey::Geometry2D::touch
void touch()
Survey::Geometry2D::add
void add(double x, double y, int trcnr, float spnr)
StepInterval< float >
Coord
A cartesian coordinate in 2D space.
Definition: coord.h:25
Survey::Geometry2D::compare
RelationType compare(const Geometry &, bool usezrg) const
Survey::Geometry2D::setEmpty
void setEmpty()
Survey
Definition: surveydisklocation.h:18
Survey::Geometry2D::spnrs
TypeSet< float > & spnrs()
Definition: survgeom2d.h:58
Survey::Geometry2D::spnrs_
TypeSet< float > spnrs_
Definition: survgeom2d.h:77
Survey::Geometry2D::toCoord
Coord toCoord(int tracenr) const
Survey::Geometry2D::nearestTrace
virtual TrcKey nearestTrace(const Coord &, float *dist) const
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
TrcKey
Represents a unique trace position in one of the surveys that OpendTect is managing.
Definition: trckey.h:28
Survey::Geometry2D::getName
virtual const char * getName() const
Survey::Geometry2D::add
void add(const Coord &, int trcnr, float spnr)
Survey::Geometry2D::trcdist_
float trcdist_
Definition: survgeom2d.h:78
PosInfo
Position info, often segmented.
Definition: posinfo.h:40
Survey::Geometry2D::is2D
virtual bool is2D() const
Definition: survgeom2d.h:33
Survey::Geometry2D::lineLength
float lineLength() const
Survey::Geometry2D::linelength_
float linelength_
Definition: survgeom2d.h:79
Survey::Geometry2D::makeUniqueLineName
static BufferString makeUniqueLineName(const char *lsnm, const char *lnm)
Survey::Geometry2D
Geometry of a 2D Line.
Definition: survgeom2d.h:27
Survey::Geometry2D::getPosByTrcNr
bool getPosByTrcNr(int trcnr, Coord &, float &spnr) const
Survey::Geometry2D::dataAdmin
PosInfo::Line2DData & dataAdmin()
If data is changed, call touch afterwards.
Definition: survgeom2d.h:54
survgeom.h
Survey::Geometry2D::zRange
StepInterval< float > zRange() const
Threads::Lock
A lock of a type that (hopefully) suits your needs. To use it, you need the Locker class.
Definition: threadlock.h:53
Survey::Geometry2D::includes
virtual bool includes(int linenr, int tracenr) const
TypeSet< float >

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