OpendTect  6.3
vispolygonbodydisplay.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: 4-11-2002
9 ________________________________________________________________________
10 
11 
12 -*/
13 
14 #include "vissurveymod.h"
15 #include "vismultiattribsurvobj.h"
16 
17 #include "emposid.h"
18 #include "ranges.h"
19 
20 
21 namespace visBase
22 {
23  class DrawStyle;
24  class GeomIndexedShape;
25  class PolyLine3D;
26  class Transformation;
27  class TriangleStripSet;
28 };
29 
30 namespace EM { class PolygonBody; }
31 namespace MPE { class PolygonBodyEditor; }
32 namespace Geometry { class ExplPolygonSurface; class ExplPlaneIntersection; }
33 
34 
35 namespace visSurvey
36 {
37 class MPEEditor;
38 
45  public SurveyObject
46 {
47 public:
51  "PolygonBodyDisplay",
52  toUiString(sFactoryKeyword()));
53  DBKey getDBKey() const;
54  bool isInlCrl() const { return false; }
55 
56  Color getColor() const;
57  void setColor(Color);
58  bool hasColor() const { return true; }
59  bool allowMaterialEdit() const { return true; }
60  NotifierAccess* materialChange();
61 
62  const OD::LineStyle* lineStyle() const;
63  void setLineStyle(const OD::LineStyle&);
64  void showManipulator(bool);
65  bool isManipulatorShown() const;
66 
67  void setDisplayTransformation(const mVisTrans*);
68  const mVisTrans* getDisplayTransformation() const;
69 
70  void setSceneEventCatcher(visBase::EventCatcher*);
71 
72  void display(bool polygons,bool body);
73  bool arePolygonsDisplayed() const;
74  bool isBodyDisplayed() const;
75  void setOnlyAtSectionsDisplay(bool yn);
76  bool displayedOnlyAtSections() const;
77 
78  bool setEMID(const EM::ObjectID&);
79  EM::ObjectID getEMID() const;
80 
81  void touchAll(bool,bool updatemarker=false);
83  { return empolygonsurf_; }
84  bool canRemoveSelection() const { return true; }
85  bool removeSelections(TaskRunner*);
86 
87  const uiString& errMsg() const { return errmsg_; }
88  virtual void setPixelDensity(float);
89 
90  virtual void fillPar(IOPar&) const;
91  virtual bool usePar(const IOPar&);
92 
93 protected:
94 
95  virtual ~PolygonBodyDisplay();
96  void otherObjectsMoved(
98  int whichobj);
99 
100  void updatePolygonDisplay();
101  void updateSingleColor();
102  void updateManipulator();
103 
104  static const char* sKeyEMPolygonSurfID()
105  { return "EMPolygonsurface ID"; }
106 
107  bool isPicking() const;
108  void mouseCB(CallBacker*);
109  void emChangeCB(CallBacker*);
110 
111  void updateNearestPolygonMarker();
112  void setNewIntersectingPolygon(const Coord3& normal,
113  const Coord3& pt);
114  /*<Given a plane3(nomal, pt), calculate the
115  intersections of known polygons with the
116  intersection line between plane3 and polygon
117  plane. */
118 
119  Coord3 disp2world(const Coord3& displaypos) const;
120  void setLineRadius(visBase::GeomIndexedShape*);
121  void reMakeIntersectionSurface();
122  void matChangeCB(CallBacker*);
123 
124 
127 
130 
133 
138 
141 
145 
147 
149 
151 
155 };
156 
157 };
Geometry::ExplPlaneIntersection * explicitintersections_
Definition: vispolygonbodydisplay.h:135
#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
Color nontexturecol_
Definition: vispolygonbodydisplay.h:150
visBase::GeomIndexedShape * intersectiondisplay_
Definition: vispolygonbodydisplay.h:134
visBase::EventCatcher * eventcatcher_
Definition: vispolygonbodydisplay.h:125
bool canRemoveSelection() const
Definition: vispolygonbodydisplay.h:84
Interface class for Notifier. See comments there.
Definition: notify.h:20
visBase::DrawStyle * drawstyle_
Definition: vispolygonbodydisplay.h:153
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
MPE stands for Model, Predict, Edit. Contains tracking and editing functions.
Definition: autotracker.h:30
Definition: draw.h:119
Definition: visdrawstyle.h:30
Geometry::ExplPolygonSurface * explicitpolygons_
Definition: vispolygonbodydisplay.h:132
#define mDefaultFactoryInstantiation(baseclss, clss, keywrd, usernm)
Definition: factory.h:287
Definition: uistring.h:88
Definition: explplaneintersection.h:26
Used for displaying a polyline, preview for a random line created throught well path.
Definition: visarrowdisplay.h:18
Definition: vismpeeditor.h:46
bool showmanipulator_
Definition: vispolygonbodydisplay.h:148
Set of pointers to objects.
Definition: commontypes.h:28
const uiString & errMsg() const
Definition: vispolygonbodydisplay.h:87
Definition: visgeomindexedshape.h:33
EM::PolygonBody * getEMPolygonBody() const
Definition: vispolygonbodydisplay.h:82
Coord3 mousepos_
Definition: vispolygonbodydisplay.h:146
3D point or vector
Definition: commontypes.h:57
Definition: explpolygonsurface.h:27
VisualObjectImpl
Definition: visobject.h:123
Definition: vispolygonbodydisplay.h:44
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
Class that can execute a task.
Definition: task.h:193
A Surface polygon Body.
Definition: empolygonbody.h:77
#define mVisTrans
Definition: visdata.h:25
ObjectEditor to edit EM::PolygonBody.
Definition: polygonsurfeditor.h:26
bool displaypolygons_
Definition: vispolygonbodydisplay.h:152
uiString toUiString(const DBKey &ky)
Definition: dbkey.h:117
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
EM::PolygonBody * empolygonsurf_
Definition: vispolygonbodydisplay.h:142
const mVisTrans * displaytransform_
Definition: vispolygonbodydisplay.h:126
MPE::PolygonBodyEditor * polygonsurfeditor_
Definition: vispolygonbodydisplay.h:143
Definition: visannot.h:40
ObjectSet< const SurveyObject > intersectionobjs_
Definition: vispolygonbodydisplay.h:136
BufferString errmsg_
Definition: horizontracker.h:117
Geometry::ExplPolygonSurface * explicitbody_
Definition: vispolygonbodydisplay.h:129
visBase::GeomIndexedShape * polygondisplay_
Definition: vispolygonbodydisplay.h:131
Definition: vistristripset.h:19
bool hasColor() const
Definition: vispolygonbodydisplay.h:58
static const char * sKeyEMPolygonSurfID()
Definition: vispolygonbodydisplay.h:104
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
bool allowMaterialEdit() const
Definition: vispolygonbodydisplay.h:59
Color is an RGB color object, with a transparancy. The storage is in a 4-byte integer, similar to Qt.
Definition: color.h:24
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
visBase::PolyLine3D * nearestpolygonmarker_
Definition: vispolygonbodydisplay.h:139
bool isInlCrl() const
Definition: vispolygonbodydisplay.h:54
visBase::TriangleStripSet * intsurf_
Definition: vispolygonbodydisplay.h:154
Definition: vispolyline.h:61
TypeSet< int > planeids_
Definition: vispolygonbodydisplay.h:137
Definition: arraytesselator.h:19
int nearestpolygon_
Definition: vispolygonbodydisplay.h:140
Definition: visevent.h:83
visSurvey::MPEEditor * viseditor_
Definition: vispolygonbodydisplay.h:144
visBase::GeomIndexedShape * bodydisplay_
Definition: vispolygonbodydisplay.h:128

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