OpendTect  6.6
uiworld2ui.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: A.H. Bril
8  Date: 13/8/2000
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 #include "uitoolsmod.h"
14 #include "uigeom.h"
15 
16 class SurveyInfo;
17 
23 {
24 public:
25 
29 
30  bool operator ==( const World2UiData& w2ud ) const;
31  bool operator !=( const World2UiData& w2ud ) const;
32 
35 };
36 
37 
55 {
56 public:
58  uiWorld2Ui( const uiSize& sz, const uiWorldRect& wr );
59  uiWorld2Ui( const uiRect& rc, const uiWorldRect& wr );
60  uiWorld2Ui( const uiWorldRect& wr, const uiSize& sz );
61  uiWorld2Ui( const World2UiData& w );
62 
63  bool operator==(const uiWorld2Ui& ) const;
64 
65  void set( const World2UiData& w );
66  void set( const uiWorldRect& wr, const uiSize& sz );
67  void set( const uiSize& sz, const uiWorldRect& wr );
68  void set( const uiRect& rc, const uiWorldRect& wr );
69  void set( uiRect rc, const SurveyInfo& si );
71 
72  void setRemap( const uiSize& sz, const uiWorldRect& wrdrc );
73  void setRemap( const uiRect& rc, const uiWorldRect& wrdrc );
76  void setCartesianRemap( const uiSize& sz,
77  float minx, float maxx, float miny, float maxy );
78  void setCartesianRemap( const uiRect& rc,
79  float minx, float maxx, float miny, float maxy );
80 
83  void resetUiRect( const uiRect& rc );
84 
85  const World2UiData& world2UiData() const;
86 
87 
89  uiWorldRect transform( uiRect area ) const;
91  uiRect transform( uiWorldRect area ) const;
92  // Since the compiler will be confused if two functions
93  // only differ in return type, Geom::Point2D<float> is
94  // set rather than be returned.
95  void transform(const uiPoint& upt,
96  Geom::Point2D<float>& pt) const;
98  uiPoint& upt) const;
99 
100  int toUiX(float wrdx) const;
101  int toUiY(float wrdy) const;
102  float toWorldX(int uix) const;
103  float toWorldY(int uiy) const;
104 
105  template <class TT,class FT>
106  TT transformX(FT x,bool toworld) const;
107  template <class TT,class FT>
108  TT transformY(FT y,bool toworld) const;
109  template <class TT,class FT>
110  Geom::Point2D<TT> transform(const Geom::Point2D<FT>&,bool toworld) const;
111 
115 
119  void getWorldXRange( float& xmin, float& xmax ) const;
120  void getWorldYRange( float& ymin, float& ymax ) const;
121 
122 protected:
123 
125 
128 
132 
133 private:
134  void getAppropriateRange( float min, float max,
135  float& newmin, float& newmax );
136 };
137 
138 
139 template <class TT,class FT>
140 TT uiWorld2Ui::transformX( FT x, bool toworld ) const
141 {
142  if ( toworld )
143  return p0.x + (x-uiorigin.x)*fac.x;
144  else
145  return (x-p0.x)/fac.x + uiorigin.x;
146 }
147 
148 template <class TT,class FT>
149 TT uiWorld2Ui::transformY( FT y, bool toworld ) const
150 {
151  if ( toworld )
152  return p0.y + (y-uiorigin.y)*fac.y;
153  else
154  return (y-p0.y)/fac.y + uiorigin.y;
155 }
156 
157 
158 template <class TT,class FT>
160  bool toworld ) const
161 {
162  return Geom::Point2D<TT>( transformX<TT,FT>(ptin.x,toworld),
163  transformY<TT,FT>(ptin.y,toworld) );
164 }
165 
uiWorld2Ui::wrdrect_
uiWorldRect wrdrect_
the world rect used for coord. conv.
Definition: uiworld2ui.h:129
World2UiData::World2UiData
World2UiData(const uiWorldRect &w, uiSize s)
uiWorld2Ui::transformX
TT transformX(FT x, bool toworld) const
Definition: uiworld2ui.h:140
SurveyInfo::transform
Coord transform(const BinID &b) const
World2UiData
Definition: uiworld2ui.h:23
uiWorld2Ui::set
void set(const uiRect &rc, const uiWorldRect &wr)
uiRect
Definition: uigeom.h:42
uiWorld2Ui::uiWorld2Ui
uiWorld2Ui(const uiWorldRect &wr, const uiSize &sz)
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
uiWorld2Ui::toUiY
int toUiY(float wrdy) const
uiWorld2Ui::set
void set(const uiWorldRect &wr, const uiSize &sz)
World2UiData::World2UiData
World2UiData()
uiWorld2Ui::transformY
TT transformY(FT y, bool toworld) const
Definition: uiworld2ui.h:149
operator==
bool operator==(const ArrayNDInfo &a1, const ArrayNDInfo &a2)
Definition: arrayndinfo.h:81
uiWorld2Ui::setCartesianRemap
void setCartesianRemap(const uiSize &sz, float minx, float maxx, float miny, float maxy)
uiWorld2Ui::toUiX
int toUiX(float wrdx) const
uiWorld2Ui::setRemap
void setRemap(const uiRect &rc, const uiWorldRect &wrdrc)
World2UiData::sz
uiSize sz
Definition: uiworld2ui.h:33
uiWorld2Ui::uiWorld2Ui
uiWorld2Ui(const World2UiData &w)
uiWorld2Ui::p0
uiWorldPoint p0
Definition: uiworld2ui.h:126
uiWorld2Ui::setCartesianRemap
void setCartesianRemap(const uiRect &rc, float minx, float maxx, float miny, float maxy)
operator!=
bool operator!=(const ArrayNDInfo &a1, const ArrayNDInfo &a2)
Definition: arrayndinfo.h:90
Geom::PosRectangle< double >
uiWorld2Ui::getAppropriateRange
void getAppropriateRange(float min, float max, float &newmin, float &newmax)
uiWorld2Ui::transform
uiWorldRect transform(uiRect area) const
uiWorld2Ui
Class to provide coordinate conversion between a cartesian coordinate system (or any other transforme...
Definition: uiworld2ui.h:55
uiSize
Definition: uigeom.h:25
uiWorld2Ui::worldPerPixel
uiWorldPoint worldPerPixel() const
numbers may be negative
uiWorld2Ui::operator==
bool operator==(const uiWorld2Ui &) const
uiWorld2Ui::transform
uiPoint transform(uiWorldPoint p) const
uiWorld2Ui::uisize_
uiSize uisize_
Definition: uiworld2ui.h:130
uiWorld2Ui::getWorldXRange
void getWorldXRange(float &xmin, float &xmax) const
uiWorld2Ui::origin
uiWorldPoint origin() const
uiWorld2Ui::world2UiData
const World2UiData & world2UiData() const
uiWorld2Ui::set
void set(uiRect rc, const SurveyInfo &si)
uiWorld2Ui::transform
uiWorldPoint transform(uiPoint p) const
uiWorld2Ui::uiWorld2Ui
uiWorld2Ui()
Geom::Point2D< double >
uiWorld2Ui::uiWorld2Ui
uiWorld2Ui(const uiSize &sz, const uiWorldRect &wr)
uiWorld2Ui::resetUiRect
void resetUiRect(const uiRect &rc)
uiWorld2Ui::transform
void transform(const uiPoint &upt, Geom::Point2D< float > &pt) const
Geom::Point2D::y
T y
Definition: geometry.h:68
uiWorld2Ui::toWorldY
float toWorldY(int uiy) const
uiWorld2Ui::transform
uiRect transform(uiWorldRect area) const
Geom::Point2D::x
T x
Definition: geometry.h:67
uiWorld2Ui::getWorldYRange
void getWorldYRange(float &ymin, float &ymax) const
uiWorld2Ui::set
void set(const uiSize &sz, const uiWorldRect &wr)
uiWorld2Ui::transform
void transform(const Geom::Point2D< float > &pt, uiPoint &upt) const
uiWorld2Ui::uiorigin
uiPoint uiorigin
Definition: uiworld2ui.h:131
uigeom.h
uiWorld2Ui::setRemap
void setRemap(const uiSize &sz, const uiWorldRect &wrdrc)
Quite useful for survey level maps.
World2UiData::wr
uiWorldRect wr
Definition: uiworld2ui.h:34
uiWorld2Ui::toWorldX
float toWorldX(int uix) const
World2UiData::World2UiData
World2UiData(uiSize s, const uiWorldRect &w)
uiWorld2Ui::set
void set(const World2UiData &w)
uiWorld2Ui::uiWorld2Ui
uiWorld2Ui(const uiRect &rc, const uiWorldRect &wr)
uiWorld2Ui::w2ud
World2UiData w2ud
Definition: uiworld2ui.h:124
SurveyInfo
Holds survey general information.
Definition: survinfo.h:45
uiWorld2Ui::fac
uiWorldPoint fac
Definition: uiworld2ui.h:127

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