|
OpenZGY/C++ API and Internals (ALPHA)
Access seismic data stored in ZGY format.
|
#include <iltf2d.h>
Classes | |
| struct | TiePoint |
Public Types | |
| typedef double | value_type |
| typedef ImplicitLinearTransform2d | this_type |
Public Member Functions | |
| ImplicitLinearTransform2d () | |
| ImplicitLinearTransform2d (const TiePoint &pt0, const TiePoint &pt1, const TiePoint &pt2) | |
| bool | operator== (const this_type &other) const |
| bool | operator!= (const this_type &other) const |
| bool | Compare (const this_type &other, const value_type &errtol=0) const |
| this_type & | Push (const this_type &other) |
| this_type & | Translate (value_type t0, value_type t1) |
| this_type & | Rotate (value_type r) |
| this_type & | Scale (value_type s0, value_type s1) |
| void | Apply (value_type *b, const value_type *a) const |
| void | operator() (value_type *b, const value_type *a) const |
Static Public Member Functions | |
| static TiePoint | makeTiePoint () |
| static TiePoint | makeTiePoint (value_type a0, value_type a1, value_type b0, value_type b1) |
| static this_type | Identity () |
This class represents a linear transform T: R^2 -> R^2 from 2-dimensional Euclidean space A to 2-dimensional Euclidean space B, defined implicitly by three given tie points.
Type of values processed by this class.
| InternalZGY::ImplicitLinearTransform2d::ImplicitLinearTransform2d | ( | ) |
Default constructor. Produces 1-to-1 mapping.
| InternalZGY::ImplicitLinearTransform2d::ImplicitLinearTransform2d | ( | const TiePoint & | pt0, |
| const TiePoint & | pt1, | ||
| const TiePoint & | pt2 | ||
| ) |
Construct from three tie-points. Fails by throwing an exception if the tie-points don't span a 2-dimensional space (i.e. lie along a straight line in either space).
| pt0 | First tie-point. |
| pt1 | Second tie-point. |
| pt2 | Third tie-point. |
| void InternalZGY::ImplicitLinearTransform2d::Apply | ( | value_type * | b, |
| const value_type * | a | ||
| ) | const |
Convert from space A to space B.
| b | Pointer to buffer holding (at least) two elements of value_type which will receive the transformed coordinate in B. |
| a | Pointer to buffer holding (at least) two elements of value_type serving as the A coordinate to transform. |
| bool InternalZGY::ImplicitLinearTransform2d::Compare | ( | const this_type & | other, |
| const value_type & | errtol = 0 |
||
| ) | const |
| other | Instance to compare with. |
| errtol | Entry-by-entry absolute error tolerance. |
|
static |
|
static |
Partial workaround for problems on Windows with forcing instantiation of the above. Define member functions to create instances. Unfortunately this just solves part of the problem, since the compiler may generate calls to the default constructor.
| bool InternalZGY::ImplicitLinearTransform2d::operator!= | ( | const this_type & | other | ) | const |
| other | Instance to compare with. |
| bool InternalZGY::ImplicitLinearTransform2d::operator== | ( | const this_type & | other | ) | const |
| other | Instance to compare with. |
| ImplicitLinearTransform2d & InternalZGY::ImplicitLinearTransform2d::Push | ( | const this_type & | other | ) |
Push another transform onto this one, i.e. front-multiply it with this.
| other | The other transform. |
| ImplicitLinearTransform2d & InternalZGY::ImplicitLinearTransform2d::Rotate | ( | value_type | r | ) |
| r | Rotation in radians counter-clockwise relative to first axis (polar rotation). |
| ImplicitLinearTransform2d & InternalZGY::ImplicitLinearTransform2d::Scale | ( | value_type | s0, |
| value_type | s1 | ||
| ) |
| s0 | Scaling in first dimension. |
| s1 | Scaling in second dimension. |
| ImplicitLinearTransform2d & InternalZGY::ImplicitLinearTransform2d::Translate | ( | value_type | t0, |
| value_type | t1 | ||
| ) |
| t0 | Translation in first dimension. |
| t1 | Translation in second dimension. |
1.8.17