OpendTect  6.3
vishorthreadworks.h
Go to the documentation of this file.
1 #pragma once
2 /*+
3 ________________________________________________________________________
4 
5  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
6  Author: Kristofer Tingdahl
7  Date: March 2009
8 ________________________________________________________________________
9 -*/
10 // this header file only be used in the classes related to Horzonsection .
11 // don't include it in somewhere else !!!
12 
13 #include "vishorizonsectiondef.h"
14 #include "threadwork.h"
15 #include "paralleltask.h"
16 #include "rowcol.h"
17 #include "thread.h"
18 #include "ranges.h"
19 
20 namespace osg { class CullStack; }
21 namespace Geometry { class BinIDSurface; }
22 
23 class BinIDSurface;
24 class ZAxisTransform;
25 
26 
27 namespace visBase
28 {
29  class HorizonSection;
30  class HorizonSectionTile;
43 public:
44  HorizonTileResolutionTesselator(const HorizonSection* hrsection,char res);
46  od_int64 nrIterations() const { return nrtiles_; }
47  uiString message() const
48  { return tr("Tessellating horizon"); }
50  { return tr("Parts completed"); }
51 
52  bool doPrepare(int);
53  bool doWork(od_int64,od_int64,int);
54 
55  bool getTitleCoordinates(int,TypeSet<Coord3>&) const;
56  bool getTitleNormals(int,TypeSet<Coord3f>&) const;
57  bool getTitlePrimitiveSet(int,TypeSet<int>&,
58  GeometryType) const;
59 
60 private:
61  bool createTiles();
64  int nrtiles_;
66 };
67 
68 
71 public:
73  const osg::CullStack* cs, char res );
74 
76  { delete [] permutation_; }
77 
78  od_int64 nrIterations() const { return nrtiles_; }
79  od_int64 totalNr() const { return nrtiles_ * 2; }
80  uiString message() const { return tr("Updating Horizon Display"); }
81  uiString nrDoneText() const { return tr("Parts completed"); }
82 
83  bool doPrepare( int );
84  bool doWork( od_int64, od_int64, int );
85 
89  int nrtiles_;
95  const osg::CullStack* tkzs_;
96 };
97 
98 
100 {
101 public:
102  TileTesselator( HorizonSectionTile* tile, char res );
103 
104  int nextStep();
106  char res_;
107  bool doglue_;
108 };
109 
110 
113 public:
116 
118 
119  od_int64 nrIterations() const { return hrtiles_.size(); }
120  uiString message() const { return tr("Creating Horizon Display"); }
121  uiString nrDoneText() const { return tr("Parts completed"); }
122  void setTesselationResolution(char res);
123 
124 protected:
125 
126  bool doWork(od_int64, od_int64, int);
127  bool doFinish(bool);
128 
138 };
139 
140 
142 {
143 public:
145 
146  int nextStep();
148 };
149 
150 
151 }
od_int64 nrIterations() const
Definition: vishorthreadworks.h:46
#define mExpClass(module)
Definition: commondefs.h:157
int nrthreadsfinishedwithres_
Definition: vishorthreadworks.h:93
char resolution_
Definition: vishorthreadworks.h:130
Definition: vishorizonsection.h:45
ObjectSet< HorizonSectionTile > hrtiles_
Definition: vishorthreadworks.h:62
A lock of a type that (hopefully) suits your needs. To use it, you need the Locker class...
Definition: threadlock.h:51
char resolution_
Definition: vishorthreadworks.h:91
TypeSet< RowCol > & hrtiles_
Definition: vishorthreadworks.h:131
HorizonSectionTile * tile_
Definition: vishorthreadworks.h:105
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
#define od_int64
Definition: plftypes.h:34
uiString nrDoneText() const
Definition: vishorthreadworks.h:121
od_int64 totalNr() const
Definition: vishorthreadworks.h:79
Definition: uistring.h:88
GeometryType
Definition: vishorizonsectiondef.h:30
Threads::Barrier barrier_
Definition: vishorthreadworks.h:94
uiString nrDoneText() const
Definition: vishorthreadworks.h:49
HorizonSectionTile ** hrsectiontiles_
Definition: vishorthreadworks.h:87
HorizonSectionTile * tile_
Definition: vishorthreadworks.h:147
Generalization of a task that can be run in parallel.
Definition: paralleltask.h:64
od_int64 nrIterations() const
Definition: vishorthreadworks.h:78
HorizonSection & hrsection_
Definition: vishorthreadworks.h:88
Set of pointers to objects.
Definition: commontypes.h:28
int nrcrdspertileside_
Definition: vishorthreadworks.h:129
char res_
Definition: vishorthreadworks.h:106
ZAxisTransform * zaxistransform_
Definition: vishorthreadworks.h:135
The generalization of something (e.g. a computation) where the steps must be done in sequence...
Definition: task.h:147
const osg::CullStack * tkzs_
Definition: vishorthreadworks.h:95
Definition: vishorthreadworks.h:141
Set of (small) copyable elements.
Definition: commontypes.h:26
Threads::Lock lock_
Definition: vishorthreadworks.h:137
int nrcoltiles_
Definition: vishorthreadworks.h:90
~HorizonTileRenderPreparer()
Definition: vishorthreadworks.h:75
StepInterval< int > rrg_
Definition: vishorthreadworks.h:134
uiString nrDoneText() const
Definition: vishorthreadworks.h:81
int nrtiles_
Definition: vishorthreadworks.h:89
int nrtiles_
Definition: vishorthreadworks.h:64
od_int64 nrIterations() const
Definition: vishorthreadworks.h:119
Definition: vishorizonsectiontile.h:49
Waits for a number of threads to reach a certain point (i.e. the call to Barrier::waitForAll). Once everyone has arrived, everyone is released.
Definition: thread.h:244
const HorizonSection * horsection_
Definition: vishorthreadworks.h:63
const Geometry::BinIDSurface * geo_
Definition: vishorthreadworks.h:133
uiString message() const
Definition: vishorthreadworks.h:47
Definition: visannot.h:40
bool doglue_
Definition: vishorthreadworks.h:107
od_int64 * permutation_
Definition: vishorthreadworks.h:86
Definition: binidsurface.h:25
HorizonTileResolutionTesselator class is an independent usage for tesselating coordinates, normals and primitive set of horizon tiles. it is specifically for exporting horizon to Pdf3D in which the exported horizon has no relation with the existing displayed horizon in coordinates, normals and primitive set. thus we can export horizon into different resolution without influence current displayed horizon in the secne. note: the class doesn&#39;t do anything with texture.
Definition: vishorthreadworks.h:41
int nrthreads_
Definition: vishorthreadworks.h:92
HorizonSection * horsection_
Definition: vishorthreadworks.h:136
Open Scene Graph.
Definition: visannot.h:26
char resolution_
Definition: vishorthreadworks.h:65
uiString message() const
Definition: vishorthreadworks.h:120
Definition: vishorthreadworks.h:99
Definition: vishorthreadworks.h:69
Base class for z-axis transforms.
Definition: zaxistransform.h:35
Definition: vishorthreadworks.h:111
Definition: arraytesselator.h:19
uiString message() const
Definition: vishorthreadworks.h:80
TypeSet< RowCol > & indexes_
Definition: vishorthreadworks.h:132

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