Statistics
| Revision:

root / branches / pilotoDWG / libraries / libFMap / src / com / iver / cit / gvsig / fmap / core / FArc2D.java @ 1514

History | View | Annotate | Download (4.53 KB)

1 1401 fernando
/*
2
 * Created on 09-feb-2005
3
 *
4
 * gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
5
 *
6
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
7
 *
8
 * This program is free software; you can redistribute it and/or
9
 * modify it under the terms of the GNU General Public License
10
 * as published by the Free Software Foundation; either version 2
11
 * of the License, or (at your option) any later version.
12
 *
13
 * This program is distributed in the hope that it will be useful,
14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 * GNU General Public License for more details.
17
 *
18
 * You should have received a copy of the GNU General Public License
19
 * along with this program; if not, write to the Free Software
20 1450 vcaballero
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
21
   USA.
22 1401 fernando
 *
23
 * For more information, contact:
24
 *
25
 *  Generalitat Valenciana
26
 *   Conselleria d'Infraestructures i Transport
27
 *   Av. Blasco Ib??ez, 50
28
 *   46010 VALENCIA
29
 *   SPAIN
30
 *
31
 *      +34 963862235
32
 *   gvsig@gva.es
33
 *      www.gvsig.gva.es
34
 *
35
 *    or
36
 *
37
 *   IVER T.I. S.A
38
 *   Salamanca 50
39
 *   46005 Valencia
40
 *   Spain
41
 *
42
 *   +34 963163400
43
 *   dac@iver.es
44
 */
45
package com.iver.cit.gvsig.fmap.core;
46
47 1440 vcaballero
import java.awt.geom.Point2D;
48 1401 fernando
import java.awt.geom.Rectangle2D;
49 1450 vcaballero
import java.util.ArrayList;
50 1401 fernando
51 1450 vcaballero
/**
52
 * DOCUMENT ME!
53
 *
54
 * @author Vicente Caballero Navarro
55
 */
