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

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