OpendTect  6.6
uistratdispdata.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: Bruno
8  Date: Mar 2010
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "uistratmod.h"
15 #include "uistratmod.h"
16 #include "callback.h"
17 #include "color.h"
18 #include "ranges.h"
19 #include "bufstring.h"
20 #include "bufstringset.h"
21 
22 
23 namespace Strat
24 {
25  class UnitRef;
26  class LeavedUnitRef;
27  class NodeOnlyUnitRef;
28  class NodeUnitRef;
29  class RefTree;
30 }
31 
32 class uiStratRefTree;
33 class uiTreeViewItem;
34 
36 {
37 public:
39  ~StratDispData() { eraseData(); }
40 
41  mStruct(uiStrat) Unit
42  {
43  Unit(const char* nm, const char* fullcode=0,
44  const Color& col = Color::White() )
45  : name_( nm )
46  , fullcode_(fullcode)
47  , color_(col)
48  , isdisplayed_(true)
49  {}
50 
51  const char* name() const { return name_.buf(); }
52  const char* fullCode() const { return fullcode_.buf(); }
53 
54  Color color_;
55  Interval<float> zrg_;
56  bool isdisplayed_;
57 
58  int colidx_; //tree depth
59 
60  protected :
61 
62  BufferString name_;
63  BufferString fullcode_;
64  };
65 
66 
67  mStruct(uiStrat) Level
68  {
69  Level(const char* nm,const char* unitcode)
70  : unitcode_(unitcode)
71  , name_( nm )
72  {}
73 
74  const BufferString name_;
75  const BufferString unitcode_;
76  Color color_;
77  float zpos_;
78  };
79 
80 
81  mStruct(uiStrat) Column
82  {
83  Column( const char* nm )
84  : name_(nm)
85  , isdisplayed_(true)
86  {}
87  ~Column()
88  {
89  deepErase( units_ );
90  deepErase( levels_ );
91  }
92 
93  const BufferString name_;
94  bool isdisplayed_;
95 
96  ObjectSet<Unit> units_;
97  ObjectSet<Level> levels_;
98  };
99 
100 
101 
102  void eraseData()
103  {
104  deepErase( cols_ );
105  }
106 
107  void addCol( Column* col )
108  { cols_ += col; }
109 
110  int nrCols() const
111  { return cols_.size(); }
112  int nrUnits( int colidx ) const
113  { return cols_[colidx]->units_.size(); }
114  void addUnit( int colidx, Unit* un )
115  { cols_[colidx]->units_ += un; un->colidx_=colidx; }
116 
117  const Column* getCol( int idx ) const
118  { return cols_[idx]; }
119  Column* getCol( int idx )
120  { return cols_[idx]; }
121  Unit* getUnit( int colidx, int uidx )
122  { return gtUnit( colidx, uidx ); }
123  const Unit* getUnit( int colidx, int uidx ) const
124  { return gtUnit( colidx, uidx ); }
125 
126  int nrLevels( int colidx ) const
127  { return cols_[colidx]->levels_.size(); }
128  const Level* getLevel( int colidx, int lidx ) const
129  { return cols_[colidx]->levels_[lidx]; }
130 
131  int nrDisplayedCols() const
132  {
133  int nr = 0;
134  for ( int idx=0; idx<cols_.size(); idx++)
135  { if ( cols_[idx]->isdisplayed_ ) nr++; }
136  return nr;
137  }
138 
139 protected :
140 
141  Unit* gtUnit( int colidx, int uidx ) const
142  { return const_cast<Unit*>(
143  cols_[colidx]->units_[uidx] ); }
144 
146 };
147 
148 
149 
153 {
154 public:
156  bool withaux=true,
157  bool withlvls=true);
159 
160  void setTree();
162 
163  int levelColIdx() const { return levelcolidx_; }
164 
165 protected:
166 
169 
170  bool withauxs_; //lithologies & descriptions
175 
176  void readUnits();
181  void addAnnot(const char*,Interval<float>& posrg,bool);
182  void readFromTree();
183 
186 };
187 
188 
193 {
194 public:
197 
199 
200  void handleUnitMenu(const char*);
201  void handleUnitProperties(const char*);
202  void setUnitLvl(const char*);
203  void addUnit(const char*);
204 
205 protected:
206 
208 
209 public:
211 };
212 
uiStratTreeToDisp::addUnit
void addUnit(const Strat::NodeUnitRef &)
uiStratTreeToDisp::withlevels_
bool withlevels_
Definition: uistratdispdata.h:171
uiStratTreeToDisp::triggerDataChange
void triggerDataChange(CallBacker *)
uiStratTreeToDisp::newtreeRead
Notifier< uiStratTreeToDisp > newtreeRead
Definition: uistratdispdata.h:161
StratDispData::nrDisplayedCols
int nrDisplayedCols() const
Definition: uistratdispdata.h:131
uiStratTreeToDisp::desccolidx_
int desccolidx_
Definition: uistratdispdata.h:173
StratDispData::getUnit
Unit * getUnit(int colidx, int uidx)
Definition: uistratdispdata.h:121
StratDispData::nrUnits
int nrUnits(int colidx) const
Definition: uistratdispdata.h:112
uiStratTreeToDisp::levelColIdx
int levelColIdx() const
Definition: uistratdispdata.h:163
uiStratTreeToDisp::addDescs
void addDescs(const Strat::LeavedUnitRef &)
uiStratDispToTree
Definition: uistratdispdata.h:193
uiStratTreeToDisp::readUnits
void readUnits()
ObjectSet
Set of pointers to objects.
Definition: commontypes.h:31
uiStratTreeToDisp::withauxs_
bool withauxs_
Definition: uistratdispdata.h:170
StratDispData::addCol
void addCol(Column *col)
Definition: uistratdispdata.h:107
uiStratTreeToDisp::levelcolidx_
int levelcolidx_
Definition: uistratdispdata.h:174
uiStratDispToTree::uiStratDispToTree
uiStratDispToTree(uiStratRefTree &)
StratDispData::cols_
ObjectSet< Column > cols_
Definition: uistratdispdata.h:145
Strat::NodeUnitRef
UnitRef for units containing other units only.
Definition: stratunitref.h:118
uiStratDispToTree::handleUnitMenu
void handleUnitMenu(const char *)
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
Strat::LeavedUnitRef
UnitRef for units containing Leaf units only.
Definition: stratunitref.h:199
uiStratTreeToDisp::treeDel
void treeDel(CallBacker *)
uiStratTreeToDisp::uiStratTreeToDisp
uiStratTreeToDisp(StratDispData &, bool withaux=true, bool withlvls=true)
StratDispData::eraseData
void eraseData()
Definition: uistratdispdata.h:102
StratDispData::nrCols
int nrCols() const
Definition: uistratdispdata.h:110
callback.h
CallBacker
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:185
StratDispData::StratDispData
StratDispData()
Definition: uistratdispdata.h:38
uiStratDispToTree::handleUnitProperties
void handleUnitProperties(const char *)
StratDispData::getLevel
const Level * getLevel(int colidx, int lidx) const
Definition: uistratdispdata.h:128
Strat::RefTree
Tree of UnitRef's
Definition: stratreftree.h:29
bufstring.h
uiStratTreeToDisp::data_
StratDispData & data_
Definition: uistratdispdata.h:167
uiStratTreeToDisp::lithocolidx_
int lithocolidx_
Definition: uistratdispdata.h:172
uiStratDispToTree::setUnitLvl
void setUnitLvl(const char *)
uiStratTreeToDisp::~uiStratTreeToDisp
~uiStratTreeToDisp()
uiStratRefTree
Displays a Strat::RefTree.
Definition: uistratreftree.h:33
uiStratDispToTree::addUnit
void addUnit(const char *)
StratDispData::~StratDispData
~StratDispData()
Definition: uistratdispdata.h:39
uiStratTreeToDisp::setTree
void setTree()
uiStratDispToTree::uitree_
uiStratRefTree & uitree_
Definition: uistratdispdata.h:207
mStruct
#define mStruct(module)
Definition: commondefs.h:182
uiStratTreeToDisp::tree_
Strat::RefTree * tree_
Definition: uistratdispdata.h:168
StratDispData::getUnit
const Unit * getUnit(int colidx, int uidx) const
Definition: uistratdispdata.h:123
Notifier< uiStratTreeToDisp >
uiStratTreeToDisp::addLevel
void addLevel(const Strat::LeavedUnitRef &)
uiStratTreeToDisp
used to gather all units and tied levels from a tree for display
Definition: uistratdispdata.h:153
uiStratTreeToDisp::readFromTree
void readFromTree()
uiStratDispToTree::getItemFromTree
uiTreeViewItem * getItemFromTree(const char *)
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
bufstringset.h
deepErase
void deepErase(BufferStringSet &)
Strat
Stratigraphy.
Definition: stratlevel.h:26
StratDispData
Definition: uistratdispdata.h:36
uiStratTreeToDisp::addAnnot
void addAnnot(const char *, Interval< float > &posrg, bool)
sKey::Unit
FixedString Unit()
Definition: keystrs.h:177
color.h
StratDispData::gtUnit
Unit * gtUnit(int colidx, int uidx) const
Definition: uistratdispdata.h:141
StratDispData::getCol
Column * getCol(int idx)
Definition: uistratdispdata.h:119
StratDispData::getCol
const Column * getCol(int idx) const
Definition: uistratdispdata.h:117
uiStratDispToTree::setCurrentTreeItem
uiTreeViewItem * setCurrentTreeItem(const char *)
ranges.h
StratDispData::nrLevels
int nrLevels(int colidx) const
Definition: uistratdispdata.h:126
Interval< float >
Color
Color is an RGB color object, with a transparancy. The storage is in a 4-byte integer,...
Definition: color.h:26
uiStratDispToTree::~uiStratDispToTree
~uiStratDispToTree()
uiStratTreeToDisp::addLithologies
void addLithologies(const Strat::LeavedUnitRef &)
Color::White
static Color White()
Definition: color.h:90
StratDispData::addUnit
void addUnit(int colidx, Unit *un)
Definition: uistratdispdata.h:114
sKey::Level
FixedString Level()
Definition: keystrs.h:86
uiTreeViewItem
Definition: uitreeview.h:202

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