OpendTect-6_4  6.4
emfault3dpainter.h
Go to the documentation of this file.
1 #ifndef emfault3dpainter_h
2 #define emfault3dpainter_h
3 
4 /*+
5 ________________________________________________________________________
6 
7  CopyRight: (C) dGB Beheer B.V.
8  Author: Umesh Sinha
9  Date: Feb 2010
10  RCS: $Id$
11 ________________________________________________________________________
12 
13 -*/
14 
15 #include "earthmodelmod.h"
16 #include "callback.h"
17 #include "trckeyzsampling.h"
18 #include "draw.h"
19 #include "emposid.h"
20 #include "flatview.h"
21 
22 namespace FlatView { class Viewer; }
23 namespace Geometry { class FaultStickSurface; class ExplPlaneIntersection;
24  class PrimitiveSet;}
25 
26 class FlatPosData;
27 
28 namespace EM
29 {
30 
31 class Fault3D;
32 
37 mExpClass(EarthModel) Fault3DPainter : public CallBacker
38 {
39 public:
41  ~Fault3DPainter();
42 
43  void setTrcKeyZSampling(const TrcKeyZSampling&,bool);
44  const TrcKeyZSampling& getTrcKeyZSampling() const { return tkzs_; }
45 
46  void setPath(const TrcKeyPath&);
47  void setFlatPosData(const FlatPosData*);
48 
49  void enableLine(bool);
50  void enableKnots(bool);
51 
52  void setActiveStick(EM::PosID&);
53  int getActiveStickId() const { return activestickid_; }
54  void setMarkerLineStyle(const OD::LineStyle&);
55  bool hasDiffActiveStick(const EM::PosID*) const;
56  FlatView::AuxData* getAuxData(const EM::PosID*) const;
57 
58  mStruct(EarthModel) StkMarkerInfo
59  {
60  FlatView::AuxData* marker_;
61  int stickid_;
62  };
63 
64  EM::ObjectID& getFaultID() { return emid_; }
65  void getDisplayedSticks(ObjectSet<StkMarkerInfo>&);
66 
69 
70  void paint();
71  void enablePaint(bool paintenable);
72 
73 protected:
74  bool addPolyLine();
75 
76  mStruct(EarthModel) Fault3DMarker
77  {
78  Fault3DMarker(){}
79  ~Fault3DMarker()
80  {
81  deepErase(stickmarker_);
82  deepErase(intsecmarker_);
83  }
84  ObjectSet<StkMarkerInfo> stickmarker_;
85  ObjectSet<FlatView::AuxData> intsecmarker_;
86  };
87 
88  bool paintSticks(EM::Fault3D&,const EM::SectionID&,
89  Fault3DMarker*);
90  bool paintStickOnPlane(const Geometry::FaultStickSurface&,
91  RowCol&,const StepInterval<int>&,
92  const Coord3&, FlatView::AuxData&);
93  bool paintStickOnRLine(const Geometry::FaultStickSurface&,
94  RowCol&,const StepInterval<int>&,
95  const Coord3&, FlatView::AuxData&);
96  bool paintIntersection(EM::Fault3D&,const EM::SectionID&,
97  Fault3DMarker*);
98  bool paintPlaneIntxn(EM::Fault3D&,Fault3DMarker*,
100  TypeSet<Coord3>&);
101  void genIntersectionAuxData(EM::Fault3D&,Fault3DMarker*,
102  const Geometry::PrimitiveSet* coordps,
103  TypeSet<Coord3>& intxnposs);
104  void removePolyLine();
105  void repaintFault3D();
106 
107  Coord getNormalInRandLine( int idx ) const;
108  FlatView::Point getFVAuxPoint(const Coord3&) const;
109 
110  virtual void fault3DChangedCB(CallBacker*);
111 
116 
118 
121 
124 
128  int rdlid_;
130 
131 public:
132  void setRandomLineID(int rdlid);
133 };
134 
135 } //namespace EM
136 
137 #endif
bool knotenabled_
Definition: emfault3dpainter.h:127
od_int16 SectionID
Definition: emposid.h:25
#define mExpClass(module)
Definition: commondefs.h:160
od_int32 ObjectID
Definition: emposid.h:24
Class that represents non-bitmap data to be displayed in a flatviewer, such as markers, lines and more.
Definition: flatview.h:34
To be able to send and/or receive CallBacks, inherit from this class.
Definition: callback.h:272
Definition: indexedshape.h:29
const FlatPosData * flatposdata_
Definition: emfault3dpainter.h:114
Positioning of flat &#39;bulk&#39; data. Only the &#39;x1&#39; axis can be irregular.
Definition: flatposdata.h:26
MarkerStyle2D markerstyle_
Definition: emfault3dpainter.h:120
#define mStruct(module)
Definition: commondefs.h:165
Is an identifier for each position in the earthmodel.
Definition: emposid.h:37
Definition: draw.h:60
OD::LineStyle markerlinestyle_
Definition: emfault3dpainter.h:119
Definition: draw.h:118
TrcKeyZSampling tkzs_
Definition: emfault3dpainter.h:112
ObjectSet< Fault3DMarker > f3dmarkers_
Definition: emfault3dpainter.h:123
Definition: faultsticksurface.h:20
FlatView::Viewer & viewer_
Definition: emfault3dpainter.h:117
A cartesian coordinate in 2D space.
Definition: coord.h:25
Definition: explplaneintersection.h:28
Flat Viewer using FlatView::Data and FlatView::Appearance.
Definition: flatview.h:324
Definition: callback.h:254
Set of pointers to objects.
Definition: commontypes.h:32
TypeSet< int > bendpts_
Definition: emfault3dpainter.h:115
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:35
EM::ObjectID emid_
Definition: emfault3dpainter.h:122
const TrcKeyPath * path_
Definition: emfault3dpainter.h:113
int rdlid_
Definition: emfault3dpainter.h:128
Notifier< Fault3DPainter > repaintdone_
Definition: emfault3dpainter.h:68
A cartesian coordinate in 3D space.
Definition: coord.h:72
int getActiveStickId() const
Definition: emfault3dpainter.h:53
IdxPair used for its row() and col().
Definition: rowcol.h:25
bool linenabled_
Definition: emfault3dpainter.h:126
int activestickid_
Definition: emfault3dpainter.h:125
Earth Model objects like horizons, faults, fault-sticks and bodies.
Definition: embody.h:25
3D Fault
Definition: emfault3d.h:78
Definition: bitmap2rgb.h:18
Notifier< Fault3DPainter > abouttorepaint_
Definition: emfault3dpainter.h:67
Definition: arraytesselator.h:21
3D fault painter.
Definition: emfault3dpainter.h:37
EM::ObjectID & getFaultID()
Definition: emfault3dpainter.h:64
const TrcKeyZSampling & getTrcKeyZSampling() const
Definition: emfault3dpainter.h:44
bool paintenable_
Definition: emfault3dpainter.h:129
void deepErase(ObjectSet< T > &os)
empty the ObjectSet deleting all objects pointed to.
Definition: objectset.h:118

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