OpendTect  6.6
vishorizonsectiontile.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 // this header file only be used in the classes related to Horzonsection .
16 // don't include it in somewhere else !!!
17 
18 #include "callback.h"
19 #include "thread.h"
20 #include "position.h"
21 #include "color.h"
22 #include "rowcol.h"
23 #include "visdata.h"
24 #include "vishorizonsection.h"
25 
26 #if defined(visBase_EXPORTS) || defined(VISBASE_EXPORTS)
27 #include <osg/BoundingBox>
28 #endif
29 
30 namespace osg
31 {
32  class CullStack;
33  class StateSet;
34  class Array;
35  class Switch;
36  class Geode;
37  class Geometry;
38  class DrawElementsUShort;
39 }
40 
41 namespace visBase
42 {
43  class HorizonSectionTilePosSetup;
44  class HorizonSection;
45  class TileResolutionData;
46  class HorizonSectionTileGlue;
47  class Coordinates;
48 //A tile with 65x65 nodes.
49 
51 {
52 public:
55  char getActualResolution() const;
56  void updateAutoResolution(const osg::CullStack*);
57  /*<Update only when the resolution is -1. */
58  void setPos(int row,int col, const Coord3&);
60  //Call by the end of each render
61  //Makes object ready for render
62  void tesselateResolution(char,bool onlyifabsness);
63  void applyTesselation(char res);
66  void setWireframeColor(Color& color);
67  void setTexture( const Coord& origin,
68  const Coord& opposite );
70  void addTileTesselator( int res );
73  { return tileresolutiondata_; }
74  void turnOnGlue(bool);
75  void setLineWidth(int);
76 
77 protected:
78 
79  void setNeighbor(int neighbor,HorizonSectionTile*);
81 
82  void setResolution(char);
85  bool hasDefinedCoordinates(int idx) const;
89  const HorizonSectionTile* getNeighborTile(int idx) const;
91 
93  bool yn);
100  TypeSet<Coord>&) const;
102  TypeSet<int>&,GeometryType) const;
105  TypeSet<int>&,GeometryType) const;
107 
109 
110  void setNrTexCoordLayers(int nrlayers);
112  osg::Array* getNormals() { return normals_; }
113  osg::Array* getOsgVertexArray(){ return osgvertices_; }
114 
115 protected:
116 
118  friend class TileTesselator;
119  friend class HorizonSection;
120  friend class TileResolutionData;
123  friend class HorizonTextureHandler;
126 
127  void updateBBox();
130  char getAutoResolution(const osg::CullStack*);
131  double calcGradient(int row,int col,
132  const StepInterval<int>& rcrange,
133  bool isrow);
134  void computeNormal(int nmidx, osg::Vec3&);
135  void initvertices();
136 
138 
141 
142  osg::BoundingBox bbox_;
146 
149 
152 
156 
157  osg::StateSet* stateset_;
159 
161  osg::Switch* osgswitchnode_;
164  osg::Vec2f txorigin_;
165  osg::Vec2f txoppsite_;
166  std::vector<osg::Array*> txcoords_;
167  osg::Array* normals_;
168  osg::Array* osgvertices_;
169 
171 };
172 
173 } // namespace visBase
174 
visBase::HorizonSectionTile::righttileglue_
HorizonSectionTileGlue * righttileglue_
Definition: vishorizonsectiontile.h:139
visBase::HorizonSectionTile::updatenewpoint_
bool updatenewpoint_
Definition: vishorizonsectiontile.h:163
visBase::HorizonSectionTileGlue
Definition: vishorizonsectiontileglue.h:37
visBase::HorizonSectionTile::tesselationqueueid_
int tesselationqueueid_
Definition: vishorizonsectiontile.h:153
GeometryType
GeometryType
Definition: vishorizonsectiondef.h:30
visBase::HorizonSectionTile::sinanglexinl_
const double sinanglexinl_
Definition: vishorizonsectiontile.h:170
visBase::HorizonSectionTile::getResolutionTextureCoordinates
bool getResolutionTextureCoordinates(TypeSet< Coord > &) const
Coord3
A cartesian coordinate in 3D space.
Definition: coord.h:72
visBase::HorTilesCreatorAndUpdator
Definition: vishortilescreatorandupdator.h:35
visBase::HorizonTileResolutionTesselator
HorizonTileResolutionTesselator class is an independent usage for tesselating coordinates,...
Definition: vishorthreadworks.h:44
visBase::HorizonSectionTile::applyTesselation
void applyTesselation(char res)
Should be called from rendering thread.
visBase::HorizonSectionTile::ensureGlueTesselated
void ensureGlueTesselated()
visBase::HorizonSectionTile::getResolutionPrimitiveSet
bool getResolutionPrimitiveSet(char res, TypeSet< int > &, GeometryType) const
visBase::HorizonSectionTile::computeNormal
void computeNormal(int nmidx, osg::Vec3 &)
visBase::HorizonSectionTile::getAutoResolution
char getAutoResolution(const osg::CullStack *)
visBase::HorizonSectionTile::getResolutionData
ObjectSet< TileResolutionData > & getResolutionData()
Definition: vishorizonsectiontile.h:72
visBase::HorizonSectionTile::setTexture
void setTexture(const Coord &origin, const Coord &opposite)
Sets origin and opposite in global texture.
Threads::Mutex
Is a lock that allows a thread to have exlusive rights to something.
Definition: thread.h:45
visBase::HorizonSectionTile::wireframedisplayed_
bool wireframedisplayed_
Definition: vishorizonsectiontile.h:145
visBase::HorizonSectionTile::setNeighbor
void setNeighbor(int neighbor, HorizonSectionTile *)
The neighbor is numbered from 0 to 8.
visBase::HorizonSectionTile::txorigin_
osg::Vec2f txorigin_
Definition: vishorizonsectiontile.h:164
ObjectSet
Set of pointers to objects.
Definition: commontypes.h:31
visBase::HorizonSectionTile::getResolutionCoordinates
bool getResolutionCoordinates(TypeSet< Coord3 > &) const
visBase::HorizonSectionTile::buildOsgGeometries
void buildOsgGeometries()
visBase::HorizonSectionTile::getActualResolution
char getActualResolution() const
Geometry
Definition: arraytesselator.h:21
visBase
Definition: visannot.h:43
visBase::HorizonTextureHandler
Definition: vishorizontexturehandler.h:33
visBase::HorizonSectionTile::initTexCoordLayers
void initTexCoordLayers()
osg
Open Scene Graph.
Definition: visannot.h:29
visBase::HorizonSectionTile::cosanglexinl_
const double cosanglexinl_
Definition: vishorizonsectiontile.h:170
visBase::HorizonSectionTile::setWireframeColor
void setWireframeColor(Color &color)
visBase::TileTesselator
Definition: vishorthreadworks.h:101
visBase::HorizonSectionTile::calcGradient
double calcGradient(int row, int col, const StepInterval< int > &rcrange, bool isrow)
callback.h
CallBacker
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:185
visBase::HorizonSectionTile::setPos
void setPos(int row, int col, const Coord3 &)
visBase::HorizonSectionTile::bbox_
osg::BoundingBox bbox_
Definition: vishorizonsectiontile.h:142
visBase::HorizonSectionTile::updateBBox
void updateBBox()
visBase::HorizonSectionTile::normals_
osg::Array * normals_
Definition: vishorizonsectiontile.h:167
visBase::HorizonSectionTile::HorizonSectionTile
HorizonSectionTile(const visBase::HorizonSection &, const RowCol &origin)
visBase::HorizonSectionTile::getResolutionPrimitiveSet
bool getResolutionPrimitiveSet(TypeSet< int > &, GeometryType) const
StepInterval< int >
Coord
A cartesian coordinate in 2D space.
Definition: coord.h:25
visBase::HorizonSectionTile::setLineWidth
void setLineWidth(int)
visBase::HorizonSectionTile::txcoords_
std::vector< osg::Array * > txcoords_
Definition: vishorizonsectiontile.h:166
visBase::HorizonSectionTile::~HorizonSectionTile
~HorizonSectionTile()
visBase::HorizonSectionTile::txunits_
TypeSet< int > txunits_
Definition: vishorizonsectiontile.h:158
visBase::HorizonSectionTile::updatePrimitiveSets
void updatePrimitiveSets()
visBase::HorizonSectionTile::addTileGlueTesselator
void addTileGlueTesselator()
visBase::HorizonSectionTilePosSetup
Definition: vishorthreadworks.h:113
visBase::HorizonSectionTile::dirtyGeometry
void dirtyGeometry()
visBase::HorizonSectionTile::tileresolutiondata_
ObjectSet< TileResolutionData > tileresolutiondata_
Definition: vishorizonsectiontile.h:160
visBase::HorizonSectionTile::stateset_
osg::StateSet * stateset_
Definition: vishorizonsectiontile.h:157
visBase::HorizonSectionTile::resolutionhaschanged_
bool resolutionhaschanged_
Definition: vishorizonsectiontile.h:150
visBase::HorizonSectionTile::TileCoordinatesUpdator
friend class TileCoordinatesUpdator
Definition: vishorizonsectiontile.h:124
visBase::HorizonSectionTile::osgvertices_
osg::Array * osgvertices_
Definition: vishorizonsectiontile.h:168
visBase::HorizonSectionTile::getResolutionNormals
bool getResolutionNormals(TypeSet< Coord3 > &) const
position.h
visBase::HorizonSectionTile::desiredresolution_
char desiredresolution_
Definition: vishorizonsectiontile.h:147
visdata.h
visBase::HorizonSectionTile::nrdefinedvertices_
int nrdefinedvertices_
Definition: vishorizonsectiontile.h:148
visBase::HorizonSectionTile::neighbors_
HorizonSectionTile * neighbors_[9]
Definition: vishorizonsectiontile.h:137
visBase::HorizonSectionTile::updateAutoResolution
void updateAutoResolution(const osg::CullStack *)
vishorizonsection.h
visBase::HorizonSectionTile::setActualResolution
void setActualResolution(char)
visBase::HorizonSectionTile::bottomtileglue_
HorizonSectionTileGlue * bottomtileglue_
Definition: vishorizonsectiontile.h:140
visBase::HorizonSectionTile::enableGeometryTypeDisplay
void enableGeometryTypeDisplay(GeometryType type, bool yn)
visBase::HorizonSectionTile::addTileTesselator
void addTileTesselator(int res)
visBase::HorizonSectionTile::turnOnGlue
void turnOnGlue(bool)
visBase::HorizonSectionTile::setResolution
void setResolution(char)
visBase::HorizonSection
Definition: vishorizonsection.h:51
visBase::HorizonSectionTile::origin_
const RowCol origin_
Definition: vishorizonsectiontile.h:143
visBase::TileResolutionData
Definition: vishortileresolutiondata.h:47
color.h
visBase::HorizonSectionTile::initvertices
void initvertices()
visBase::HorizonSectionTile::hrsection_
const HorizonSection & hrsection_
Definition: vishorizonsectiontile.h:144
RowCol
IdxPair used for its row() and col().
Definition: rowcol.h:25
visBase::HorizonSectionTile::osgswitchnode_
osg::Switch * osgswitchnode_
Definition: vishorizonsectiontile.h:161
visBase::HorizonSectionTile::setNrTexCoordLayers
void setNrTexCoordLayers(int nrlayers)
visBase::HorizonSectionTile::txoppsite_
osg::Vec2f txoppsite_
Definition: vishorizonsectiontile.h:165
visBase::HorizonSectionTile::glueneedsretesselation_
char glueneedsretesselation_
0 - updated, 1 - needs update, 2 - dont disp
Definition: vishorizonsectiontile.h:154
visBase::HorizonSectionTile::setPositions
void setPositions(const TypeSet< Coord3 > &)
visBase::HorizonSectionTile::datalock_
Threads::Mutex datalock_
Definition: vishorizonsectiontile.h:162
visBase::HorizonSectionTile::tesselateResolution
void tesselateResolution(char, bool onlyifabsness)
visBase::HorizonSectionTile::needsupdatebbox_
bool needsupdatebbox_
Definition: vishorizonsectiontile.h:151
visBase::HorizonSectionTile
Definition: vishorizonsectiontile.h:51
visBase::HorizonSectionTile::getNormals
osg::Array * getNormals()
Definition: vishorizonsectiontile.h:112
thread.h
Color
Color is an RGB color object, with a transparancy. The storage is in a 4-byte integer,...
Definition: color.h:26
visBase::HorizonSectionTile::getOsgVertexArray
osg::Array * getOsgVertexArray()
Definition: vishorizonsectiontile.h:113
rowcol.h
visBase::HorizonSectionTile::getNeighborTile
const HorizonSectionTile * getNeighborTile(int idx) const
idx is bewteen 0 and 8
visBase::HorizonSectionTile::hasDefinedCoordinates
bool hasDefinedCoordinates(int idx) const
TypeSet< Coord3 >

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