1/*************************************************************************
2 *
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
6 *
7 * OpenOffice.org - a multi-platform office productivity suite
8 *
9 * This file is part of OpenOffice.org.
10 *
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org.  If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
25 *
26 ************************************************************************/
27#ifndef com_sun_star_chart2_XTransformation_idl
28#define com_sun_star_chart2_XTransformation_idl
29
30#ifndef __com_sun_star_uno_XInterface_idl__
31#include <com/sun/star/uno/XInterface.idl>
32#endif
33
34#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
35#include <com/sun/star/lang/IllegalArgumentException.idl>
36#endif
37
38module com
39{
40module sun
41{
42module star
43{
44module chart2
45{
46
47    // NOTES
48
49	//... provide help for creating the right transfomation
50    //
51    // ... access to source and destination coordinate system ?
52
53/** allows the transformation of numeric values from one
54    coordinate-system into an other.  Values may be transformed using
55    any mapping.
56 */
57interface XTransformation : ::com::sun::star::uno::XInterface
58{
59    /** transforms the given input data tuple, given in the source
60        coordinate system, according to the internal transformation
61        rules, into a tuple of transformed coordinates in the
62        destination coordinate system.
63
64        <p>Note that both coordinate systems may have different
65        dimensions, e.g., if a transformation does simply a projection
66        into a lower-dimensional space.</p>
67
68        @param aValues a source tuple of data that is to be
69               transformed.  The length of this sequence must be
70               equivalent to the dimension of the source coordinate
71               system.
72
73        @return the transformed data tuple.  The length of this
74                sequence is equal to the dimension of the output
75                coordinate system.
76
77        @throws ::com::sun::star::lang::IllegalArgumentException
78               if the dimension of the input vector is not equal to the
79               dimension given in <member>getSourceDimension</member>.
80     */
81	sequence< double > transform( [in] sequence< double > aValues )
82        raises( ::com::sun::star::lang::IllegalArgumentException );
83
84    /** the dimension of the input coordinate sequence that is to be
85        transformed by the <member>transform</member> method.
86     */
87	long getSourceDimension();
88
89    /** the dimension of the output coordinate sequence that is the
90        result of the <member>transform</member> method.
91     */
92	long getTargetDimension();
93};
94
95} ; // chart2
96} ; // com
97} ; // sun
98} ; // star
99
100
101#endif
102