OpendTect  6.6
vishorizonsection.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: March 2009
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 
13 -*/
14 
15 #include "visbasemod.h"
16 #include "arrayndimpl.h"
17 #include "rowcol.h"
18 #include "visobject.h"
19 #include "geomelement.h"
20 #include "vishorizonsectiondef.h"
21 
22 class BinIDValueSet;
23 class DataPointSet;
24 
25 class ZAxisTransform;
26 class TaskRunner;
27 
28 
29 namespace Geometry { class BinIDSurface; }
30 namespace ColTab { class Sequence; class MapperSetup; }
31 namespace osgGeo { class LayeredTexture; }
32 namespace osg { class CullStack; }
33 
34 namespace visBase
35 {
36  class TextureChannel2RGBA;
37  class HorizonSectionTile;
38  class TextureChannels;
39  class HorizonSectionDataHandler;
40  class HorizonTextureHandler;
41  class HorTilesCreatorAndUpdator;
42 
51 {
52  class TextureCallbackHandler;
53  class NodeCallbackHandler;
54 
55 public:
57 
58  void setDisplayTransformation(const mVisTrans*);
59  const mVisTrans* getDisplayTransformation() const;
60  void setZAxisTransform(ZAxisTransform*,TaskRunner*);
61  ZAxisTransform* getZAxisTransform() { return zaxistransform_; }
62 
63  //Texture information
64  void useChannel(bool);
65  int nrChannels() const;
66  void addChannel();
67  void removeChannel(int);
68  void swapChannels(int,int);
69 
70  int nrVersions(int channel) const;
71  void setNrVersions(int channel,int);
72  int activeVersion(int channel) const;
73  void selectActiveVersion(int channel,int);
74 
75  void setColTabSequence(int channel,
76  const ColTab::Sequence&);
77  const ColTab::Sequence* getColTabSequence(int channel) const;
78  void setColTabMapperSetup(int channel,
79  const ColTab::MapperSetup&,
80  TaskRunner*);
81  const ColTab::MapperSetup* getColTabMapperSetup(int channel) const;
82  const TypeSet<float>* getHistogram(int channel) const;
83 
84  void setTransparency(int ch,unsigned char yn);
85  unsigned char getTransparency(int ch) const;
86 
88  double zoff /*untransformed*/,
89  int sid,TaskRunner*) const;
90  void setTextureData(int channel,const DataPointSet*,
91  int sid,TaskRunner*);
92  const BinIDValueSet* getCache(int channel) const;
93  void inValidateCache(int channel);
94 
100 
104 
105  //Geometry stuff
107  TaskRunner*);
108  Geometry::BinIDSurface* getSurface() const { return geometry_; }
112  const StepInterval<int>&);
114  const StepInterval<int>&);
115 
116  char nrResolutions() const;
117  char currentResolution() const;
119 
121  osgGeo::LayeredTexture* getOsgTexture() const;
123  void turnOsgOn( bool );
125  bool yn);
128  bool isWireframeDisplayed() const
129  { return wireframedisplayed_ ; }
130 
131  void forceRedraw(bool=true);
133 
134  int getNrTitles() const;
137  const unsigned char* getTextureData(int titleidx,int& w,int& h)const;
139  int titleidx,TypeSet<Coord3>&) const;
142  int titleidx,TypeSet<Coord>&) const;
143  bool getTitlePrimitiveSet(int titleidx,
144  TypeSet<int>&,GeometryType) const;
149 
150  void setLineWidth(int);
151  int getLineWidth() const { return linewidths_; }
152 
153 protected:
155 
156  friend class HorizonSectionTile;
158  friend class TileResolutionData;
160  friend class HorizonTextureHandler;
164  friend class TileCoordinatesUpdator;
166  friend class DataPointSetFiller;
167 
170  TaskRunner*);
173 
175  void updateAutoResolution( const osg::CullStack* );
177  bool checkTileIndex(int) const;
178 
179  void setUpdateVar(bool& var,bool yn);
181 
182  bool forceupdate_; // Only set via setUpdateVar(.)
183 
184 
187 
189  int linewidths_ = 1;
196 
200 
201  NodeCallbackHandler* nodecallbackhandler_;
202  TextureCallbackHandler* texturecallbackhandler_;
205 
206 
208 
210 
214 
218 
222 
223  int queueid_;
224 
229 
230  osg::Group* osghorizon_;
232 
237 
238 };
239 
240 } // namespace visBase
241 
visBase::HorizonSectionTileGlue
Definition: vishorizonsectiontileglue.h:37
visBase::HorizonSection::hortilescreatorandupdator_
HorTilesCreatorAndUpdator * hortilescreatorandupdator_
Definition: vishorizonsection.h:199
GeometryType
GeometryType
Definition: vishorizonsectiondef.h:30
visBase::HorizonSection::userchangedisplayrg_
bool userchangedisplayrg_
Definition: vishorizonsection.h:188
visBase::HorizonSection::hortexturehandler_
HorizonTextureHandler * hortexturehandler_
Definition: vishorizonsection.h:198
visBase::HorTilesCreatorAndUpdator
Definition: vishortilescreatorandupdator.h:35
visBase::HorizonSection::swapChannels
void swapChannels(int, int)
visBase::TextureChannel2RGBA
Definition: vistexturechannel2rgba.h:36
visBase::HorizonTileResolutionTesselator
HorizonTileResolutionTesselator class is an independent usage for tesselating coordinates,...
Definition: vishorthreadworks.h:44
visBase::HorizonSection::currentResolution
char currentResolution() const
visBase::HorizonSection::displaycrg_
StepInterval< int > displaycrg_
Definition: vishorizonsection.h:191
geomelement.h
visBase::HorizonTileRenderPreparer
Definition: vishorthreadworks.h:71
visBase::HorizonSection::activeVersion
int activeVersion(int channel) const
visBase::HorizonSection::getTransparency
unsigned char getTransparency(int ch) const
Threads::Mutex
Is a lock that allows a thread to have exlusive rights to something.
Definition: thread.h:45
visBase::HorizonSection::setColTabSequence
void setColTabSequence(int channel, const ColTab::Sequence &)
ObjectSet
Set of pointers to objects.
Definition: commontypes.h:31
ColTab
Color Table
Definition: coltab.h:22
visBase::HorizonSection::getColTabSequence
const ColTab::Sequence * getColTabSequence(int channel) const
BinIDValueSet
A Pos::IdxPairValueSet with BinIDs.
Definition: binidvalset.h:23
visBase::HorizonSection::getChannels
TextureChannels * getChannels() const
visBase::HorizonSection::desiredresolution_
char desiredresolution_
Definition: vishorizonsection.h:212
visBase::HorizonSection::setTextureData
void setTextureData(int channel, const DataPointSet *, int sid, TaskRunner *)
visBase::HorizonSection::useChannel
void useChannel(bool)
visBase::HorizonSection::addChannel
void addChannel()
visBase::HorizonSection::nrResolutions
char nrResolutions() const
Geometry
Definition: arraytesselator.h:21
visBase
Definition: visannot.h:43
visBase::HorizonSection::surfaceChange
void surfaceChange(const TypeSet< GeomPosID > *, TaskRunner *)
ColTab::MapperSetup
Setup class for colortable Mapper.
Definition: coltabmapper.h:35
visBase::HorizonTextureHandler
Definition: vishorizontexturehandler.h:33
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
visBase::HorizonSection::getChannels2RGBA
TextureChannel2RGBA * getChannels2RGBA()
Don't share texture processes among sections.
visBase::HorizonSectionDataHandler
Definition: vishordatahandler.h:28
visBase::HorizonSection::selectActiveVersion
void selectActiveVersion(int channel, int)
visBase::HorizonSection::lowestresidx_
char lowestresidx_
Definition: vishorizonsection.h:211
osg
Open Scene Graph.
Definition: visannot.h:29
visBase::HorizonSection::zaxistransform_
ZAxisTransform * zaxistransform_
Definition: vishorizonsection.h:231
visBase::HorizonSection::enableGeometryTypeDisplay
void enableGeometryTypeDisplay(GeometryType type, bool yn)
visBase::HorizonSection::spinlock_
Threads::SpinLock spinlock_
Definition: vishorizonsection.h:195
visBase::HorizonSection::osghorizon_
osg::Group * osghorizon_
Definition: vishorizonsection.h:230
visBase::HorizonSection::~HorizonSection
~HorizonSection()
visBase::HorizonSection::removeChannel
void removeChannel(int)
visBase::HorizonSection::setDisplayRange
void setDisplayRange(const StepInterval< int > &, const StepInterval< int > &)
CallBacker
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:185
visBase::HorizonSection::nodecallbackhandler_
NodeCallbackHandler * nodecallbackhandler_
Definition: vishorizonsection.h:201
arrayndimpl.h
visBase::HorizonSection::updateZAxisVOI
void updateZAxisVOI()
visobject.h
visBase::HorizonSection::checkTileIndex
bool checkTileIndex(int) const
visBase::HorizonSection::normalstartidx_
TypeSet< int > normalstartidx_
Definition: vishorizonsection.h:227
visBase::HorizonSection::forceupdate_
bool forceupdate_
Will trigger redraw request if necessary.
Definition: vishorizonsection.h:182
Threads::SpinLock
Is an alternative to Mutex. It is a lock which causes a thread trying to acquire it to simply wait in...
Definition: atomic.h:108
DataPointSet
Set of data points with group selection.
Definition: datapointset.h:48
StepInterval< int >
visBase::HorizonSection::displayedRowRange
StepInterval< int > displayedRowRange() const
visBase::HorizonSection::rowdistance_
float rowdistance_
Definition: vishorizonsection.h:215
ZAxisTransform
Base class for z-axis transforms.
Definition: zaxistransform.h:37
ColTab::Sequence
Maps from [0,1] -> Color.
Definition: coltabsequence.h:37
visBase::HorizonSection::useneighbors_
bool useneighbors_
Definition: vishorizonsection.h:236
visBase::TextureChannels
Definition: vistexturechannels.h:50
visBase::HorizonSection::origin_
RowCol origin_
Definition: vishorizonsection.h:186
visBase::HorizonSection::setColTabMapperSetup
void setColTabMapperSetup(int channel, const ColTab::MapperSetup &, TaskRunner *)
visBase::HorizonSection::updateAutoResolution
void updateAutoResolution(const osg::CullStack *)
visBase::HorizonSection::executePendingUpdates
bool executePendingUpdates()
visBase::HorizonSection::updatedtileresolutions_
TypeSet< int > updatedtileresolutions_
Definition: vishorizonsection.h:234
visBase::HorizonSection::inValidateCache
void inValidateCache(int channel)
visBase::HorizonSection::isredrawing_
bool isredrawing_
Definition: vishorizonsection.h:204
visBase::HorizonSection::getTitle
HorizonSectionTile * getTitle(int idx)
visBase::HorizonSection::texturecallbackhandler_
TextureCallbackHandler * texturecallbackhandler_
Definition: vishorizonsection.h:202
vishorizonsectiondef.h
visBase::HorizonSection::setWireframeColor
void setWireframeColor(Color col)
visBase::HorizonSection::redrawlock_
Threads::Lock redrawlock_
Definition: vishorizonsection.h:203
visBase::HorizonSectionTilePosSetup
Definition: vishorthreadworks.h:113
visBase::HorizonSection::isWireframeDisplayed
bool isWireframeDisplayed() const
Definition: vishorizonsection.h:128
visBase::HorizonSection::spacing_
TypeSet< int > spacing_
Definition: vishorizonsection.h:225
TaskRunner
Class that can execute a task.
Definition: task.h:170
visBase::HorizonSection::setNrVersions
void setNrVersions(int channel, int)
visBase::HorizonSection::tesselationlock_
bool tesselationlock_
Definition: vishorizonsection.h:217
visBase::HorizonSection::getTitleTextureCoordinates
bool getTitleTextureCoordinates(int titleidx, TypeSet< Coord > &) const
visBase::HorizonSection::wireframedisplayed_
bool wireframedisplayed_
Definition: vishorizonsection.h:235
visBase::HorizonSection::getColTabMapperSetup
const ColTab::MapperSetup * getColTabMapperSetup(int channel) const
visBase::HorizonSection::getSurface
Geometry::BinIDSurface * getSurface() const
Definition: vishorizonsection.h:108
visBase::HorizonSection::updatePrimitiveSets
void updatePrimitiveSets()
visBase::HorizonSection::setSurface
void setSurface(Geometry::BinIDSurface *, bool conn, TaskRunner *)
visBase::HorizonSection::coldistance_
float coldistance_
Definition: vishorizonsection.h:216
visBase::HorizonSection::setLineWidth
void setLineWidth(int)
visBase::HorizonSection::nrhorsectnrres_
char nrhorsectnrres_
Definition: vishorizonsection.h:213
visBase::HorizonSection::hordatahandler_
HorizonSectionDataHandler * hordatahandler_
Definition: vishorizonsection.h:197
visBase::HorizonSection::totalnormalsize_
int totalnormalsize_
Definition: vishorizonsection.h:221
visBase::HorizonSection::texturerowrg_
StepInterval< int > texturerowrg_
Definition: vishorizonsection.h:192
mVisTrans
#define mVisTrans
Definition: visdata.h:28
visBase::HorizonSection::getOsgTexture
osgGeo::LayeredTexture * getOsgTexture() const
visBase::HorizonSection::setTextureRange
void setTextureRange(const StepInterval< int > &, const StepInterval< int > &)
visBase::HorizonSection::texturecolrg_
StepInterval< int > texturecolrg_
Definition: vishorizonsection.h:193
visBase::VisualObjectImpl
Definition: visobject.h:72
visBase::HorizonSection::getTextureData
const unsigned char * getTextureData(int titleidx, int &w, int &h) const
visBase::HorizonSection::getChannels2RGBA
const TextureChannel2RGBA * getChannels2RGBA() const
visBase::HorizonSection::tilesidesize_
int tilesidesize_
Definition: vishorizonsection.h:220
visBase::HorizonSection::setTransparency
void setTransparency(int ch, unsigned char yn)
Array2DImpl
Implementation of Array2D.
Definition: arrayndimpl.h:102
visBase::HorizonSection::usingNeighborsInIsolatedLine
bool usingNeighborsInIsolatedLine() const
visBase::HorizonSection::getTitlePrimitiveSet
bool getTitlePrimitiveSet(int titleidx, TypeSet< int > &, GeometryType) const
visBase::HorizonSection::nrVersions
int nrVersions(int channel) const
visBase::HorizonSection::forceRedraw
void forceRedraw(bool=true)
visBase::HorizonSection::geometry_
Geometry::BinIDSurface * geometry_
Definition: vishorizonsection.h:185
osgGeo
A collection of geoscientific extensions to OpenSceneGraph.
Definition: visannot.h:38
mCreateDataObj
#define mCreateDataObj(clss)
Definition: visdata.h:214
visBase::HorizonSection::getHistogram
const TypeSet< float > * getHistogram(int channel) const
visBase::HorizonSection::tiles_
Array2DImpl< HorizonSectionTile * > tiles_
Definition: vishorizonsection.h:207
visBase::HorizonSection
Definition: vishorizonsection.h:51
visBase::HorizonSection::removeZTransform
void removeZTransform()
visBase::HorizonSection::normalsidesize_
TypeSet< int > normalsidesize_
Definition: vishorizonsection.h:228
visBase::TileResolutionData
Definition: vishortileresolutiondata.h:47
visBase::HorizonSection::transformation_
const visBase::Transformation * transformation_
Definition: vishorizonsection.h:209
visBase::HorizonSection::getTitleNormals
bool getTitleNormals(int titleidx, TypeSet< Coord3 > &) const
visBase::HorizonSection::setTextureHandler
void setTextureHandler(HorizonTextureHandler &)
visBase::HorizonSection::turnOsgOn
void turnOsgOn(bool)
visBase::HorizonSection::nrChannels
int nrChannels() const
visBase::HorizonSection::setChannels2RGBA
void setChannels2RGBA(TextureChannel2RGBA *)
RowCol
IdxPair used for its row() and col().
Definition: rowcol.h:25
visBase::HorizonSection::updatedtiles_
ObjectSet< HorizonSectionTile > updatedtiles_
Definition: vishorizonsection.h:233
visBase::HorizonSection::configSizeParameters
void configSizeParameters()
visBase::HorizonSection::setUsingNeighborsInIsolatedLine
void setUsingNeighborsInIsolatedLine(bool)
visBase::HorizonSection::setUpdateVar
void setUpdateVar(bool &var, bool yn)
visBase::HorizonSection::setResolution
void setResolution(char, TaskRunner *)
visBase::HorizonSection::surfaceChangeCB
void surfaceChangeCB(CallBacker *)
create
static uiHor3DInterpol * create(uiParent *)
visBase::HorizonSection::displayedColRange
StepInterval< int > displayedColRange() const
Geometry::BinIDSurface
Definition: binidsurface.h:27
visBase::HorizonSection::nrcells_
TypeSet< int > nrcells_
Definition: vishorizonsection.h:226
visBase::HorizonSection::updatelock_
Threads::Mutex updatelock_
Definition: vishorizonsection.h:194
visBase::HorizonSection::getTexturePixelSizeInBits
int getTexturePixelSizeInBits() const
visBase::HorizonSection::getTitleCoordinates
bool getTitleCoordinates(int, TypeSet< Coord3 > &) const
visBase::HorizonSection::getTextureHandler
HorizonTextureHandler & getTextureHandler()
Don't share texture handlers among sections.
visBase::HorizonSection::nrcoordspertileside_
int nrcoordspertileside_
Definition: vishorizonsection.h:219
visBase::HorizonSectionTile
Definition: vishorizonsectiontile.h:51
Color
Color is an RGB color object, with a transparancy. The storage is in a 4-byte integer,...
Definition: color.h:26
Threads::Lock
A lock of a type that (hopefully) suits your needs. To use it, you need the Locker class.
Definition: threadlock.h:53
visBase::HorizonSection::displayrrg_
StepInterval< int > displayrrg_
Definition: vishorizonsection.h:190
visBase::HorizonSection::getNrTitles
int getNrTitles() const
rowcol.h
visBase::HorizonSection::getDataPositions
void getDataPositions(DataPointSet &, double zoff, int sid, TaskRunner *) const
visBase::HorizonSection::getCache
const BinIDValueSet * getCache(int channel) const
visBase::HorizonSection::queueid_
int queueid_
Definition: vishorizonsection.h:223
visBase::HorizonSection::getLineWidth
int getLineWidth() const
Definition: vishorizonsection.h:151
TypeSet< float >

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