]> _ Git - cubeextranet.git/blob
84844f70d275aff927c510e3d5f7f7ae9c198a4a
[cubeextranet.git] /
1 /*\r
2  * Licensed to the Apache Software Foundation (ASF) under one or more\r
3  * contributor license agreements.  See the NOTICE file distributed with\r
4  * this work for additional information regarding copyright ownership.\r
5  * The ASF licenses this file to You under the Apache License, Version 2.0\r
6  * (the "License"); you may not use this file except in compliance with\r
7  * the License.  You may obtain a copy of the License at\r
8  *\r
9  *      http://www.apache.org/licenses/LICENSE-2.0\r
10  *\r
11  * Unless required by applicable law or agreed to in writing, software\r
12  * distributed under the License is distributed on an "AS IS" BASIS,\r
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
14  * See the License for the specific language governing permissions and\r
15  * limitations under the License.\r
16  */\r
17 package org.apache.pdfbox.util.operator.pagedrawer;\r
18 \r
19 import java.awt.geom.GeneralPath;\r
20 import java.awt.geom.Point2D;\r
21 import java.util.List;\r
22 \r
23 import org.apache.pdfbox.cos.COSBase;\r
24 import org.apache.pdfbox.cos.COSNumber;\r
25 import org.apache.pdfbox.pdfviewer.PageDrawer;\r
26 import org.apache.pdfbox.util.PDFOperator;\r
27 import org.apache.pdfbox.util.operator.OperatorProcessor;\r
28 \r
29 /**\r
30  * Implementation of content stream operator for page drawer.\r
31  *\r
32  * @author <a href="mailto:ben@benlitchfield.com">Ben Litchfield</a>\r
33  * @version $Revision: 1.2 $\r
34  */\r
35 public class CurveToReplicateInitialPoint extends OperatorProcessor\r
36 {\r
37 \r
38 \r
39     /**\r
40      * process : v : Append curved segment to path (initial point replicated).\r
41      * @param operator The operator that is being executed.\r
42      * @param arguments List\r
43      */\r
44     public void process(PDFOperator operator, List<COSBase> arguments)\r
45     {\r
46         PageDrawer drawer = (PageDrawer)context;\r
47 \r
48         COSNumber x2 = (COSNumber)arguments.get( 0 );\r
49         COSNumber y2 = (COSNumber)arguments.get( 1 );\r
50         COSNumber x3 = (COSNumber)arguments.get( 2 );\r
51         COSNumber y3 = (COSNumber)arguments.get( 3 );\r
52         GeneralPath path = drawer.getLinePath();\r
53         Point2D currentPoint = path.getCurrentPoint();\r
54 \r
55         Point2D point2 = drawer.transformedPoint(x2.doubleValue(), y2.doubleValue());\r
56         Point2D point3 = drawer.transformedPoint(x3.doubleValue(), y3.doubleValue());\r
57 \r
58         drawer.getLinePath().curveTo((float)currentPoint.getX(), (float)currentPoint.getY(),\r
59                 (float)point2.getX(), (float)point2.getY(), (float)point3.getX(), (float)point3.getY());\r
60     }\r
61 }\r