summaryrefslogtreecommitdiff
path: root/support/dktools/dk3ct.ctr
blob: 060f8011f05af023c40e9c5b5fcb07db8cbd4e25 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
%%	options

copyright owner	=	Dirk Krause
copyright year	=	2012-xxxx
license		=	bsd


%%	header

#ifdef __cplusplus
extern "C" {
#endif

/**	Coordinates transformation: X value.
	@param	ct	Transformation data.
	@param	x	X value.
	@param	ec	Pointer to error code variable, may be NULL.
	@return	Transformation result.
*/
double
dk3ct_2d_x(dk3_ct_2d_t const *ct, double x, int *ec);

/**	Coordinates transformation: Y value.
	@param	ct	Transformation data.
	@param	y	X value.
	@param	ec	Pointer to error code variable, may be NULL.
	@return	Transformation result.
*/
double
dk3ct_2d_y(dk3_ct_2d_t const *ct, double y, int *ec);

/**	Coordinates transformation: Radius.
	@param	ct	Transformation data.
	@param	r	X value.
	@param	ec	Pointer to error code variable, may be NULL.
	@return	Transformation result.
*/
double
dk3ct_2d_r(dk3_ct_2d_t const *ct, double r, int *ec);

#ifdef __cplusplus
}
#endif

%%	module

#include "dk3all.h"



$!trace-include


double
dk3ct_2d_x(dk3_ct_2d_t const *ct, double x, int *ec)
{
  double back = 0.0;
  $? "+ dk3ct_2d_x %lg", x
  if(ct) {
    back = dk3ma_d_add_ok(
      dk3ma_d_mul_ok(ct->mx, x, ec),
      ct->nx,
      ec
    );
  } $? "- dk3ct_2d_x %lg", back
  return back;
}



double
dk3ct_2d_y(dk3_ct_2d_t const *ct, double y, int *ec)
{
  double back = 0.0;
  $? "+ dk3ct_2d_y %lg", y
  if(ct) {
    back = dk3ma_d_add_ok(
      dk3ma_d_mul_ok(ct->my, y, ec),
      ct->ny,
      ec
    );
  } $? "- dk3ct_2d_y %lg", back
  return back;
}



double
dk3ct_2d_r(dk3_ct_2d_t const *ct, double r, int *ec)
{
  double back = 0.0;
  $? "+ dk3ct_2d_r %lg", r
  if(ct) {
    back = dk3ma_d_mul_ok(fabs(ct->mx), r, ec);
  } $? "- dk3ct_2d_r %lg", back
  return back;
}