~valavanisalex/ubuntu/oneiric/inkscape/inkscape_0.48.1-2ubuntu4

« back to all changes in this revision

Viewing changes to src/desktop-affine.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2006-07-06 22:03:02 UTC
  • mto: (2.4.1 sid) (1.4.1 upstream) (45.1.3 maverick)
  • mto: This revision was merged to the branch mainline in revision 9.
  • Revision ID: james.westby@ubuntu.com-20060706220302-itgso3qgxdaxjmcy
Tags: upstream-0.44
ImportĀ upstreamĀ versionĀ 0.44

Show diffs side-by-side

added added

removed removed

Lines of Context:
12
12
 * Released under GNU GPL, read the file 'COPYING' for more information
13
13
 */
14
14
 
15
 
#include <libnr/nr-matrix.h>
16
 
#include <libnr/nr-matrix-div.h>
17
 
#include <libnr/nr-matrix-ops.h>
18
 
#include <libnr/nr-point-matrix-ops.h>
19
15
#include "desktop.h"
20
16
#include "document.h"
21
17
#include "sp-root.h"
22
 
#include "desktop-affine.h"
23
 
 
24
 
NR::Matrix const sp_desktop_w2dt_affine (SPDesktop const *desktop)
25
 
{
26
 
        g_return_val_if_fail (desktop != NULL, NULL);
27
 
 
28
 
        return desktop->w2d;
29
 
}
30
 
 
31
 
NR::Matrix const sp_desktop_dt2w_affine (SPDesktop const *desktop)
32
 
{
33
 
        g_return_val_if_fail (desktop != NULL, NULL);
34
 
 
35
 
        return desktop->d2w;
36
 
}
37
 
 
38
 
NR::Matrix const sp_desktop_dt2doc_affine (SPDesktop const *desktop)
39
 
{
40
 
        g_return_val_if_fail (desktop != NULL, NULL);
41
 
 
42
 
        return desktop->doc2dt.inverse();
43
 
}
44
 
 
45
 
NR::Matrix const sp_desktop_doc2dt_affine (SPDesktop const *desktop)
46
 
{
47
 
        g_return_val_if_fail (desktop != NULL, NULL);
48
 
 
49
 
        return desktop->doc2dt;
50
 
}
51
 
 
52
 
NR::Matrix const sp_desktop_w2doc_affine (SPDesktop const *desktop)
53
 
{
54
 
        g_return_val_if_fail (desktop != NULL, NULL);
55
 
 
56
 
        return desktop->w2d / desktop->doc2dt;
57
 
}
58
 
 
59
 
NR::Matrix const sp_desktop_doc2w_affine(SPDesktop const *desktop)
60
 
{
61
 
        g_return_val_if_fail (desktop != NULL, NULL);
62
 
 
63
 
        return desktop->doc2dt * desktop->d2w;
64
 
}
 
18
#include "libnr/nr-matrix-ops.h"
65
19
 
66
20
NR::Matrix const sp_desktop_root2dt_affine (SPDesktop const *dt)
67
21
{
68
22
        SPRoot const *root = SP_ROOT(SP_DOCUMENT_ROOT(dt->doc()));
69
 
        return root->c2p * dt->doc2dt;
 
23
        return root->c2p * dt->doc2dt();
70
24
}
71
25
 
72
26
NR::Matrix const sp_desktop_dt2root_affine (SPDesktop const *dt)
74
28
        return sp_desktop_root2dt_affine(dt).inverse();
75
29
}
76
30
 
77
 
 
78
 
 
79
 
NR::Point sp_desktop_w2d_xy_point(SPDesktop const *dt, NR::Point const p)
80
 
{
81
 
        assert (dt != NULL);
82
 
 
83
 
        return p * dt->w2d;
84
 
}
85
 
 
86
 
NR::Point sp_desktop_d2w_xy_point(SPDesktop const *dt, NR::Point const p)
87
 
{
88
 
        assert (dt != NULL);
89
 
 
90
 
        return p * dt->d2w;
91
 
}
92
 
 
93
 
NR::Point sp_desktop_d2doc_xy_point(SPDesktop const *dt, NR::Point const p)
94
 
{
95
 
        assert (dt != NULL);
96
 
 
97
 
        return p / dt->doc2dt;
98
 
}
99
 
 
100
 
NR::Point sp_desktop_doc2d_xy_point(SPDesktop const *dt, NR::Point const p)
101
 
{
102
 
        assert (dt != NULL);
103
 
 
104
 
        return p * dt->doc2dt;
105
 
}
106
 
 
107
 
NR::Point sp_desktop_w2doc_xy_point (SPDesktop const *dt, const NR::Point p)
108
 
{
109
 
        assert (dt != NULL);
110
 
 
111
 
        return p * dt->w2d / dt->doc2dt;
112
 
}
113
 
 
114
 
NR::Point sp_desktop_doc2w_xy_point(SPDesktop const *dt, NR::Point const p)
115
 
{
116
 
        assert (dt != NULL);
117
 
 
118
 
        return p * dt->doc2dt * dt->d2w;
119
 
}
120
 
 
121
31
NR::Point sp_desktop_root2dt_xy_point(SPDesktop const *dt, NR::Point const p)
122
32
{
123
33
        return p * sp_desktop_root2dt_affine(dt);