Statistics
| Revision:

root / branches / v2_0_0_prep / libraries / libFMap_geometries / src / org / gvsig / fmap / geom / aggregate / impl / BaseMultiPrimitive2D.java @ 28996

History | View | Annotate | Download (2.89 KB)

1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 * 
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 * 
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 * 
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
 * MA  02110-1301, USA.
20
 * 
21
 */
22

    
23
/*
24
 * AUTHORS (In addition to CIT):
25
 * 2009 {Iver T.I.}   {Task}
26
 */
27

    
28
package org.gvsig.fmap.geom.aggregate.impl;
29

    
30
import org.cresques.cts.IProjection;
31
import org.gvsig.fmap.geom.Geometry;
32
import org.gvsig.fmap.geom.GeometryLocator;
33
import org.gvsig.fmap.geom.Geometry.SUBTYPES;
34
import org.gvsig.fmap.geom.Geometry.TYPES;
35
import org.gvsig.fmap.geom.aggregate.MultiPrimitive;
36
import org.gvsig.fmap.geom.primitive.Primitive;
37
import org.gvsig.fmap.geom.type.GeometryType;
38

    
39
/**
40
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
41
 */
42
public class BaseMultiPrimitive2D extends BaseMultiPrimitive implements
43
MultiPrimitive {
44

    
45
        // Registramos este tipo de geometrĂ­a
46
        private static GeometryType geomType = GeometryLocator.getGeometryManager()
47
        .registerGeometryType(BaseMultiPrimitive2D.class, null, TYPES.AGGREGATE, SUBTYPES.GEOM2D);
48

    
49
        /**
50
         * Constructor without arguments. It is necessary to create
51
         * geometries using the {@link GeometryType}{@link #create()}
52
         * method
53
         */
54
        public BaseMultiPrimitive2D() {
55
                super();
56
        }
57

    
58
        /**
59
         * @param id
60
         * @param projection
61
         * @param geometries
62
         */
63
        public BaseMultiPrimitive2D(String id, IProjection projection,
64
                        Geometry[] geometries) {
65
                super(id, projection, geometries);
66
        }
67
        
68
        /**
69
         * @param geometries
70
         */
71
        public BaseMultiPrimitive2D(Geometry[] geometries) {
72
                super(geometries);                
73
        }
74

    
75
        /*
76
         * (non-Javadoc)
77
         *
78
         * @see com.iver.cit.gvsig.fmap.core.IGeometry#cloneGeometry()
79
         */
80
        public Geometry cloneGeometry() {
81
                Primitive[] aux = new Primitive[getPrimitivesNumber()];
82
                for (int i = 0; i < getPrimitivesNumber(); i++) {
83
                        aux[i] = (Primitive)((Geometry)geometries.get(i)).cloneGeometry()
84
                        .getInternalShape();
85
                }
86
                return new BaseMultiPrimitive2D(id, projection, aux);
87
        }
88

    
89
        /*
90
         * (non-Javadoc)
91
         * @see org.gvsig.fmap.geom.primitive.AbstractPrimitive#getGeometryType()
92
         */
93
        public GeometryType getGeometryType() {
94
                return geomType;
95
        }
96

    
97
        /* (non-Javadoc)
98
         * @see org.gvsig.fmap.geom.Geometry#getType()
99
         */
100
        public int getType() {
101
                return geomType.getType();
102
        }
103
}
104