Version 5.2.6.1, tag libreoffice-5.2.6.1
[LibreOffice.git] / offapi / com / sun / star / rendering / Texture.idl
blob78f223dd32933e2bd5b6340c25583914483177a1
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
19 #ifndef __com_sun_star_rendering_Texture_idl__
20 #define __com_sun_star_rendering_Texture_idl__
22 #include <com/sun/star/geometry/AffineMatrix2D.idl>
23 #include <com/sun/star/rendering/StrokeAttributes.idl>
25 module com { module sun { module star { module rendering {
27 interface XBitmap;
28 interface XParametricPolyPolygon2D;
30 /** Contains all information needed to define a texture.<p>
32 This structure contains all information necessary to define a
33 texture. A texture describes the filled area of polygonal shapes,
34 providing its own transformation matrix, repeat mode, and
35 transparency.<p>
37 To achieve uniformity, if this texture has a bitmap set, it is
38 scaled in such a way that it will cover the same [0,1]x[0,1] box
39 as the hatch and the gradient. The transformation member can then
40 be used to scale the complete texture as it fits suit.<p>
42 @since OOo 2.0
44 struct Texture
46 /** Texture transformation from texture to primitive space.<p>
48 This member allows arbitrary transformations of the texture,
49 relative to the textured primitive. Thus, the total
50 transformation from the [0,1]x[0,1] texture space to the
51 device coordinate space is the concatenation of texture,
52 render state, and view state transformation (with only render
53 state and view state transformation being applied to the
54 textured primitive).<p>
56 ::com::sun::star::geometry::AffineMatrix2D AffineTransform;
59 /** Overall transparency of the texturing.<p>
61 The valid range for this value is [0,1], where 0 denotes
62 complete transparency, and 1 denotes fully opaque.<p>
64 double Alpha;
67 /** Specifies the number of parameterized polygons used for the texture.<p>
69 This member specifies the number of polygons the parametric
70 polygon interface is queried. The continuous range [0,1] of
71 the XParametricPolyPolygon::getOutline() method is divided up
72 into numberOfHatchPolygons equal parts, and for everyone of
73 these parts, the start of the interval is plugged into the
74 getOutline method. For example, if numberOfHatchPolygons is 2,
75 then getOutline is called twice, once with 0.0 and once with
76 0.5. Use this parameter to control the density of the
77 hatching.<p>
79 long NumberOfHatchPolygons;
82 /** Texture bitmap.<p>
84 This member can be used together with gradient and hatching.<p>
86 The bitmap is scaled to a one-by-one rectangle, to cover the
87 same area as both the gradient and the hatching.<p>
89 XBitmap Bitmap;
92 /** Texture gradient.<p>
94 This member can be used together with bitmap and hatching. The
95 parametric polygons color value is used to fill the returned
96 polygonal outlines.<p>
98 XParametricPolyPolygon2D Gradient;
101 /** Texture hatching.<p>
103 This member can be used together with bitmap and gradient. The
104 parametric polygons color value is used to stroke the returned
105 polygonal outlines.<p>
107 XParametricPolyPolygon2D Hatching;
110 /** Specifies the stroke attributes used for hatching.<p>
112 Use 0.0 as the strokeWidth here to indicate hair lines.<p>
114 StrokeAttributes HatchAttributes;
117 /** Repeat mode of the texture, x direction.<p>
119 The repeat mode is separated into x and y direction, this is
120 the x direction part. Permissible values are from the
121 TexturingMode constants.<p>
123 byte RepeatModeX;
125 /** Repeat mode of the texture, y direction.<p>
127 The repeat mode is separated into x and y direction, this is
128 the y direction part. Permissible values are from the
129 TexturingMode constants.<p>
131 byte RepeatModeY;
135 }; }; }; };
137 #endif
139 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */