OpendTect  6.3
vismarchingcubessurfacedisplay.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 "attribsel.h"
16 #include "emposid.h"
17 #include "visobject.h"
18 #include "vissurvobj.h"
19 
20 
21 namespace Geometry { class ExplicitIndexedShape; }
22 namespace EM { class MarchingCubesSurface; class ImplicitBody; }
23 namespace visBase { class GeomIndexedShape; class MarchingCubesSurface;
24  class Transformation; };
25 
26 namespace visSurvey
27 {
28 
30  public visSurvey::SurveyObject
32 public:
36  "MarchingCubesDisplay",
37  ::toUiString(sFactoryKeyword()) );
38 
39  DBKey getDBKey() const;
40  bool isInlCrl() const { return true; }
41 
42  bool hasColor() const { return true; }
43  bool usesColor() const;
44  Color getColor() const;
45  void setColor(Color);
46  bool allowMaterialEdit() const { return true; }
47  NotifierAccess* materialChange();
48 
49  void useTexture(bool yn);
50  bool usesTexture() const;
51  bool showsTexture() const;
52  bool canShowTexture() const;
53 
54  void setDisplayTransformation(const mVisTrans*);
55  const mVisTrans* getDisplayTransformation() const;
56 
57  bool setVisSurface(visBase::MarchingCubesSurface*);
59  bool setEMID(const EM::ObjectID&,TaskRunner*);
60  EM::ObjectID getEMID() const;
61 
62  const uiString& errMsg() const { return errmsg_; }
63 
64  SurveyObject::AttribFormat getAttributeFormat(int) const;
65  int nrAttribs() const;
66  bool canAddAttrib(int) const;
67  bool canRemoveAttrib() const;
68  bool canHandleColTabSeqTrans(int) const;
69  const ColTab::Mapper& getColTabMapper(int) const;
70  void setColTabMapper(int,const ColTab::Mapper&,
71  TaskRunner*);
72  const ColTab::Sequence& getColTabSequence(int) const;
73  bool canSetColTabSequence() const;
74  void setColTabSequence(int,const ColTab::Sequence&,
75  TaskRunner*);
76  void setSelSpecs(int attrib,
78  const Attrib::SelSpec* getSelSpec(int attrib,int version=0) const;
79  const TypeSet<Attrib::SelSpec>* getSelSpecs(int attrib) const;
80  void setDepthAsAttrib(int);
81  void setIsoPatch(int);
82  void enableAttrib(int attrib,bool yn);
83  bool isAttribEnabled(int attrib) const;
84  bool hasSingleColorFallback() const { return true; }
85 
86  void getRandomPos(DataPointSet&,TaskRunner*) const;
87  void setRandomPosData( int attrib,
88  const DataPointSet*, TaskRunner*);
89 
90  void setOnlyAtSectionsDisplay(bool yn);
91  bool displayedOnlyAtSections() const;
92 
93  bool canRemoveSelection() const { return true; }
94  void removeSelection(const Selector<Coord3>&,
95  TaskRunner*);
96  EM::MarchingCubesSurface* getMCSurface() const { return emsurface_; }
98  { return displaysurface_; }
99 
100 protected:
101 
102  virtual ~MarchingCubesDisplay();
103  bool updateVisFromEM(bool onlyshape,TaskRunner*);
104  virtual void fillPar(IOPar&) const;
105  virtual bool usePar(const IOPar&);
106  void materialChangeCB(CallBacker*);
107 
108  void getMousePosInfo(const visBase::EventInfo& ei,
109  IOPar& iop ) const;
110  void getMousePosInfo(const visBase::EventInfo&,
111  Coord3& xyzpos, BufferString& val,
112  BufferString& info) const;
113  void otherObjectsMoved(
115  int whichobj);
116  void updateIntersectionDisplay();
117  void updateSingleColor();
118 
119  static const char* sKeyEarthModelID() { return "EM ID"; }
120  static const char* sKeyAttribSelSpec() { return "Attrib SelSpec"; }
121  static const char* sKeyColTabMapper() { return "Coltab mapper"; }
122  static const char* sKeyColTabSequence() { return "Coltab sequence"; }
123  static const char* sKeyUseTexture() { return "Use texture"; }
124 
129 
133 
136 
138  {
143 
144  int planeid_;
146  float planepos_;
147 
148  bool computed_;
149  };
150 
154 };
155 
156 } // namespace visSurvey
#define mExpClass(module)
Definition: commondefs.h:157
od_int32 ObjectID
Definition: emposid.h:22
float planepos_
Definition: vismarchingcubessurfacedisplay.h:146
bool canRemoveSelection() const
Definition: vismarchingcubessurfacedisplay.h:93
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
EM::MarchingCubesSurface * emsurface_
Definition: vismarchingcubessurfacedisplay.h:126
Set of data points with group selection.
Definition: datapointset.h:47
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
A series of color control points able to give an (interpolated) color for every position [0...
Definition: coltabsequence.h:37
bool computed_
Definition: vismarchingcubessurfacedisplay.h:148
visBase::MarchingCubesSurface * getDisplaySurface() const
Definition: vismarchingcubessurfacedisplay.h:97
Interface class for Notifier. See comments there.
Definition: notify.h:20
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
Geometry::ExplicitIndexedShape * shape_
Definition: vismarchingcubessurfacedisplay.h:142
int planeid_
Definition: vismarchingcubessurfacedisplay.h:144
Definition: vismarchingcubessurfacedisplay.h:137
#define mDefaultFactoryInstantiation(baseclss, clss, keywrd, usernm)
Definition: factory.h:287
Definition: uistring.h:88
Marching cubes surface.
Definition: emmarchingcubessurface.h:30
bool displayintersections_
Definition: vismarchingcubessurfacedisplay.h:135
Maps data values to color sequence positions: [0,1].
Definition: coltabmapper.h:33
Used for displaying a polyline, preview for a random line created throught well path.
Definition: visarrowdisplay.h:18
Definition: vismarchingcubessurfacedisplay.h:29
ObjectSet< PlaneIntersectInfo > intsinfo_
Definition: vismarchingcubessurfacedisplay.h:151
Definition: marchingcubes.h:80
Set of pointers to objects.
Definition: commontypes.h:28
Definition: visgeomindexedshape.h:33
3D point or vector
Definition: commontypes.h:57
const uiString & errMsg() const
Definition: vismarchingcubessurfacedisplay.h:62
bool hasSingleColorFallback() const
Definition: vismarchingcubessurfacedisplay.h:84
VisualObjectImpl
Definition: visobject.h:123
Definition: vismarchingcubessurface.h:29
EM::ImplicitBody * impbody_
Definition: vismarchingcubessurfacedisplay.h:134
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
bool hasColor() const
Definition: vismarchingcubessurfacedisplay.h:42
bool allowMaterialEdit() const
Definition: vismarchingcubessurfacedisplay.h:46
static const char * sKeyEarthModelID()
Definition: vismarchingcubessurfacedisplay.h:119
uiString toUiString(const DBKey &ky)
Definition: dbkey.h:117
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
bool usestexture_
Definition: vismarchingcubessurfacedisplay.h:130
static const char * sKeyUseTexture()
Definition: vismarchingcubessurfacedisplay.h:123
bool isInlCrl() const
Definition: vismarchingcubessurfacedisplay.h:40
Definition: visannot.h:40
visBase::GeomIndexedShape * visshape_
Definition: vismarchingcubessurfacedisplay.h:141
TypeSet< Attrib::SelSpec > as_
Definition: vismarchingcubessurfacedisplay.h:127
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
bool isattribenabled_
Definition: vismarchingcubessurfacedisplay.h:132
BufferString errmsg_
Definition: horizontracker.h:117
const mVisTrans * intersectiontransform_
Definition: vismarchingcubessurfacedisplay.h:153
static const char * sKeyAttribSelSpec()
Definition: vismarchingcubessurfacedisplay.h:120
EM::MarchingCubesSurface * getMCSurface() const
Definition: vismarchingcubessurfacedisplay.h:96
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
Implicit representation of a body.
Definition: embody.h:30
ObjectSet< DataPointSet > cache_
Definition: vismarchingcubessurfacedisplay.h:128
visBase::Transformation * model2displayspacetransform_
Definition: vismarchingcubessurfacedisplay.h:152
AttribFormat
Definition: vissurvobj.h:178
Specifies an attribute selection (ID or output number of NN).
Definition: attribsel.h:43
Color is an RGB color object, with a transparancy. The storage is in a 4-byte integer, similar to Qt.
Definition: color.h:24
static const char * sKeyColTabSequence()
Definition: vismarchingcubessurfacedisplay.h:122
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
Definition: indexedshape.h:237
static const char * sKeyColTabMapper()
Definition: vismarchingcubessurfacedisplay.h:121
The Transformation is an object that transforms everything following the node.
Definition: vistransform.h:71
visBase::MarchingCubesSurface * displaysurface_
Definition: vismarchingcubessurfacedisplay.h:125
Definition: arraytesselator.h:19
bool validtexture_
Definition: vismarchingcubessurfacedisplay.h:131
char planeorientation_
Definition: vismarchingcubessurfacedisplay.h:145

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