1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: XLinePolyPolygon2D.idl,v $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
30 #ifndef __com_sun_star_rendering_XLinePolyPolygon2D_idl__
31 #define __com_sun_star_rendering_XLinePolyPolygon2D_idl__
33 #ifndef __com_sun_star_uno_XInterface_idl__
34 #include
<com
/sun
/star
/uno
/XInterface.idl
>
36 #ifndef __com_sun_star_lang_IndexOutOfBoundsException_idl__
37 #include
<com
/sun
/star
/lang
/IndexOutOfBoundsException.idl
>
39 #ifndef __com_sun_star_geometry_RealPoint2D_idl__
40 #include
<com
/sun
/star
/geometry
/RealPoint2D.idl
>
42 #ifndef __com_sun_star_rendering_XPolyPolygon2D_idl__
43 #include
<com
/sun
/star
/rendering
/XPolyPolygon2D.idl
>
46 module com
{ module sun
{ module star
{ module rendering
{
48 /** Specialized interface for a 2D poly-polygon containing only straight line segments.
52 interface XLinePolyPolygon2D
: XPolyPolygon2D
54 /** Query subset of this poly-polygon, starting at the given
55 polygon and the given point within that polygon, and
56 containing the specified number of polygons and points in the
60 The index number of the polygon to start with extracting
61 points. Set to 0 to start with the first polygon.
63 @param nNumberOfPolygons
64 The number of polygons, starting with nPolygonIndex, to
65 extract points from. Set to -1 to extract all polygons,
66 starting with nPolygonIndex (i.e. a total of
67 getNumberOfPolygons() - nPolygonIndex polygons is extracted).
70 The index of the point within the first polygon (that with the
71 index number nPolygonIndex) to start extraction with. Set to 0
72 to start with the first point in this polygon.
74 @param nNumberOfPoints
75 The number of points in the last polygon of the extraction
76 sequence, to be extracted. Set to -1 to extract all points
77 from the last polygon.
79 sequence
< sequence
< ::com
::sun
::star
::geometry
::RealPoint2D
> > getPoints
( [in] long nPolygonIndex
, [in] long nNumberOfPolygons
, [in] long nPointIndex
, [in] long nNumberOfPoints
)
80 raises
(com
::sun
::star
::lang
::IndexOutOfBoundsException
);
82 //-------------------------------------------------------------------------
84 /** Set the specified sequence of points to the poly-polygon.
86 This method can either set the whole poly-polygon to the new
87 data, or insert the points at the given index
90 The index of the polygon to start point insertion with. This
91 index must be in the range [0,numPolygons], and the insertion
92 will take place <em>before</em> this position (i.e. when
93 specifying 0 here, the given point sequence will precede all
94 existing polygons already within the poly-polygon). To append
95 to a poly-polygon, call setPoints() with
96 <member>XLinePolyPolygon2D::getNumberOfPolygons()</member>
97 as the polygon index. If nPolygonIndex is -1, the given
98 sequence of points <em>replaces</em> the poly-polygon content,
99 such that after this method completes, it contains exactly the
100 specified point data.
102 @throws <type>com::sun::star::lang::IndexOutOfBoundsException</type>
103 if one of the given values exceed the permissible range.
105 void setPoints
( [in] sequence
< sequence
< ::com
::sun
::star
::geometry
::RealPoint2D
> > points
, [in] long nPolygonIndex
)
106 raises
(com
::sun
::star
::lang
::IndexOutOfBoundsException
);
108 //-------------------------------------------------------------------------
110 /** Get a single point from the poly-polygon
112 ::com
::sun
::star
::geometry
::RealPoint2D getPoint
( [in] long nPolygonIndex
, [in] long nPointIndex
)
113 raises
(com
::sun
::star
::lang
::IndexOutOfBoundsException
);
115 //-------------------------------------------------------------------------
117 /** Set a single point on the poly-polygon. The remaining points of
118 the poly-polygon will not be changed by this method.
120 void setPoint
( [in] ::com
::sun
::star
::geometry
::RealPoint2D point
, [in] long nPolygonIndex
, [in] long nPointIndex
)
121 raises
(com
::sun
::star
::lang
::IndexOutOfBoundsException
);