OpendTect  6.3
vistexturechannel2rgba.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: K. Tingdahl
8  Date: Sep 2008
9 ________________________________________________________________________
10 
11 
12 -*/
13 
14 #include "visdata.h"
15 
16 
17 namespace ColTab { class Sequence; }
18 namespace osgGeo { class LayeredTexture; class ColorSequence; }
19 namespace osg { class Image; }
20 
21 namespace visBase
22 {
23 
24 class TextureChannels;
25 class MappedTextureDataSet;
26 
35 public:
36  virtual MappedTextureDataSet* createMappedDataSet() const;
37 
38  virtual void setChannels(TextureChannels*);
39  virtual void notifyChannelChange() {}
40  virtual void notifyChannelInsert(int ch) {}
41  virtual void notifyChannelRemove(int ch) {}
42 
43  virtual const osg::Image* createRGBA() const;
47  virtual bool canSetSequence() const { return false;}
48  virtual void setSequence(int,const ColTab::Sequence&){}
49  virtual const ColTab::Sequence& getSequence(int) const = 0;
50 
51  virtual void swapChannels(int ch0,int ch1) {}
52  virtual void setEnabled(int ch,bool yn) {}
53  virtual bool isEnabled(int ch) const { return true; }
54 
55  virtual bool canUseShading() const;
56  virtual void allowShading(bool);
57  virtual bool usesShading() const;
58 
59  virtual int maxNrChannels() const = 0;
60  virtual int minNrChannels() const { return 1; }
61  virtual void getChannelName(int,uiString&) const;
62 
63  int getTexturePixelSizeInBits() const;
64  const unsigned char* getTextureData() const;
65  int getTextureWidth() const;
66  int getTextureHeight() const;
67 
68 protected:
70 
72  osgGeo::LayeredTexture* laytex_;
73 };
74 
75 
80 {
81 public:
82  virtual int nrChannels() const = 0;
83  virtual bool addChannel() = 0;
84  virtual bool enableNotify(bool) = 0;
86  virtual void touch() = 0;
87  virtual void setNrChannels(int) = 0;
88 };
89 
90 
91 
97 {
98 public:
99 
101 
104 
105  void swapChannels(int ch0,int ch1);
106 
107  bool canSetSequence() const { return true;}
108  void setSequence(int ch,const Sequence&);
109  const Sequence& getSequence(int ch) const;
110 
111  void setEnabled(int ch,bool yn);
112  bool isEnabled(int ch) const;
113 
114  void setTransparency(int ch,unsigned char yn);
115  unsigned char getTransparency(int ch) const;
116 
117  int maxNrChannels() const;
118 
119 protected:
120 
121  void notifyChannelInsert(int ch);
122  void notifyChannelRemove(int ch);
123 
124  void adjustNrChannels();
125  void setChannels(TextureChannels*);
126 
128 
129  void update();
130  void updFromSeq(int);
131  void getColors(int channel,TypeSet<unsigned char>&) const;
132  void colSeqModifCB(CallBacker*);
133  void startMonitorSeq(int);
134  void stopMonitorSeq(int);
135 
139 
142 
143 };
144 
145 } //namespace
#define mExpClass(module)
Definition: commondefs.h:157
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
Definition: vistexturechannels.h:46
ObjectSet< osgGeo::ColorSequence > osgcolsequences_
Definition: vistexturechannel2rgba.h:140
virtual void notifyChannelChange()
Definition: vistexturechannel2rgba.h:39
BoolTypeSet enabled_
Definition: vistexturechannel2rgba.h:137
#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
DataObject is the base class off all objects that are used in Visualization and ought to be shared in...
Definition: visdata.h:59
TypeSet< unsigned char > opacity_
Definition: vistexturechannel2rgba.h:138
A collection of geoscientific extensions to OpenSceneGraph.
Definition: visannot.h:35
Definition: vistexturechannel2rgba.h:79
Definition: uistring.h:88
virtual bool isEnabled(int ch) const
Definition: vistexturechannel2rgba.h:53
virtual bool canSetSequence() const
Definition: vistexturechannel2rgba.h:47
TypeSet< ConstRefMan< Sequence > > colseqs_
Definition: vistexturechannel2rgba.h:136
virtual void notifyChannelRemove(int ch)
Definition: vistexturechannel2rgba.h:41
Definition: vistexturechannel2rgba.h:33
Definition: vistexturechannel2rgba.h:96
virtual void setEnabled(int ch, bool yn)
Definition: vistexturechannel2rgba.h:52
static ColTabTextureChannel2RGBA * create()
Definition: vistexturechannel2rgba.h:102
Definition: visannot.h:40
Open Scene Graph.
Definition: visannot.h:26
virtual int minNrChannels() const
Definition: vistexturechannel2rgba.h:60
Definition: coltab.h:20
#define mCreateDataObj(clss)
Definition: visdata.h:210
virtual void swapChannels(int ch0, int ch1)
Definition: vistexturechannel2rgba.h:51
osgGeo::LayeredTexture * laytex_
Definition: vistexturechannel2rgba.h:72
TextureChannels * channels_
Definition: vistexturechannel2rgba.h:71
virtual void setSequence(int, const ColTab::Sequence &)
Definition: vistexturechannel2rgba.h:48
virtual void notifyChannelInsert(int ch)
Definition: vistexturechannel2rgba.h:40
ObjectSet< TypeSet< unsigned char > > osgcolseqarrays_
Definition: vistexturechannel2rgba.h:141
ColTab::Sequence Sequence
Definition: vistexturechannel2rgba.h:100

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