OpendTect  6.3
horizon2dline.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: K. Tingdahl
7 Date: March 2006
8 ________________________________________________________________________
9 
10 -*/
11 
12 #include "geometrymod.h"
13 #include "rowcolsurface.h"
14 #include "samplingdata.h"
15 #include "posinfo2dsurv.h"
16 
17 class Plane3;
18 class RowCol;
19 
20 namespace PosInfo { class Line2DData; }
21 
22 namespace Geometry
23 {
24 
29 {
30 public:
31  Horizon2DLine();
32  Horizon2DLine(int lineid,const TypeSet<Coord>&,
33  int start,int step);
35  ~Horizon2DLine();
36 
37  Horizon2DLine* clone() const;
38  bool isEmpty() const { return rows_.isEmpty(); }
39 
40  bool addRow(Pos::GeomID geomid,const TypeSet<Coord>&,
41  int start,int step);
43  bool addUdfRow(Pos::GeomID geomid,int start,int stop,
44  int step);
47  void setRow(Pos::GeomID geomid,const TypeSet<Coord>&,
48  int start,int step);
49  bool reassignRow(Pos::GeomID from,Pos::GeomID to);
50 
51  void syncRow(Pos::GeomID Geomid,
52  const PosInfo::Line2DData&);
53 
54  void removeRow(Pos::GeomID Geomid);
55 
56  void removeCols(Pos::GeomID Geomid,int start,int stop);
57 
58  int getRowIndex(Pos::GeomID Geomid) const;
59 
60  StepInterval<int> rowRange() const;
61  StepInterval<int> colRange(int rowindex) const;
62  StepInterval<int> colRangeForGeomID(Pos::GeomID geomid) const;
63  virtual StepInterval<int> colRange() const
64  { return RowColSurface::colRange(); }
65  Interval<float> zRange(Pos::GeomID geomid) const;
66 
67  void geometry(Pos::GeomID geomid,
68  PosInfo::Line2DData&)const;
69 
70  Coord3 getKnot(const RowCol& rc) const; // rc.row() = rowindex
71  bool setKnot(const RowCol&,const Coord3&);
72 
73  bool isKnotDefined(const RowCol&) const;
74  Coord3 computePosition(Pos::GeomID geomid,int trcnr) const;
75 
76  virtual void trimUndefParts();
77  bool hasSupport(const RowCol&) const;
78  void checkSupport(bool yn) { checksupport_ = yn; }
79  bool checksSupport() const { return checksupport_; }
80 
81  bool setPosition(GeomPosID pid,const Coord3& pos);
82  Coord3 getPosition(GeomPosID pid) const;
83  bool isDefined(GeomPosID pid) const;
84 
85 protected:
86 
87  int colIndex(int rowidx,int colid) const;
88  int rowIndex(int rowid) const;
89 
91 
95 };
96 
97 } // namespace Geometry
#define mExpClass(module)
Definition: commondefs.h:157
T to(const F &fr)
Definition: convert.h:31
TypeSet< SamplingData< int > > colsampling_
Definition: horizon2dline.h:93
bool checksupport_
Definition: horizon2dline.h:90
Definition: horizon2dline.h:28
Position info for a 2D line.
Definition: posinfo2d.h:63
bool isEmpty() const
Definition: horizon2dline.h:38
A Plane3 is a plane in space, with the equation: Ax + By + Cz + D = 0.
Definition: trigonometry.h:449
od_int64 GeomPosID
Definition: geomelement.h:19
Set of pointers to objects.
Definition: commontypes.h:28
TypeSet< Pos::GeomID > geomids_
Definition: horizon2dline.h:94
virtual StepInterval< int > colRange() const
Definition: horizon2dline.h:63
3D point or vector
Definition: commontypes.h:57
Set of (small) copyable elements.
Definition: commontypes.h:26
Definition: rowcolsurface.h:24
ObjectSet< TypeSet< Coord3 > > rows_
Definition: horizon2dline.h:92
Index_Type GeomID
Definition: commontypes.h:48
IdxPair used for its row() and col().
Definition: rowcol.h:23
Position info, often segmented.
Definition: posinfo.h:38
bool checksSupport() const
Definition: horizon2dline.h:79
void checkSupport(bool yn)
Definition: horizon2dline.h:78
Definition: arraytesselator.h:19

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