56
public class FArc2D extends FPolyline2D {
57
        private Point2D center;
58 1401 fernando
59
        /**
60 1450 vcaballero
         * DOCUMENT ME!
61
         *
62
         * @param gpx
63 1401 fernando
         */
64 1514 fernando
        public FArc2D(GeneralPathX gpx,Point2D c) {
65 1450 vcaballero
                super(gpx);
66
                center=c;
67 1401 fernando
        }
68 1450 vcaballero
        /* (non-Javadoc)
69
         * @see com.iver.cit.gvsig.fmap.core.FShape#cloneFShape()
70 1401 fernando
         */
71 1450 vcaballero
        public FShape cloneFShape() {
72 1514 fernando
                FArc2D arc=new FArc2D((GeneralPathX) gp.clone(),center);
73 1450 vcaballero
                return arc;
74 1401 fernando
        }
75
        /**
76 1450 vcaballero
         * DOCUMENT ME!
77
         *
78
         * @return DOCUMENT ME!
79 1401 fernando
         */
80 1450 vcaballero
        public Handler[] getHandlers() {
81
                ArrayList handlers = new ArrayList();
82
                Rectangle2D rect = this.getBounds2D();
83 1452 vcaballero
                //Point2D init=new Point2D.Double(gp.pointCoords[0],gp.pointCoords[1]);
84
                //Point2D end=new Point2D.Double(gp.pointCoords[gp.numCoords-2],gp.pointCoords[gp.numCoords-1]);
85 1450 vcaballero
                //Point2D center=new Point2D.Double((gp.pointCoords[gp.numCoords/2]),(end.getY()+gp.pointCoords[gp.numCoords/2+1])/2);
86 1401 fernando
87 1514 fernando
                //handlers.add(new InitHandler(0, init.getX(), init.getY()));
88 1450 vcaballero
                handlers.add(new CenterHandler(1, center.getX(), center.getY()));
89 1514 fernando
                //handlers.add(new EndHandler(2, end.getX(), end.getY()));
90 1450 vcaballero
                //handlers.add(new RadioHandler(3, rect.getCenterX(), rect.getY()));
91
                //handlers.add(new RadioHandler(3, rect.getCenterX(), rect.getMaxY()));
92 1401 fernando
93 1450 vcaballero
                return (Handler[]) handlers.toArray(new Handler[0]);
94 1401 fernando
        }
95
        /**
96 1450 vcaballero
         * DOCUMENT ME!
97
         *
98
         * @author Vicente Caballero Navarro
99 1401 fernando
         */
100 1450 vcaballero
        class CenterHandler extends AbstractHandler {
101
                /**
102
                 * Crea un nuevo PointHandler.
103
                 *
104
                 * @param i DOCUMENT ME!
105
                 * @param x DOCUMENT ME!
106
                 * @param y DOCUMENT ME!
107
                 */
108
                public CenterHandler(int i, double x, double y) {
109
                        point = new Point2D.Double(x, y);
110
                        index = i;
111
                }
112 1401 fernando
113 1450 vcaballero
                /**
114
                 * DOCUMENT ME!
115
                 *
116
                 * @param x DOCUMENT ME!
117
                 * @param y DOCUMENT ME!
118
                 *
119
                 * @return DOCUMENT ME!
120
                 */
121
                public void move(double x, double y) {
122 1514 fernando
                        //p1.setLocation(p1.getX()+x,p1.getY()+y);
123 1450 vcaballero
                        center=new Point2D.Double(center.getX()+x,center.getY()+y);
124 1514 fernando
                        //p3.setLocation(p3.getX()+x,p3.getY()+y);
125
                        for (int i=0;i<gp.numCoords/2;i++){
126 1450 vcaballero
                                gp.pointCoords[i*2]+=x;
127
                                gp.pointCoords[i*2+1]+=y;
128
                        }
129
                }
130 1401 fernando
        }
131
132
        /**
133 1450 vcaballero
         * DOCUMENT ME!
134
         *
135
         * @author Vicente Caballero Navarro
136 1401 fernando
         */
137 1450 vcaballero
        class InitHandler extends AbstractHandler {
138
                /**
139
                 * Crea un nuevo PointHandler.
140
                 *
141
                 * @param i DOCUMENT ME!
142
                 * @param x DOCUMENT ME!
143
                 * @param y DOCUMENT ME!
144
                 */
145
                public InitHandler(int i, double x, double y) {
146
                        point = new Point2D.Double(x, y);
147
                        index = i;
148
                }
149 1514 fernando
150 1450 vcaballero
                /**
151
                 * DOCUMENT ME!
152
                 *
153
                 * @param x DOCUMENT ME!
154
                 * @param y DOCUMENT ME!
155
                 *
156
                 * @return DOCUMENT ME!
157
                 */
158
                public void move(double x, double y) {
159 1514 fernando
                        gp.pointCoords[0]+=x;
160
                        gp.pointCoords[1]+=y;
161 1450 vcaballero
                }
162 1401 fernando
        }
163 1404 vcaballero
        /**
164 1450 vcaballero
         * DOCUMENT ME!
165
         *
166
         * @author Vicente Caballero Navarro
167 1404 vcaballero
         */
168 1450 vcaballero
        class EndHandler extends AbstractHandler {
169
                /**
170
                 * Crea un nuevo PointHandler.
171
                 *
172
                 * @param i DOCUMENT ME!
173
                 * @param x DOCUMENT ME!
174
                 * @param y DOCUMENT ME!
175
                 */
176
                public EndHandler(int i, double x, double y) {
177
                        point = new Point2D.Double(x, y);
178
                        index = i;
179
                }
180 1514 fernando
181 1450 vcaballero
                /**
182
                 * DOCUMENT ME!
183
                 *
184
                 * @param x DOCUMENT ME!
185
                 * @param y DOCUMENT ME!
186
                 *
187
                 * @return DOCUMENT ME!
188
                 */
189
                public void move(double x, double y) {
190 1514 fernando
                        gp.pointCoords[gp.numCoords-2]+=x;
191
                        gp.pointCoords[gp.numCoords-1]+=y;
192 1450 vcaballero
                }
193 1408 vcaballero
        }
194 1401 fernando
}