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

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