OpendTect  6.6
visvolrenscalarfield.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: January 2007
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "visbasemod.h"
15 #include "color.h"
16 #include "ranges.h"
17 #include "trckeyzsampling.h"
18 #include "visdata.h"
19 #include "coltabmapper.h"
20 #include "coltabsequence.h"
21 #include "visosg.h"
22 
23 class TaskRunner;
24 template <class T> class Array3D;
25 template <class T> class ValueSeries;
26 
27 
28 namespace osgVolume { class Volume; class VolumeTile; class ImageLayer;
29  class TransparencyProperty; }
30 namespace osg { class Switch; class Image; class TransferFunction1D; }
31 namespace osgGeo { class RayTracedTechnique; }
32 
33 
34 
35 namespace visBase
36 {
37  class Material;
38  class TextureChannel2RGBA;
39 
41 {
42 public:
43 
46 
47  void setChannels2RGBA(visBase::TextureChannel2RGBA*);
48  TextureChannel2RGBA* getChannels2RGBA();
49  const TextureChannel2RGBA* getChannels2RGBA() const;
50 
51  void setScalarField(int attr,const Array3D<float>*,
52  bool mine,TaskRunner*); // obsolete
53 
54  void setColTabMapperSetup(int attr,
55  const ColTab::MapperSetup&,
56  TaskRunner* tr );
57  const ColTab::Mapper& getColTabMapper(int attr);
58 
59  const TypeSet<float>& getHistogram(int attr) const;
60 
61  const char* writeVolumeFile(int attr,od_ostream&) const;
63 
64  static bool isShadingSupported();
65  void allowShading(bool yn);
66  bool usesShading() const;
67 
68  bool turnOn(bool);
69  bool isOn() const;
70 
71  void setTexVolumeTransform(const Coord3& trans,
72  const Coord3& rotvec,double rotangle,
73  const Coord3& scale);
74  void setROIVolumeTransform(const Coord3& trans,
75  const Coord3& rotvec,double rotangle,
76  const Coord3& scale);
81  bool textureInterpolationEnabled() const;
82  void enableTextureInterpolation(bool);
83 
84  void setMaterial(Material*);
85 
88  void makeColorTables(int attr);
89  void enableAttrib(int attr,bool yn);
90  void swapAttribs(int attr0,int attr1);
91  void setAttribTransparency(int attr,unsigned char);
92 
93  void setRightHandSystem(bool);
94  bool isRightHandSystem() const;
95 
96 protected:
98 
99  void makeIndices(int attr,bool doset,TaskRunner*);
100  // doset argument obsolete now
101  void clipData(int attr,TaskRunner*);
102 
103  void updateFragShaderType();
104  void updateVolumeSlicing();
105  void updateTransparencyRescaling();
106 
107  void setDefaultRGBAValue(int channel);
108 
110  {
113 
114  od_int64 totalSz() const; // obsolete
115  bool isInVolumeCache() const;
116 
117  int sz0_, sz1_, sz2_; // obsolete
119  unsigned char* indexcache_;
125 
129 
133  };
134 
136 
138  bool isrgba_;
139 
142 
144 
145  osgVolume::VolumeTile* osgvoltile_;
146  osg::Switch* osgvolroot_;
148  osgVolume::ImageLayer* osgimagelayer_;
149  osg::Image* osgvoldata_;
150  osg::TransferFunction1D* osgtransfunc_;
151  osgVolume::TransparencyProperty* osgtransprop_;
152  osgGeo::RayTracedTechnique* raytt_;
153 
154  void updateResizeCache(int attr,TaskRunner*);
155 public:
156  void setScalarField(int attr,const Array3D<float>*,
157  bool mine,const TrcKeyZSampling&,
158  TaskRunner*);
160 };
161 
162 }
163 
visBase::VolumeRenderScalarField::AttribData::datatkzs_
TrcKeyZSampling datatkzs_
Definition: visvolrenscalarfield.h:130
ValueSeries
Interface to a series of values.
Definition: odmemory.h:16
visosg.h
Coord3
A cartesian coordinate in 3D space.
Definition: coord.h:72
visBase::VolumeRenderScalarField::osgvolume_
osgVolume::Volume * osgvolume_
Definition: visvolrenscalarfield.h:147
visBase::TextureChannel2RGBA
Definition: vistexturechannel2rgba.h:36
visBase::VolumeRenderScalarField::osgvoldata_
osg::Image * osgvoldata_
Definition: visvolrenscalarfield.h:149
ObjectSet
Set of pointers to objects.
Definition: commontypes.h:31
ColTab
Color Table
Definition: coltab.h:22
visBase::VolumeRenderScalarField::AttribData::indexcache_
unsigned char * indexcache_
Definition: visvolrenscalarfield.h:119
visBase::VolumeRenderScalarField::AttribData::sz2_
int sz2_
Definition: visvolrenscalarfield.h:117
visBase
Definition: visannot.h:43
od_int64
#define od_int64
Definition: plftypes.h:35
visBase::VolumeRenderScalarField::osgtransfunc_
osg::TransferFunction1D * osgtransfunc_
Definition: visvolrenscalarfield.h:150
visBase::VolumeRenderScalarField::attribs_
ObjectSet< AttribData > attribs_
Definition: visvolrenscalarfield.h:135
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
visBase::VolumeRenderScalarField::useshading_
bool useshading_
Definition: visvolrenscalarfield.h:141
osg
Open Scene Graph.
Definition: visannot.h:29
visBase::DataObject
DataObject is the base class off all objects that are used in Visualization and ought to be shared in...
Definition: visdata.h:63
visBase::VolumeRenderScalarField::AttribData::clearResizeCache
void clearResizeCache()
struct
struct(General) A2DBitMapGenPars
Array2D Bitmap generation parameters.
Definition: array2dbitmap.h:27
coltabmapper.h
sKey::Volume
FixedString Volume()
Definition: keystrs.h:184
visBase::VolumeRenderScalarField::osgvolroot_
osg::Switch * osgvolroot_
Definition: visvolrenscalarfield.h:146
visBase::VolumeRenderScalarField::raytt_
osgGeo::RayTracedTechnique * raytt_
Definition: visvolrenscalarfield.h:152
visBase::VolumeRenderScalarField::AttribData::ownsdatacache_
bool ownsdatacache_
Definition: visvolrenscalarfield.h:123
visBase::VolumeRenderScalarField::AttribData::clearDataCache
void clearDataCache()
coltabsequence.h
visBase::VolumeRenderScalarField::AttribData::totalSz
od_int64 totalSz() const
TrcKeyZSampling
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:35
visBase::VolumeRenderScalarField::updateResizeCache
void updateResizeCache(int attr, TaskRunner *)
visBase::VolumeRenderScalarField::AttribData::isInVolumeCache
bool isInVolumeCache() const
visBase::VolumeRenderScalarField::isrgba_
bool isrgba_
Definition: visvolrenscalarfield.h:138
Array3D
Array3D ( Subclass of ArrayND ) is a three dimensional array.
Definition: arraynd.h:162
visBase::VolumeRenderScalarField::isrighthandsystem_
bool isrighthandsystem_
Definition: visvolrenscalarfield.h:143
visBase::VolumeRenderScalarField::AttribData::~AttribData
~AttribData()
visBase::VolumeRenderScalarField::AttribData::ownsresizecache_
bool ownsresizecache_
Definition: visvolrenscalarfield.h:132
visBase::VolumeRenderScalarField::AttribData::ownsindexcache_
bool ownsindexcache_
Definition: visvolrenscalarfield.h:121
trckeyzsampling.h
ColTab::Mapper
Maps data values to colortable positions: [0,1].
Definition: coltabmapper.h:84
TaskRunner
Class that can execute a task.
Definition: task.h:170
visBase::VolumeRenderScalarField
Definition: visvolrenscalarfield.h:41
visBase::Material
Definition: vismaterial.h:37
visBase::VolumeRenderScalarField::AttribData::indexcachestep_
int indexcachestep_
Definition: visvolrenscalarfield.h:120
visBase::VolumeRenderScalarField::AttribData::datacache_
const ValueSeries< float > * datacache_
Definition: visvolrenscalarfield.h:122
DBG::turnOn
void turnOn(int flag)
Overrides the envirnonment variable.
visdata.h
visBase::VolumeRenderScalarField::AttribData::AttribData
AttribData()
DBG::isOn
bool isOn(int flag=0xffff)
visBase::VolumeRenderScalarField::AttribData::histogram_
TypeSet< float > histogram_
Definition: visvolrenscalarfield.h:124
visBase::VolumeRenderScalarField::AttribData
Definition: visvolrenscalarfield.h:110
visBase::VolumeRenderScalarField::create
static VolumeRenderScalarField * create()
Definition: visvolrenscalarfield.h:44
visBase::VolumeRenderScalarField::AttribData::mapper_
ColTab::Mapper mapper_
Definition: visvolrenscalarfield.h:118
visBase::VolumeRenderScalarField::getMultiAttribTrcKeyZSampling
TrcKeyZSampling getMultiAttribTrcKeyZSampling() const
osgGeo
A collection of geoscientific extensions to OpenSceneGraph.
Definition: visannot.h:38
mCreateDataObj
#define mCreateDataObj(clss)
Definition: visdata.h:214
visBase::VolumeRenderScalarField::setScalarField
void setScalarField(int attr, const Array3D< float > *, bool mine, const TrcKeyZSampling &, TaskRunner *)
visBase::VolumeRenderScalarField::osgimagelayer_
osgVolume::ImageLayer * osgimagelayer_
Definition: visvolrenscalarfield.h:148
visBase::VolumeRenderScalarField::AttribData::resizecache_
const ValueSeries< float > * resizecache_
Definition: visvolrenscalarfield.h:131
color.h
ranges.h
visBase::VolumeRenderScalarField::material_
Material * material_
Definition: visvolrenscalarfield.h:140
visBase::VolumeRenderScalarField::osgtransprop_
osgVolume::TransparencyProperty * osgtransprop_
Definition: visvolrenscalarfield.h:151
od_ostream
OD class for stream write common access to the user log file, or std::cout in other than od_main.
Definition: od_ostream.h:26
visBase::VolumeRenderScalarField::AttribData::clearIndexCache
void clearIndexCache()
visBase::VolumeRenderScalarField::osgvoltile_
osgVolume::VolumeTile * osgvoltile_
Definition: visvolrenscalarfield.h:145
visBase::VolumeRenderScalarField::channels2rgba_
TextureChannel2RGBA * channels2rgba_
Definition: visvolrenscalarfield.h:137
TypeSet
Sets of (small) copyable elements.
Definition: commontypes.h:29
osgVolume
Definition: visvolrenscalarfield.h:28

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