OpendTect-6_4  6.4
horizon2dline.h
Go to the documentation of this file.
1 #ifndef horizon2dline_h
2 #define horizon2dline_h
3 
4 /*+
5 ________________________________________________________________________
6 (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
7 Author: K. Tingdahl
8 Date: March 2006
9 RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "geometrymod.h"
15 #include "rowcolsurface.h"
16 #include "samplingdata.h"
17 #include "posinfo2dsurv.h"
18 
19 class Plane3;
20 class RowCol;
21 
22 namespace PosInfo { class Line2DData; }
23 
24 namespace Geometry
25 {
26 
31 {
32 public:
33  Horizon2DLine();
34  Horizon2DLine(int lineid,const TypeSet<Coord>&,
35  int start,int step);
37  ~Horizon2DLine();
38 
39  Horizon2DLine* clone() const;
40  bool isEmpty() const { return rows_.isEmpty(); }
41 
42  bool addRow(Pos::GeomID geomid,const TypeSet<Coord>&,
43  int start,int step);
45  bool addUdfRow(Pos::GeomID geomid,int start,int stop,
46  int step);
49  void setRow(Pos::GeomID geomid,const TypeSet<Coord>&,
50  int start,int step);
51  bool reassignRow(Pos::GeomID from,Pos::GeomID to);
52 
53  void syncRow(Pos::GeomID Geomid,
54  const PosInfo::Line2DData&);
55 
56  void removeRow(Pos::GeomID Geomid);
57 
58  void removeCols(Pos::GeomID Geomid,int start,int stop);
59 
60  int getRowIndex(Pos::GeomID Geomid) const;
61 
62  StepInterval<int> rowRange() const;
63  StepInterval<int> colRange(int rowindex) const;
64  StepInterval<int> colRangeForGeomID(Pos::GeomID geomid) const;
65  virtual StepInterval<int> colRange() const
66  { return RowColSurface::colRange(); }
67  Interval<float> zRange(Pos::GeomID geomid) const;
68 
69  void geometry(Pos::GeomID geomid,
70  PosInfo::Line2DData&)const;
71 
72  Coord3 getKnot(const RowCol& rc) const; // rc.row() = rowindex
73  bool setKnot(const RowCol&,const Coord3&);
74 
75  bool isKnotDefined(const RowCol&) const;
76  Coord3 computePosition(Pos::GeomID geomid,int trcnr) const;
77 
78  virtual void trimUndefParts();
79  bool hasSupport(const RowCol&) const;
80  void checkSupport(bool yn) { checksupport_ = yn; }
81  bool checksSupport() const { return checksupport_; }
82 
83  bool setPosition(GeomPosID pid,const Coord3& pos);
84  Coord3 getPosition(GeomPosID pid) const;
85  bool isDefined(GeomPosID pid) const;
86 
87 protected:
88 
89  int colIndex(int rowidx,int colid) const;
90  int rowIndex(int rowid) const;
91 
93 
97 };
98 
99 } // namespace Geometry
100 
101 #endif
#define mExpClass(module)
Definition: commondefs.h:160
T to(const F &fr)
Definition: convert.h:33
TypeSet< SamplingData< int > > colsampling_
Definition: horizon2dline.h:95
bool checksupport_
Definition: horizon2dline.h:92
Definition: horizon2dline.h:30
Position info for a 2D line.
Definition: posinfo2d.h:65
bool isEmpty() const
Definition: horizon2dline.h:40
A Plane3 is a plane in space, with the equation: Ax + By + Cz + D = 0.
Definition: trigonometry.h:484
od_int64 GeomPosID
Definition: geomelement.h:21
Set of pointers to objects.
Definition: commontypes.h:32
TypeSet< Pos::GeomID > geomids_
Definition: horizon2dline.h:96
virtual StepInterval< int > colRange() const
Definition: horizon2dline.h:65
Definition: rowcolsurface.h:26
ObjectSet< TypeSet< Coord3 > > rows_
Definition: horizon2dline.h:94
A cartesian coordinate in 3D space.
Definition: coord.h:72
Index_Type GeomID
Definition: commontypes.h:52
IdxPair used for its row() and col().
Definition: rowcol.h:25
Position info, often segmented.
Definition: posinfo.h:40
bool checksSupport() const
Definition: horizon2dline.h:81
void checkSupport(bool yn)
Definition: horizon2dline.h:80
Definition: arraytesselator.h:21

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