.. include-document:: org.gvsig.fmap.geom/reference-links :rest: Para crear una surface podemos utilizar el método genérico *create* del manager. Para establecer los valores de las coordenadas podemos utilizar un objeto de tipo GeneralPathX. La forma de crear un polígono triangular de coordendas 0,0 0,5 y 5,5 es la siguiente: .. code-block:: java Surface surface = (Surface)geometryManager.create(TYPES.SURFACE, SUBTYPES.GEOM2D); GeneralPathX generalPathX = new GeneralPathX(); generalPathX.moveTo(0, 0); generalPathX.lineTo(0, 5); generalPathX.lineTo(5, 5); surface.setGeneralPath(generalPathX); Al igual que ocurre con la Curve_, una Surface_ se tiene que poder crear a partir de los propios objetos del modelo que, en el caso de un polígono serán objetos de tipo Point_. El siguiente código crear un polígono con las mismas coordenadas que el ejemplo anterior: .. code-block:: java Point point1 = geometryManager.createPoint(0, 0, SUBTYPES.GEOM2D); Point point2 = geometryManager.createPoint(0, 5, SUBTYPES.GEOM2D); Point point3 = geometryManager.createPoint(5, 5, SUBTYPES.GEOM2D); Surface surface = (Surface)geometryManager.create(TYPES.SURFACE, SUBTYPES.GEOM2D); surface.addVertex(point1); surface.addVertex(point2); surface.addVertex(point3); El método *addVertex* inserta un nuevo vértice en la última posición en un objeto de tipo Surface_ y suele ser utilizado en la creación de la geometría. Por otro lado, existen otros métodos que permiten la edición de las coordenadas de los vértices internos que forman el polígono. Por ejemplo, si queremos cambiar el punto final del polígono del ejemplo anterior: .. code-block:: java Point endPoint = geometryManager.createPoint(0, 10, SUBTYPES.GEOM2D); surface.setVertex(2, endPoint); El método *setVertex* fija el valor de uno de los puntos internos que forman el polígono y lo reeplaza por el que había anteriormente. El primer argumento de método es la posición de punto interno que se tiene que modificar. Por otro lado también podemos insertar un punto dentro del polígono. Por ejemplo para insertar el punto 0,7 en la tercera posición del polígono hay que ejecutar el siguiente código: .. code-block:: java Point middlePoint = geometryManager.createPoint(0, 7, SUBTYPES.GEOM2D); surface.insertVertex(2, middlePoint); El primer argumento es la posición del punto que se quiere introducir. En este caso el polígono resultante tendrá las coordenadas 0,0 0,5 0,7 y 0 10 tal y como la hemos estado definiendo.