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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
|
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
*
* OpenOffice.org is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
************************************************************************/
#ifndef __com_sun_star_rendering_Texture_idl__
#define __com_sun_star_rendering_Texture_idl__
#ifndef __com_sun_star_geometry_AffineMatrix2D_idl__
#include <com/sun/star/geometry/AffineMatrix2D.idl>
#endif
#ifndef __com_sun_star_rendering_StrokeAttributes_idl__
#include <com/sun/star/rendering/StrokeAttributes.idl>
#endif
module com { module sun { module star { module rendering {
interface XBitmap;
interface XParametricPolyPolygon2D;
/** Contains all information needed to define a texture.<p>
This structure contains all information necessary to define a
texture. A texture describes the filled area of polygonal shapes,
providing its own transformation matrix, repeat mode, and
transparency.<p>
To achieve uniformity, if this texture has a bitmap set, it is
scaled in such a way that it will cover the same [0,1]x[0,1] box
as the hatch and the gradient. The transformation member can then
be used to scale the complete texture as it fits suit.<p>
@since OOo 2.0.0
*/
struct Texture
{
/** Texture transformation from texture to primitive space.<p>
This member allows arbitrary transformations of the texture,
relative to the textured primitive. Thus, the total
transformation from the [0,1]x[0,1] texture space to the
device coordinate space is the concatenation of texture,
render state, and view state transformation (with only render
state and view state transformation being applied to the
textured primitive).<p>
*/
::com::sun::star::geometry::AffineMatrix2D AffineTransform;
//-------------------------------------------------------------------------
/** Overall transparency of the texturing.<p>
The valid range for this value is [0,1], where 0 denotes
complete transparency, and 1 denotes fully opaque.<p>
*/
double Alpha;
//-------------------------------------------------------------------------
/** Specifies the number of parameterized polygons used for the texture.<p>
This member specifies the number of polygons the parametric
polygon interface is queried. The continuous range [0,1] of
the XParametricPolyPolygon::getOutline() method is divided up
into numberOfHatchPolygons equal parts, and for everyone of
these parts, the start of the interval is plugged into the
getOutline method. For example, if numberOfHatchPolygons is 2,
then getOutline is called twice, once with 0.0 and once with
0.5. Use this parameter to control the density of the
hatching.<p>
*/
long NumberOfHatchPolygons;
//-------------------------------------------------------------------------
/** Texture bitmap.<p>
This member can be used together with gradient and hatching.<p>
The bitmap is scaled to a one-by-one rectangle, to cover the
same area as both the gradient and the hatching.<p>
*/
XBitmap Bitmap;
//-------------------------------------------------------------------------
/** Texture gradient.<p>
This member can be used together with bitmap and hatching. The
parametric polygons color value is used to fill the returned
polygonal outlines.<p>
*/
XParametricPolyPolygon2D Gradient;
//-------------------------------------------------------------------------
/** Texture hatching.<p>
This member can be used together with bitmap and gradient. The
parametric polygons color value is used to stroke the returned
polygonal outlines.<p>
*/
XParametricPolyPolygon2D Hatching;
//-------------------------------------------------------------------------
/** Specifies the stroke attributes used for hatching.<p>
Use 0.0 as the strokeWidth here to indicate hair lines.<p>
*/
StrokeAttributes HatchAttributes;
//-------------------------------------------------------------------------
/** Repeat mode of the texture, x direction.<p>
The repeat mode is separated into x and y direction, this is
the x direction part. Permissible values are from the
<type>TexturingMode</type> constants.<p>
*/
byte RepeatModeX;
/** Repeat mode of the texture, y direction.<p>
The repeat mode is separated into x and y direction, this is
the y direction part. Permissible values are from the
<type>TexturingMode</type> constants.<p>
*/
byte RepeatModeY;
};
}; }; }; };
#endif
|