OpendTect  6.3
explfaultsticksurface.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: J.C. Glas
8  Date: October 2007
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "geometrymod.h"
14 #include "indexedshape.h"
15 #include "enums.h"
16 #include "position.h"
17 #include "rowcol.h"
18 #include "datapack.h"
19 #include "binidvalue.h"
20 
21 class DataPointSet;
22 
23 namespace Geometry
24 {
25 
26 class FaultStickSurface;
27 class ExplFaultStickTexturePositionExtracter;
28 
32 #define mFltTriProj Geometry::ExplFaultStickSurface::TriProjection
33 
34 
36  public CallBacker
37 {
38 public:
40  float zscale=mUdf(float));
42 
43  void setSceneIdx(int idx) { sceneidx_ = idx; }
44 
45  bool needsUpdate() const { return needsupdate_; }
46 
47  enum TriProjection { None=0, Inline=1, Crossline=2, ZSlice=3 };
49  TriProjection triangulateAlg() const { return trialg_; }
50  void triangulateAlg(TriProjection);
51 
52  void setSurface(FaultStickSurface*);
53  FaultStickSurface* getSurface() { return surface_; }
54  const FaultStickSurface* getSurface() const { return surface_; }
55 
56  void setZScale( float );
57 
58  void display(bool sticks,bool panels);
59  bool areSticksDisplayed() const { return displaysticks_; }
60  bool arePanelsDisplayed() const { return displaypanels_; }
61 
62  bool createsNormals() const { return true; }
63  bool createsTextureCoords() const { return true; }
64 
65  void setMaximumTextureSize(int);
66  void setTexturePowerOfTwo(bool yn);
67  void setTextureSampling(const BinIDValue&);
68  const RowCol& getTextureSize() const;
69  void needUpdateTexture(bool yn);
70  bool needsUpdateTexture() const;
71 
72  bool update(bool forceall,TaskRunner*);
73 
74  void addToGeometries(IndexedGeometry*);
75  void removeFromGeometries(const IndexedGeometry*);
76 
77  bool getTexturePositions(DataPointSet&,
78  TaskRunner*);
79  const BinIDValue getBinIDValue() { return texturesampling_; }
80 
81  static const char* sKeyTextureI() { return "Fault texture i column"; }
82  static const char* sKeyTextureJ() { return "Fault texture j column"; }
83 
84 protected:
85 
86  friend class ExplFaultStickSurfaceUpdater;
87  friend class ExplFaultStickTexturePositionExtracter;
88 
89  void removeAll(bool);
90  void insertAll();
91 
92  void emptyStick(int stickidx);
93  void fillStick(int stickidx);
94  void removeStick(int stickidx);
95  void insertStick(int stickidx);
96 
97  void emptyPanel(int panelidx);
98  void fillPanel(int panelidx);
99  void removePanel(int panelidx);
100  void insertPanel(int panelidx);
101 
102  void surfaceChange(CallBacker*);
103  void surfaceMovement(CallBacker*);
104 
105  void updateTextureCoords();
106  bool updateTextureSize();
107  int textureColSz(const int panelidx);
108  int sampleSize(const Coord3& p0,const Coord3& p1);
109  int point2LineSampleSz(const Coord3& point,
110  const Coord3& linept0,
111  const Coord3& linept1);
112  Coord3 getCoord(int stickidx,int texturerow) const;
113  float getAvgDistance(int stickidx,
114  const TypeSet<int>& shift,int extra) const;
115  void shiftStick(int stickidx,int nrunits);
116  void updateStickShifting();
117  bool reTriangulateSurface();
118  bool setProjTexturePositions(DataPointSet& dpset);
119 
120  void addTriangle(IndexedGeometry*,int a,int b,int c);
121 
124 
128 
132 
136 
143 };
144 
145 };
#define mExpClass(module)
Definition: commondefs.h:157
Definition: indexedshape.h:180
bool needsUpdate() const
Definition: explfaultsticksurface.h:45
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
int sceneidx_
Definition: explfaultsticksurface.h:127
BinIDValue texturesampling_
Definition: explfaultsticksurface.h:142
Set of data points with group selection.
Definition: datapointset.h:47
bool displaypanels_
Definition: explfaultsticksurface.h:123
ObjectSet< IndexedGeometry > paneltriangles_
Definition: explfaultsticksurface.h:134
bool createsNormals() const
Definition: explfaultsticksurface.h:62
ObjectSet< IndexedGeometry > sticks_
Definition: explfaultsticksurface.h:133
RowCol texturesize_
Definition: explfaultsticksurface.h:140
const BinIDValue getBinIDValue()
Definition: explfaultsticksurface.h:79
FixedString Crossline()
Definition: keystrs.h:48
bool areSticksDisplayed() const
Definition: explfaultsticksurface.h:59
bool needsupdate_
Definition: explfaultsticksurface.h:129
const FaultStickSurface * getSurface() const
Definition: explfaultsticksurface.h:54
Definition: indexedshape.h:123
Definition: faultsticksurface.h:18
FixedString Inline()
Definition: keystrs.h:73
bool arePanelsDisplayed() const
Definition: explfaultsticksurface.h:60
void setSceneIdx(int idx)
Definition: explfaultsticksurface.h:43
Definition: oduicommon.h:34
static const char * sKeyTextureI()
Definition: explfaultsticksurface.h:81
TriProjection triangulateAlg() const
Definition: explfaultsticksurface.h:49
#define mDeclareEnumUtils(enm)
Some utilities surrounding the often needed enum <-> string table.
Definition: enums.h:188
FixedString None()
Definition: keystrs.h:90
ObjectSet< IndexedGeometry > panellines_
Definition: explfaultsticksurface.h:135
Set of pointers to objects.
Definition: commontypes.h:28
bool createsTextureCoords() const
Definition: explfaultsticksurface.h:63
3D point or vector
Definition: commontypes.h:57
static const char * sKeyTextureJ()
Definition: explfaultsticksurface.h:82
void removeAll()
bool needsupdatetexture_
Definition: explfaultsticksurface.h:130
Class that can execute a task.
Definition: task.h:193
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:270
FaultStickSurface * getSurface()
Definition: explfaultsticksurface.h:53
BinID and a value.
Definition: binidvalue.h:29
TypeSet< int > texturecolcoords_
Definition: explfaultsticksurface.h:137
Coord3 scalefacs_
Definition: explfaultsticksurface.h:126
IdxPair used for its row() and col().
Definition: rowcol.h:23
TriProjection trialg_
Definition: explfaultsticksurface.h:131
bool texturepot_
Definition: explfaultsticksurface.h:141
Definition: explfaultsticksurface.h:35
TriProjection
Definition: explfaultsticksurface.h:47
ObjectSet< TypeSet< int > > textureknotcoords_
Definition: explfaultsticksurface.h:138
int maximumtexturesize_
Definition: explfaultsticksurface.h:139
Definition: arraytesselator.h:19
FaultStickSurface * surface_
Definition: explfaultsticksurface.h:125
bool displaysticks_
Definition: explfaultsticksurface.h:122

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