OpendTect-6_4  6.4
vispolygonbodydisplay.h
Go to the documentation of this file.
1 #ifndef vispolygonbodydisplay_h
2 #define vispolygonbodydisplay_h
3 
4 /*+
5 ________________________________________________________________________
6 
7  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
8  Author: Kristofer Tingdahl
9  Date: 4-11-2002
10  RCS: $Id$
11 ________________________________________________________________________
12 
13 
14 -*/
15 
16 #include "vissurveymod.h"
17 #include "vismultiattribsurvobj.h"
18 
19 #include "emposid.h"
20 #include "ranges.h"
21 
22 
23 namespace visBase
24 {
25  class DrawStyle;
26  class GeomIndexedShape;
27  class PolyLine3D;
28  class Transformation;
29  class TriangleStripSet;
30 };
31 
32 namespace EM { class PolygonBody; }
33 namespace MPE { class PolygonBodyEditor; }
34 namespace Geometry { class ExplPolygonSurface; class ExplPlaneIntersection; }
35 
36 
37 namespace visSurvey
38 {
39 class MPEEditor;
40 
47  public SurveyObject
48 {
49 public:
53  "PolygonBodyDisplay",
54  toUiString(sFactoryKeyword()));
55  MultiID getMultiID() const;
56  bool isInlCrl() const { return false; }
57 
58  Color getColor() const;
59  void setColor(Color);
60  bool hasColor() const { return true; }
61  bool allowMaterialEdit() const { return true; }
62  NotifierAccess* materialChange();
63 
64  const OD::LineStyle* lineStyle() const;
65  void setLineStyle(const OD::LineStyle&);
66  void showManipulator(bool);
67  bool isManipulatorShown() const;
68 
69  void setDisplayTransformation(const mVisTrans*);
70  const mVisTrans* getDisplayTransformation() const;
71 
72  void setSceneEventCatcher(visBase::EventCatcher*);
73 
74  void display(bool polygons,bool body);
75  bool arePolygonsDisplayed() const;
76  bool isBodyDisplayed() const;
77  void setOnlyAtSectionsDisplay(bool yn);
78  bool displayedOnlyAtSections() const;
79 
80  bool setEMID(const EM::ObjectID&);
81  EM::ObjectID getEMID() const;
82 
83  void touchAll(bool,bool updatemarker=false);
85  { return empolygonsurf_; }
86  bool canRemoveSelection() const { return true; }
87  bool removeSelections(TaskRunner*);
88 
89  const char* errMsg() const { return errmsg_.str(); }
90  virtual void setPixelDensity(float);
91 
92  virtual void fillPar(IOPar&) const;
93  virtual bool usePar(const IOPar&);
94 
95 protected:
96 
97  virtual ~PolygonBodyDisplay();
98  void otherObjectsMoved(
100  int whichobj);
101 
102  void updatePolygonDisplay();
103  void updateSingleColor();
104  void updateManipulator();
105 
106  static const char* sKeyEMPolygonSurfID()
107  { return "EMPolygonsurface ID"; }
108 
109  bool isPicking() const;
110  void mouseCB(CallBacker*);
111  void emChangeCB(CallBacker*);
112 
113  void updateNearestPolygonMarker();
114  void setNewIntersectingPolygon(const Coord3& normal,
115  const Coord3& pt);
116  /*<Given a plane3(nomal, pt), calculate the
117  intersections of known polygons with the
118  intersection line between plane3 and polygon
119  plane. */
120 
121  Coord3 disp2world(const Coord3& displaypos) const;
122  void setLineRadius(visBase::GeomIndexedShape*);
123  void reMakeIntersectionSurface();
124  void matChangeCB(CallBacker*);
125 
126 
129 
132 
135 
140 
143 
147 
149 
151 
153 
157 
158 public:
159  void displayIntersections(bool yn)
160  { setOnlyAtSectionsDisplay(yn); }
162  { return displayedOnlyAtSections(); }
163 };
164 
165 };
166 
167 
168 #endif
Geometry::ExplPlaneIntersection * explicitintersections_
Definition: vispolygonbodydisplay.h:137
#define mExpClass(module)
Definition: commondefs.h:160
od_int32 ObjectID
Definition: emposid.h:24
To be able to send and/or receive CallBacks, inherit from this class.
Definition: callback.h:272
Color nontexturecol_
Definition: vispolygonbodydisplay.h:152
const char * str() const
Definition: odstring.h:48
visBase::GeomIndexedShape * intersectiondisplay_
Definition: vispolygonbodydisplay.h:136
Export_Basic uiString toUiString(ViewStyle)
visBase::EventCatcher * eventcatcher_
Definition: vispolygonbodydisplay.h:127
bool canRemoveSelection() const
Definition: vispolygonbodydisplay.h:86
Interface class for Notifier. See comments there.
Definition: callback.h:161
visBase::DrawStyle * drawstyle_
Definition: vispolygonbodydisplay.h:155
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:188
MPE stands for Model, Predict, Edit. Contains tracking and editing functions.
Definition: autotracker.h:32
Definition: draw.h:118
const char * errMsg() const
Definition: vispolygonbodydisplay.h:89
Definition: visdrawstyle.h:33
Geometry::ExplPolygonSurface * explicitpolygons_
Definition: vispolygonbodydisplay.h:134
#define mDefaultFactoryInstantiation(baseclss, clss, keywrd, usernm)
Definition: factory.h:289
void displayIntersections(bool yn)
Definition: vispolygonbodydisplay.h:159
Definition: explplaneintersection.h:28
Used for displaying a polyline, preview for a random line created throught well path.
Definition: visarrowdisplay.h:20
Definition: vismpeeditor.h:44
bool showmanipulator_
Definition: vispolygonbodydisplay.h:150
Set of pointers to objects.
Definition: commontypes.h:32
Definition: visgeomindexedshape.h:40
EM::PolygonBody * getEMPolygonBody() const
Definition: vispolygonbodydisplay.h:84
Coord3 mousepos_
Definition: vispolygonbodydisplay.h:148
Definition: explpolygonsurface.h:29
VisualObjectImpl
Definition: visobject.h:128
Definition: vispolygonbodydisplay.h:46
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:47
Class that can execute a task.
Definition: task.h:169
A Surface polygon Body.
Definition: empolygonbody.h:79
#define mVisTrans
Definition: visdata.h:31
ObjectEditor to edit EM::PolygonBody.
Definition: polygonsurfeditor.h:28
bool displaypolygons_
Definition: vispolygonbodydisplay.h:154
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:175
EM::PolygonBody * empolygonsurf_
Definition: vispolygonbodydisplay.h:144
A cartesian coordinate in 3D space.
Definition: coord.h:72
const mVisTrans * displaytransform_
Definition: vispolygonbodydisplay.h:128
MPE::PolygonBodyEditor * polygonsurfeditor_
Definition: vispolygonbodydisplay.h:145
Definition: visannot.h:43
ObjectSet< const SurveyObject > intersectionobjs_
Definition: vispolygonbodydisplay.h:138
BufferString errmsg_
Definition: horizontracker.h:119
Geometry::ExplPolygonSurface * explicitbody_
Definition: vispolygonbodydisplay.h:131
visBase::GeomIndexedShape * polygondisplay_
Definition: vispolygonbodydisplay.h:133
Definition: vistristripset.h:22
bool areIntersectionsDisplayed() const
Definition: vispolygonbodydisplay.h:161
bool hasColor() const
Definition: vispolygonbodydisplay.h:60
static const char * sKeyEMPolygonSurfID()
Definition: vispolygonbodydisplay.h:106
Earth Model objects like horizons, faults, fault-sticks and bodies.
Definition: embody.h:25
Base class for all &#39;Display&#39; objects.
Definition: vissurvobj.h:58
bool allowMaterialEdit() const
Definition: vispolygonbodydisplay.h:61
Color is an RGB color object, with a transparancy. The storage is in a 4-byte integer, similar to Qt.
Definition: color.h:26
visBase::PolyLine3D * nearestpolygonmarker_
Definition: vispolygonbodydisplay.h:141
bool isInlCrl() const
Definition: vispolygonbodydisplay.h:56
visBase::TriangleStripSet * intsurf_
Definition: vispolygonbodydisplay.h:156
Definition: vispolyline.h:64
TypeSet< int > planeids_
Definition: vispolygonbodydisplay.h:139
Definition: arraytesselator.h:21
int nearestpolygon_
Definition: vispolygonbodydisplay.h:142
Definition: visevent.h:87
visSurvey::MPEEditor * viseditor_
Definition: vispolygonbodydisplay.h:146
Compound key consisting of ints.
Definition: multiid.h:25
visBase::GeomIndexedShape * bodydisplay_
Definition: vispolygonbodydisplay.h:130

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