OpendTect  6.6
uidirectionalplot.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: Bert
8  Date: Mar 2009
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "uitoolsmod.h"
15 #include "uitoolsmod.h"
16 #include "uigraphicsview.h"
17 #include "statdirdata.h"
18 #include "draw.h"
19 
20 class uiTextItem;
21 class uiLineItem;
22 class uiCircleItem;
23 class uiColTabItem;
24 class uiCurvedItem;
25 class uiMarkerItem;
26 class uiGraphicsItem;
28 namespace ColTab { class Sequence; }
29 
42 public:
43 
44  mStruct(uiTools) Setup
45  {
46  enum Type { Rose, Scatter, Vals };
47  Setup( Type t=Rose )
48  : type_(t)
49  , circlels_(OD::LineStyle::Solid)
50  , sectorls_(OD::LineStyle::Solid)
51  , equils_(OD::LineStyle::Dot)
52  , markstyle_(MarkerStyle2D::Circle)
53  , hlmarkstyle_(MarkerStyle2D::Square,4,
54  Color::Green())
55  , docount_(false)
56  , curissel_(true)
57  , valcolor_(true)
58  , clipratio_(0.02)
59  , prefsize_(400,400) {}
60 
61  mDefSetupMemb(Type,type)
65  mDefSetupMemb(MarkerStyle2D,markstyle)
66  mDefSetupMemb(MarkerStyle2D,hlmarkstyle) // Highlight marker style
67  mDefSetupMemb(bool,curissel) // Must clicked sector become selected?
68  mDefSetupMemb(bool,docount) // Show count rather than val_ (Vals)
69  mDefSetupMemb(bool,valcolor) // Use val_ to color (Rose)
70  mDefSetupMemb(float,clipratio) // Vals
71  mDefSetupMemb(BufferString,hdrannot)
72  mDefSetupMemb(BufferString,nameforpos)
73  mDefSetupMemb(BufferString,nameforval)
74  mDefSetupMemb(uiSize,prefsize)
75  };
76 
79 
81  void setData(const float*,int);
82  Stats::DirectionalData::Setup& dataSetup() { return data_.setup_; }
83 
84  Setup& setup() { return setup_; }
85  const Stats::DirectionalData& data() const { return data_; }
86 
87  int nrSectors() const { return data().size(); }
88  int size() const { return nrSectors(); }
89  float angle( int s ) const { return data_.angle(s); }
90 
92  int curSector() const { return cursector_; }
93  int selSector() const { return selsector_; }
94  void setSelectedSector( int i )
95  { selsector_ = i; }
96 
97  void setColTab(const char* nm);
98  void showColTabItem(bool);
99  void showScaleItem(bool);
100 
101  void setNrEquicircles(int);
102  void getMousePosInfo(int& count,float& angle,
103  float& pos);
104 
106  void setHighlighted(int);
107 
108 protected:
109 
113 
114  bool isempty_;
118  int nrequicircles_ = 3;
120  int radius_;
124 
142 
145 
146  void gatherInfo();
147  void draw();
148  void drawGrid();
149  void drawData();
150  void drawScatter();
151  void drawVals();
152  void drawRose();
155  void drawSectorParts(bool);
156 
157  void drawAnnot();
158  void drawDirAnnot();
159  void drawHeader();
160  void drawScale();
161  void drawColTab();
162 
163  uiPoint dataUIPos(float r,float ang) const;
164  uiPoint usrUIPos(float r,float ang) const;
165 
166 };
167 
uiDirectionalPlot::selsectoritem_
uiCurvedItem * selsectoritem_
Definition: uidirectionalplot.h:127
uiDirectionalPlot::draw
void draw()
uiDirectionalPlot::setData
void setData(const Stats::DirectionalData &)
uiDirectionalPlot::scalestartitm_
uiTextItem * scalestartitm_
Definition: uidirectionalplot.h:139
OD::LineStyle
Definition: draw.h:118
uiDirectionalPlot::coltabitm_
uiColTabItem * coltabitm_
Definition: uidirectionalplot.h:141
uiDirectionalPlot::data
const Stats::DirectionalData & data() const
Definition: uidirectionalplot.h:85
uiDirectionalPlot::selSector
int selSector() const
Definition: uidirectionalplot.h:93
uiLineItem
Definition: uigraphicsitemimpl.h:110
uiDirectionalPlot::drawData
void drawData()
uiDirectionalPlot::getMousePosInfo
void getMousePosInfo(int &count, float &angle, float &pos)
ObjectSet< uiCircleItem >
ColTab
Color Table
Definition: coltab.h:22
uiDirectionalPlot::cursector_
int cursector_
Definition: uidirectionalplot.h:121
uiDirectionalPlot::~uiDirectionalPlot
~uiDirectionalPlot()
uiDirectionalPlot::drawGrid
void drawGrid()
uiDirectionalPlot::gatherInfo
void gatherInfo()
OD::LineStyle::Dot
@ Dot
Definition: draw.h:121
uiDirectionalPlot::scaleannotitm_
uiTextItem * scaleannotitm_
Definition: uidirectionalplot.h:138
uiDirectionalPlot::setup
Setup & setup()
Definition: uidirectionalplot.h:84
uiDirectionalPlot::sectorlines_
uiGraphicsItemGroup & sectorlines_
Definition: uidirectionalplot.h:125
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
uiDirectionalPlot::scalestopitm_
uiTextItem * scalestopitm_
Definition: uidirectionalplot.h:140
uiDirectionalPlot::drawSectorParts
void drawSectorParts(bool)
uiDirectionalPlot::drawAnnot
void drawAnnot()
uiGraphicsView
Definition: uigraphicsview.h:51
Color::Green
static Color Green()
Definition: color.h:85
uiDirectionalPlot::mouseRelease
void mouseRelease(CallBacker *)
uiDirectionalPlot::drawDirAnnot
void drawDirAnnot()
OD::LineStyle::Solid
@ Solid
Definition: draw.h:121
uiDirectionalPlot::center_
uiPoint center_
Definition: uidirectionalplot.h:119
uiDirectionalPlot::drawSectorPart
uiCurvedItem * drawSectorPart(int, Interval< float >, Color)
mDefSetupMemb
#define mDefSetupMemb(typ, memb)
Definition: commondefs.h:154
uiDirectionalPlot::uiDirectionalPlot
mODTextTranslationClass(uiDirectionalPlot) public uiDirectionalPlot(uiParent *, const Setup &)
CallBacker
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:185
sKey::Setup
FixedString Setup()
Definition: keystrs.h:139
uiDirectionalPlot::showScaleItem
void showScaleItem(bool)
uiDirectionalPlot::data_
Stats::DirectionalData data_
Definition: uidirectionalplot.h:111
mODTextTranslationClass
#define mODTextTranslationClass(clss)
Definition: uistring.h:40
MarkerStyle2D::Circle
@ Circle
Definition: draw.h:63
uiDirectionalPlot::radius_
int radius_
Definition: uidirectionalplot.h:120
uiDirectionalPlot::highlightidxs_
TypeSet< int > highlightidxs_
Definition: uidirectionalplot.h:112
uiDirectionalPlot::showColTabItem
void showColTabItem(bool)
uiDirectionalPlot::dirlnitms_
ObjectSet< uiLineItem > dirlnitms_
Definition: uidirectionalplot.h:132
uiDirectionalPlot::angle
float angle(int s) const
Definition: uidirectionalplot.h:89
Stats::DirectionalData::Setup
Definition: statdirdata.h:59
uiDirectionalPlot::valrg_
Interval< float > valrg_
Definition: uidirectionalplot.h:116
uiDirectionalPlot::curSector
int curSector() const
Definition: uidirectionalplot.h:92
ColTab::Sequence
Maps from [0,1] -> Color.
Definition: coltabsequence.h:37
Angle::Type
Type
Definition: angles.h:26
uiDirectionalPlot::hdrannotitm1_
uiTextItem * hdrannotitm1_
Definition: uidirectionalplot.h:128
uiDirectionalPlot::isempty_
bool isempty_
Definition: uidirectionalplot.h:114
uiDirectionalPlot::dirtxtitms_
ObjectSet< uiTextItem > dirtxtitms_
Definition: uidirectionalplot.h:131
mStruct
#define mStruct(module)
Definition: commondefs.h:182
Setup
Definition: ceemdalgo.h:161
uiDirectionalPlot::reSized
void reSized(CallBacker *)
uiDirectionalPlot::outercircleitm_
uiCircleItem * outercircleitm_
Definition: uidirectionalplot.h:126
uiMarkerItem
Definition: uigraphicsitemimpl.h:340
uiDirectionalPlot::drawRose
void drawRose()
Notifier< uiDirectionalPlot >
uiDirectionalPlot::maxcount_
int maxcount_
Definition: uidirectionalplot.h:117
uiDirectionalPlot::equicircles_
ObjectSet< uiCircleItem > equicircles_
Definition: uidirectionalplot.h:130
uiDirectionalPlot
creates a directional plot: Rose diagrams and more.
Definition: uidirectionalplot.h:41
uiDirectionalPlot::drawHeader
void drawHeader()
uiSize
Definition: uigeom.h:25
uiDirectionalPlot::dataUIPos
uiPoint dataUIPos(float r, float ang) const
uiCircleItem
Definition: uigraphicsitemimpl.h:98
statdirdata.h
draw.h
uiCurvedItem
Definition: uigraphicsitemimpl.h:411
uiColTabItem
Definition: uigraphicscoltab.h:26
uiDirectionalPlot::setData
void setData(const float *, int)
Rose dgrm.
MarkerStyle2D
Definition: draw.h:60
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
uiDirectionalPlot::setHighlighted
void setHighlighted(int)
MarkerStyle2D::Square
@ Square
Definition: draw.h:63
uiDirectionalPlot::nrSectors
int nrSectors() const
Definition: uidirectionalplot.h:87
uiDirectionalPlot::markeritems_
uiGraphicsItemGroup & markeritems_
Definition: uidirectionalplot.h:133
uiDirectionalPlot::drawColTab
void drawColTab()
Geom::Point2D< int >
uiDirectionalPlot::size
int size() const
Definition: uidirectionalplot.h:88
uiDirectionalPlot::hdrannotitm2_
uiTextItem * hdrannotitm2_
Definition: uidirectionalplot.h:129
uiDirectionalPlot::drawVals
void drawVals()
uiDirectionalPlot::drawScatter
void drawScatter()
uiDirectionalPlot::scalearcitm_
uiCurvedItem * scalearcitm_
Definition: uidirectionalplot.h:137
uiDirectionalPlot::sectorPicked
Notifier< uiDirectionalPlot > sectorPicked
Definition: uidirectionalplot.h:91
uiParent
Definition: uiparent.h:26
Stats::DirectionalData
A circle of data.
Definition: statdirdata.h:55
uiDirectionalPlot::drawScale
void drawScale()
uiDirectionalPlot::setColTab
void setColTab(const char *nm)
uiDirectionalPlot::scalestartptitem_
uiMarkerItem * scalestartptitem_
Definition: uidirectionalplot.h:136
uiDirectionalPlot::curveitems_
uiGraphicsItemGroup & curveitems_
Definition: uidirectionalplot.h:134
uiDirectionalPlot::setNrEquicircles
void setNrEquicircles(int)
uiDirectionalPlot::scalelineitm_
uiLineItem * scalelineitm_
Definition: uidirectionalplot.h:135
uiDirectionalPlot::dataSetup
Stats::DirectionalData::Setup & dataSetup()
Definition: uidirectionalplot.h:82
uiGraphicsItemGroup
Definition: uigraphicsitem.h:165
Interval< float >
uiDirectionalPlot::posrg_
Interval< float > posrg_
Definition: uidirectionalplot.h:115
Color
Color is an RGB color object, with a transparancy. The storage is in a 4-byte integer,...
Definition: color.h:26
uiDirectionalPlot::setup_
Setup setup_
Definition: uidirectionalplot.h:110
uiDirectionalPlot::setHighlighted
void setHighlighted(const TypeSet< int > &)
uiDirectionalPlot::usrUIPos
uiPoint usrUIPos(float r, float ang) const
uiDirectionalPlot::drawSelection
void drawSelection()
uiDirectionalPlot::colseq_
const ColTab::Sequence * colseq_
Definition: uidirectionalplot.h:123
uiTextItem
Definition: uigraphicsitemimpl.h:276
TypeSet< int >
uiDirectionalPlot::setSelectedSector
void setSelectedSector(int i)
Definition: uidirectionalplot.h:94
uigraphicsview.h
uiDirectionalPlot::selsector_
int selsector_
Definition: uidirectionalplot.h:122

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