OpendTect  6.3
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 ________________________________________________________________________
10 
11 -*/
12 
13 #include "uitoolsmod.h"
14 #include "uitoolsmod.h"
15 #include "uigraphicsview.h"
16 #include "coltabsequence.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 
41 public:
42 
43  mStruct(uiTools) Setup
44  {
45  enum Type { Rose, Scatter, Vals };
46  Setup( Type t=Rose )
47  : type_(t)
48  , circlels_(OD::LineStyle::Solid)
49  , sectorls_(OD::LineStyle::Solid)
50  , equils_(OD::LineStyle::Dot)
51  , markstyle_(OD::MarkerStyle2D::Circle)
52  , docount_(false)
53  , curissel_(true)
54  , valcolor_(true)
55  , clipratio_(0.02)
56  , prefsize_(400,400) {}
57 
58  mDefSetupMemb(Type,type)
63  mDefSetupMemb(bool,curissel) // Must clicked sector become selected?
64  mDefSetupMemb(bool,docount) // Show count rather than val_ (Vals)
65  mDefSetupMemb(bool,valcolor) // Use val_ to color (Rose)
66  mDefSetupMemb(float,clipratio) // Vals
67  mDefSetupMemb(uiString,hdrannot)
68  mDefSetupMemb(BufferString,nameforpos)
69  mDefSetupMemb(BufferString,nameforval)
70  mDefSetupMemb(uiSize,prefsize)
71  };
72 
75 
76  void setData(const Stats::DirectionalData&);
77  void setData(const float*,int);
78  Stats::DirectionalData::Setup& dataSetup() { return data_.setup_; }
79 
80  Setup& setup() { return setup_; }
81  const Stats::DirectionalData& data() const { return data_; }
82 
83  int nrSectors() const { return data().size(); }
84  int size() const { return nrSectors(); }
85  float angle( int s ) const { return data_.angle(s); }
86 
88  int curSector() const { return cursector_; }
89  int selSector() const { return selsector_; }
90  void setSelectedSector( int i )
91  { selsector_ = i; }
92 
93 protected:
94 
97 
98  bool isempty_;
103  int radius_;
107 
125 
126  void mouseRelease(CallBacker*);
127  void reSized(CallBacker*);
128 
129  void gatherInfo();
130  void draw();
131  void drawGrid();
132  void drawData();
133  void drawScatter();
134  void drawVals();
135  void drawRose();
136  void drawSelection();
137  uiCurvedItem* drawSectorPart(int,Interval<float>,Color);
138  void drawSectorParts(bool);
139 
140  void drawAnnot();
141  void drawDirAnnot();
142  void drawHeader();
143  void drawScale();
144  void drawColTab();
145 
146  uiPoint dataUIPos(float r,float ang) const;
147  uiPoint usrUIPos(float r,float ang) const;
148 
149 };
#define mExpClass(module)
Definition: commondefs.h:157
uiGraphicsItemGroup & curveitems_
Definition: uidirectionalplot.h:117
uiMarkerItem * scalestartptitem_
Definition: uidirectionalplot.h:119
Setup & setup()
Definition: uidirectionalplot.h:80
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
FixedString Setup()
Definition: keystrs.h:113
A circle of data.
Definition: statdirdata.h:53
int curSector() const
Definition: uidirectionalplot.h:88
#define mStruct(module)
Definition: commondefs.h:162
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
int selsector_
Definition: uidirectionalplot.h:105
uiGraphicsItemGroup & sectorlines_
Definition: uidirectionalplot.h:108
uiCurvedItem * selsectoritem_
Definition: uidirectionalplot.h:110
Definition: draw.h:119
int cursector_
Definition: uidirectionalplot.h:104
Definition: uigraphicsitemimpl.h:414
uiColTabItem * coltabitm_
Definition: uidirectionalplot.h:124
uiPoint center_
Definition: uidirectionalplot.h:102
Definition: draw.h:123
uiTextItem * scalestopitm_
Definition: uidirectionalplot.h:123
Stats::DirectionalData data_
Definition: uidirectionalplot.h:96
int size() const
Definition: uidirectionalplot.h:84
Definition: uistring.h:88
Definition: uiparent.h:24
Definition: uigraphicsitemimpl.h:344
int radius_
Definition: uidirectionalplot.h:103
bool isempty_
Definition: uidirectionalplot.h:98
ObjectSet< uiLineItem > dirlnitms_
Definition: uidirectionalplot.h:115
uiTextItem * scaleannotitm_
Definition: uidirectionalplot.h:121
Definition: uigeom.h:23
uiCircleItem * outercircleitm_
Definition: uidirectionalplot.h:109
float angle(int s) const
Definition: uidirectionalplot.h:85
Definition: uigraphicsitem.h:154
Definition: draw.h:63
int maxcount_
Definition: uidirectionalplot.h:101
ObjectSet< uiCircleItem > equicircles_
Definition: uidirectionalplot.h:113
ConstRefMan< ColTab::Sequence > colseq_
Definition: uidirectionalplot.h:106
Definition: statdirdata.h:57
Definition: draw.h:123
ObjectSet< uiTextItem > dirtxtitms_
Definition: uidirectionalplot.h:114
Interval< float > valrg_
Definition: uidirectionalplot.h:100
#define mDefSetupMemb(typ, memb)
Definition: commondefs.h:129
Definition: draw.h:67
int selSector() const
Definition: uidirectionalplot.h:89
uiTextItem * hdrannotitm1_
Definition: uidirectionalplot.h:111
Definition: uigraphicsitemimpl.h:97
Type
Definition: angles.h:25
Definition: uicoltabgraphicsitem.h:24
uiCurvedItem * scalearcitm_
Definition: uidirectionalplot.h:120
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
Stats::DirectionalData::Setup & dataSetup()
Definition: uidirectionalplot.h:78
const Stats::DirectionalData & data() const
Definition: uidirectionalplot.h:81
Interval< float > posrg_
Definition: uidirectionalplot.h:99
uiGraphicsItemGroup & markeritems_
Definition: uidirectionalplot.h:116
Setup setup_
Definition: uidirectionalplot.h:95
Definition: uigraphicsview.h:49
Color is an RGB color object, with a transparancy. The storage is in a 4-byte integer, similar to Qt.
Definition: color.h:24
Definition: uigraphicsitemimpl.h:277
int nrSectors() const
Definition: uidirectionalplot.h:83
creates a directional plot: Rose diagrams and more.
Definition: uidirectionalplot.h:39
uiLineItem * scalelineitm_
Definition: uidirectionalplot.h:118
void setSelectedSector(int i)
Definition: uidirectionalplot.h:90
Definition: uigraphicsitemimpl.h:109
uiTextItem * hdrannotitm2_
Definition: uidirectionalplot.h:112
uiTextItem * scalestartitm_
Definition: uidirectionalplot.h:122
Notifier< uiDirectionalPlot > sectorPicked
Definition: uidirectionalplot.h:87

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