OpendTect  6.3
vishorizon2ddisplay.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: Kristofer Tingdahl
8  Date: May 2004
9 ________________________________________________________________________
10 
11 
12 -*/
13 
14 #include "vissurveymod.h"
15 #include "emposid.h"
16 #include "dbkey.h"
17 #include "visemobjdisplay.h"
18 
19 namespace visBase { class PolyLine3D; class PointSet; class MarkerSet; }
20 namespace EM { class Horizon2D; }
21 class ZAxisTransform;
22 class Line2DInterSection;
24 namespace visSurvey
25 {
26 
27 class Seis2DDisplay;
28 
31 public:
35  "Horizon2DDisplay",
36  toUiString(sFactoryKeyword()));
37 
38  void setDisplayTransformation(const mVisTrans*);
39 
41  IOPar& i ) const
42  { return EMObjectDisplay::getMousePosInfo(e,i);}
43  virtual void getMousePosInfo(const visBase::EventInfo&,
44  Coord3&,
45  BufferString& val,
46  BufferString& info) const;
47  void setLineStyle(const OD::LineStyle&);
48 
49  bool setEMObject(const EM::ObjectID&,TaskRunner*);
50  EM::SectionID getSectionID(int visid) const;
51  TypeSet<EM::SectionID> getSectionIDs() const{ return sids_; }
52 
53  bool setZAxisTransform(ZAxisTransform*,TaskRunner*);
54 
55  const visBase::PointSet* getPointSet(const EM::SectionID&) const;
56  const visBase::PolyLine3D* getLine(const EM::SectionID&) const;
57  const Color getLineColor() const;
58 
59  void doOtherObjectsMoved(
61  int whichobj );
62  virtual void setPixelDensity(float);
63  void initSelectionDisplay(bool erase);
64  virtual void updateSelections();
65  virtual void clearSelections();
66 
67 
68 protected:
69  friend class Horizon2DDisplayUpdater;
71  void removeSectionDisplay(const EM::SectionID&);
72  bool addSection(const EM::SectionID&,TaskRunner*);
73 
74  struct LineRanges
75  {
78  };
79 
80  static bool withinRanges(const RowCol&,float z,
81  const LineRanges& );
82  void updateSection(int idx,const LineRanges* lr=0);
83 
84  void emChangeCB(CallBacker*);
85 
86  void otherObjectsMoved(
88  int whichobj );
89  void updateLinesOnSections(
91  void updateSeedsOnSections(
93 
94  void zAxisTransformChg(CallBacker*);
95  void removeVolumesOfInterest();
96 
97  void fillPar(IOPar&) const;
98  bool usePar(const IOPar&);
99  bool calcLine2DIntersections(
100  const TypeSet<Pos::GeomID>&,
102 
103  void calcLine2DInterSectionSet();
104 
105  void updateIntersectionMarkers(
107  void updateIntersectionPoint(const Pos::GeomID,
108  const Pos::GeomID,
109  const Line2DInterSection*);
110  bool shouldDisplayIntersections(
111  const Seis2DDisplay&);
112 
122 };
123 
124 } // namespace visSurvey
od_int16 SectionID
Definition: emposid.h:23
#define mExpClass(module)
Definition: commondefs.h:157
od_int32 ObjectID
Definition: emposid.h:22
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
Definition: visemobjdisplay.h:68
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
Definition: draw.h:119
Definition: vispointset.h:23
#define mDefaultFactoryInstantiation(baseclss, clss, keywrd, usernm)
Definition: factory.h:287
TypeSet< EM::SectionID > sids_
Definition: vishorizon2ddisplay.h:115
Used for displaying a polyline, preview for a random line created throught well path.
Definition: visarrowdisplay.h:18
Definition: vishorizon2ddisplay.h:74
Used for displaying a 2D line.
Definition: visseis2ddisplay.h:35
Set of pointers to objects.
Definition: commontypes.h:28
3D point or vector
Definition: commontypes.h:57
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
Class that can execute a task.
Definition: task.h:193
#define mVisTrans
Definition: visdata.h:25
Definition: vishorizon2ddisplay.h:29
TypeSet< TypeSet< Interval< float > > > zrgs
Definition: vishorizon2ddisplay.h:77
uiString toUiString(const DBKey &ky)
Definition: dbkey.h:117
int nr2dlines_
Definition: vishorizon2ddisplay.h:119
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
Line2DInterSectionSet * ln2dset_
Definition: vishorizon2ddisplay.h:120
Index_Type GeomID
Definition: commontypes.h:48
IdxPair used for its row() and col().
Definition: rowcol.h:23
Definition: visannot.h:40
visBase::MarkerSet * intersectmkset_
Definition: vishorizon2ddisplay.h:117
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
visBase::PointSet * selections_
Definition: vishorizon2ddisplay.h:121
Definition: geom2dintersections.h:54
ObjectSet< visBase::PolyLine3D > lines_
Definition: vishorizon2ddisplay.h:113
bool updateintsectmarkers_
Definition: vishorizon2ddisplay.h:118
Earth Model objects like horizons, faults, fault-sticks and bodies.
Definition: embody.h:23
Base class for all &#39;Display&#39; objects.
Definition: vissurvobj.h:54
Definition: visevent.h:40
Color is an RGB color object, with a transparancy. The storage is in a 4-byte integer, similar to Qt.
Definition: color.h:24
TypeSet< EM::SectionID > getSectionIDs() const
Definition: vishorizon2ddisplay.h:51
TypeSet< int > volumeofinterestids_
Definition: vishorizon2ddisplay.h:116
ObjectSet< visBase::PointSet > points_
Definition: vishorizon2ddisplay.h:114
Definition: geom2dintersections.h:99
Base class for z-axis transforms.
Definition: zaxistransform.h:35
TypeSet< TypeSet< Interval< int > > > trcrgs
Definition: vishorizon2ddisplay.h:76
Definition: vispolyline.h:61
MarkerSet is a set of basic pickmarker with a constant size on screen. Size and shape are settable...
Definition: vismarkerset.h:33
void getMousePosInfo(const visBase::EventInfo &e, IOPar &i) const
Definition: vishorizon2ddisplay.h:40

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