org.gvsig.fmap.geom
Interface GeometryManager

All Known Implementing Classes:
DefaultGeometryManager

public interface GeometryManager

This singleton provides a centralized access to gvSIG's Geometry Model. Its responsibilities are:

Author:
jiyarza, Jorge Piera

Nested Class Summary
static interface GeometryManager.OPERATIONS
           
 
Method Summary
 Geometry create(GeometryType geomType)
           This method creates a Geometry with the type specified by this GeometryType.
 Geometry create(int type, int subType)
           This method creates a Geometry with a concrete type and subtype.
 Geometry create(String name)
           This method creates a Geometry with the type specified by this name.
 Curve createCurve(GeneralPathX generalPathX, int subType)
           Create a new curve with a concrete type and sets the value for the coordinates using a GeneralPathX.
 Envelope createEnvelope(double minX, double minY, double maxX, double maxY, int subType)
           Creates a Envelope with a concrete subtype.
 Envelope createEnvelope(int subType)
           Creates a Envelope with a concrete subtype.
 Geometry createFrom(byte[] wkb)
          Create a geometry from a WKB definition.
 Geometry createFrom(String wkt)
           
 Geometry createFrom(String wkt, String srs)
          Create a geometry from a WKT definition.
 MultiCurve createMultiCurve(GeneralPathX generalPathX, int subType)
           Create a new multicurve with a concrete type and sets the value for the coordinates using a GeneralPathX.
 MultiSurface createMultiSurface(GeneralPathX generalPathX, int subType)
           Create a new multisurface with a concrete type and sets the value for the coordinates using a GeneralPathX.
 NullGeometry createNullGeometry(int subType)
           It creates a null geometry with a concrete subtype.
 Point createPoint(double x, double y, int subType)
           Create a new point with a concrete type and sets the value for the X and the Y.
 Surface createSurface(GeneralPathX generalPathX, int subType)
           Create a new surface with a concrete type and sets the value for the coordinates using a GeneralPathX.
 double getFlatness()
          Returns the flatness used to convert a curve is a set of points.
 GeometryOperation getGeometryOperation(int opCode)
           Returns an common operation with given operation code.
 GeometryOperation getGeometryOperation(int opCode, int type, int subType)
           Returns an operation given the Geometry type, the Geometry subtype and and the operation code.
 int getGeometryOperationCode(String geomOpName)
           Registers the unique name of one operation.
 List getGeometryOperationNames()
          Returns a list with the name of the operations that have been registered.
 GeometryType getGeometryType(int type, int subType)
           Returns an instance of GeometryType given the Geometry type and the subtype.
 Object invokeOperation(int opCode, Geometry geom, GeometryOperationContext ctx)
           Invokes an operation given its code, the geometry and the operation context holding the parameters required for the operation.
 Object invokeOperation(String geomOpName, Geometry geom, GeometryOperationContext ctx)
           Invokes an operation given its code, the geometry and the operation context holding the parameters required for the operation.
 Object invokeOperation(String geomOpName, GeometryOperationContext ctx)
           Invokes an operation given its code, and the operation context holding the parameters required for the operation.
 int registerGeometryOperation(String geomOpName, GeometryOperation geomOp)
           Registers a GeometryOperation that is common for all GeometryType (registered yet or not).
 int registerGeometryOperation(String geomOpName, GeometryOperation geomOp, GeometryType geomType)
           Registers a GeometryOperation associated to a GeometryType.
 int registerGeometryOperation(String geomOpName, GeometryOperation geomOp, int type)
           Registers a GeometryOperation associated to all the geometries with a concrete type.
 int registerGeometryOperation(String geomOpName, GeometryOperation geomOp, int type, int subType)
           Registers a GeometryOperation associated to a GeometryType, that has been specified using the type code and the subtype code.
 int registerGeometryOperationBySubtype(String geomOpName, GeometryOperation geomOp, int subType)
           Registers a GeometryOperation associated to all the geometries with a concrete subtype.
 int registerGeometryOperationBySuperSubType(String geomOpName, GeometryOperation geomOp, int superSubType)
           Registers a GeometryOperation associated to all the geometries which super subType matches with a concrete subType.
 int registerGeometryOperationBySuperType(String geomOpName, GeometryOperation geomOp, int superType)
           Registers a GeometryOperation associated to all the geometries which super type matches with a concrete type.
 GeometryType registerGeometryType(Class geomClass, int type, int subType)
           Registers a Geometry implementation class with a predefined geometry type and returns the associated GeometryType instance.
 GeometryType registerGeometryType(Class geomClass, String name, int type, int subType)
           Registers a Geometry implementation class with a predefined geometry type and returns the associated GeometryType instance.
 GeometryType registerGeometryType(Class geomClass, String name, int type, int subType, int superType)
           Registers a Geometry implementation class with a predefined geometry type and returns the associated GeometryType instance.
 GeometryType registerGeometryType(Class geomClass, String name, int type, int subType, int[] superTypes)
           Registers a Geometry implementation class with a predefined geometry type and returns the associated GeometryType instance.
 GeometryType registerGeometryType(Class geomClass, String name, int type, int subType, int[] superTypes, int[] superSubTypes)
           Registers a Geometry implementation class with a predefined geometry type and returns the associated GeometryType instance.
 GeometryType registerGeometryType(Class geomClass, String name, int type, int subType, int superType, int superSubType)
           Registers a Geometry implementation class with a predefined geometry type and returns the associated GeometryType instance.
 void setFlatness(double flatness)
          Sets the application flatness.
 

Method Detail

registerGeometryOperation

int registerGeometryOperation(String geomOpName,
                              GeometryOperation geomOp,
                              GeometryType geomType)

Registers a GeometryOperation associated to a GeometryType. Returns an unique index that is used later to identify and invoke the operation.

By convention this index should be in a final and static variable in the class that implements the operation. The value of this variable must be set using the method getGeometryOperationCode(String):

 
 public class MyOperation extends GeometryOperation {
 
     public static final int CODE = GeometryLocator.getGeometryManager()
         .getGeometryOperationCode("MyOperation");
 }
 

Parameters:
geomOpName - Operation's unique name
geomOp - Specific GeometryOperation's instance implementing this operation
geomType - GeometryType instance to which this operation should be associated
Returns:
Index assigned to this operation. This index is used later to access the operation.

registerGeometryOperation

int registerGeometryOperation(String geomOpName,
                              GeometryOperation geomOp)

Registers a GeometryOperation that is common for all GeometryType (registered yet or not). Returns an unique index that is used later to identify and invoke the operation.

By convention this index should be in a final and static variable in the class that implements the operation. The value of this variable must be set using the method getGeometryOperationCode(String):

 
 public class MyOperation extends GeometryOperation {
 
     public static final int CODE = GeometryLocator.getGeometryManager()
         .getGeometryOperationCode("MyOperation");
 }
 

Parameters:
geomOpName - Operation's unique name
geomOp - Specific GeometryOperation's instance implementing this operation
Returns:
Index assigned to this operation. This index is used later to access the operation.

registerGeometryOperation

int registerGeometryOperation(String geomOpName,
                              GeometryOperation geomOp,
                              int type,
                              int subType)
                              throws GeometryTypeNotSupportedException,
                                     GeometryTypeNotValidException

Registers a GeometryOperation associated to a GeometryType, that has been specified using the type code and the subtype code. Returns an unique index that is used later to identify and invoke the operation.

By convention this index should be in a final and static variable in the class that implements the operation. The value of this variable must be set using the method getGeometryOperationCode(String):

 
 public class MyOperation extends GeometryOperation {
 
     public static final int CODE = GeometryLocator.getGeometryManager()
         .getGeometryOperationCode("MyOperation");
 }
 

This method is only used if you have not a reference to the GeometryType associated to the geometry class. If you have such reference then it is slightly faster to use the method that receives the GeometryType.

Parameters:
geomOpName - Operation's unique name
geomOp - Specific GeometryOperation's instance implementing this operation
type - Type of geometry. Must be a value defined in Geometry.TYPES
subType - SubType of geometry. Must be a value defined in Geometry.SUBTYPES
Returns:
Index assigned to this operation. This index is used later to access the operation.
Throws:
GeometryTypeNotSupportedException - Returns this exception if there is not a registered geometry with these type and subtype
GeometryTypeNotValidException - Returns if the type and subtype are not valid

registerGeometryOperation

int registerGeometryOperation(String geomOpName,
                              GeometryOperation geomOp,
                              int type)

Registers a GeometryOperation associated to all the geometries with a concrete type. Returns an unique index that is used later to identify and invoke the operation.

By convention this index should be in a final and static variable in the class that implements the operation. The value of this variable must be set using the method getGeometryOperationCode(String):

 
 public class MyOperation extends GeometryOperation {
 
     public static final int CODE = GeometryLocator.getGeometryManager()
         .getGeometryOperationCode("MyOperation");
 }
 

Parameters:
geomOpName - Operation's unique name
geomOp - Specific GeometryOperation's instance implementing this operation
type - Type of geometry. Must be a value defined in Geometry.TYPES
Returns:
Index assigned to this operation. This index is used later to access the operation.

registerGeometryOperationBySuperType

int registerGeometryOperationBySuperType(String geomOpName,
                                         GeometryOperation geomOp,
                                         int superType)

Registers a GeometryOperation associated to all the geometries which super type matches with a concrete type. Returns an unique index that is used later to identify and invoke the operation.

By convention this index should be in a final and static variable in the class that implements the operation. The value of this variable must be set using the method getGeometryOperationCode(String):

 
 public class MyOperation extends GeometryOperation {
 
     public static final int CODE = GeometryLocator.getGeometryManager()
         .getGeometryOperationCode("MyOperation");
 }
 

Parameters:
geomOpName - Operation's unique name
geomOp - Specific GeometryOperation's instance implementing this operation
superType - super type of geometries that is used to register the operation. Must be a value defined in Geometry.TYPES
Returns:
Index assigned to this operation. This index is used later to access the operation.

registerGeometryOperationBySuperSubType

int registerGeometryOperationBySuperSubType(String geomOpName,
                                            GeometryOperation geomOp,
                                            int superSubType)

Registers a GeometryOperation associated to all the geometries which super subType matches with a concrete subType. Returns an unique index that is used later to identify and invoke the operation.

By convention this index should be in a final and static variable in the class that implements the operation. The value of this variable must be set using the method getGeometryOperationCode(String):

 
 public class MyOperation extends GeometryOperation {
 
     public static final int CODE = GeometryLocator.getGeometryManager()
         .getGeometryOperationCode("MyOperation");
 }
 

Parameters:
geomOpName - Operation's unique name
geomOp - Specific GeometryOperation's instance implementing this operation
superSubType - super subType of geometries that is used to register the operation. Must be a value defined in Geometry.SUBTYPES
Returns:
Index assigned to this operation. This index is used later to access the operation.

registerGeometryOperationBySubtype

int registerGeometryOperationBySubtype(String geomOpName,
                                       GeometryOperation geomOp,
                                       int subType)

Registers a GeometryOperation associated to all the geometries with a concrete subtype. Returns an unique index that is used later to identify and invoke the operation.

By convention this index should be in a final and static variable in the class that implements the operation. The value of this variable must be set using the method getGeometryOperationCode(String):

 
 public class MyOperation extends GeometryOperation {
 
     public static final int CODE = GeometryLocator.getGeometryManager()
         .getGeometryOperationCode("MyOperation");
 }
 

Parameters:
geomOpName - Operation's unique name
geomOp - Specific GeometryOperation's instance implementing this operation
subType - SubType of geometry. Must be a value defined in Geometry.SUBTYPES
Returns:
Index assigned to this operation. This index is used later to access the operation.

registerGeometryType

GeometryType registerGeometryType(Class geomClass,
                                  String name,
                                  int type,
                                  int subType)

Registers a Geometry implementation class with a predefined geometry type and returns the associated GeometryType instance. Available predefined types are defined in Geometry.TYPES and the subtypes are defined in Geometry.SUBTYPES.

How to register a geometry class with a predefined type:

 
 GeometryType geomType = GeometryLocator.getGeometryManager()
     .registerBasicGeometryType(Point2D.class, "Point2D", Geometry.TYPES.POINT,
         Geometry.SYBTYPES.GEOM2D);
 

Parameters:
geomClass - Geometry subclass. It must not be null and must implement Geometry, otherwise an exception is raised.
name - Symbolic name for the geometry type, it can be null. If it is null then the symbolic name will be the simple class name.
type - Type of geometry. Must be a value defined in Geometry.TYPES
subType - SubType of geometry. Must be a value defined in Geometry.SUBTYPES
Returns:
Instance of GeometryType associated to the Geometry implementation class geomClass
Throws:
IllegalArgumentException - If geomClass is null or does not implement Geometry

registerGeometryType

GeometryType registerGeometryType(Class geomClass,
                                  String name,
                                  int type,
                                  int subType,
                                  int superType,
                                  int superSubType)

Registers a Geometry implementation class with a predefined geometry type and returns the associated GeometryType instance. Available predefined types are defined in Geometry.TYPES and the subtypes are defined in Geometry.SUBTYPES.

It adds also the super type and the super subType of the geometry, that can be used to check if the type (or the subtype) inherits of other type (or subType)

How to register a geometry class with a predefined type:

 
 GeometryType geomType = GeometryLocator.getGeometryManager()
     .registerBasicGeometryType(Arc3D.class, "Arc3D", Geometry.TYPES.ARC,
         Geometry.SYBTYPES.GEOM3D, Geometry.TYPES.CURVE, Geometry.SYBTYPES.GEOM2D);
 

Parameters:
geomClass - Geometry subclass. It must not be null and must implement Geometry, otherwise an exception is raised.
name - Symbolic name for the geometry type, it can be null. If it is null then the symbolic name will be the simple class name.
type - Type of geometry. Must be a value defined in Geometry.TYPES
subType - SubType of geometry. Must be a value defined in Geometry.SUBTYPES
superType - Super type of a geometry. Must be a value defined in Geometry.TYPES
superSubType - Super subType of a geometry. Must be a value defined in Geometry.SUBTYPES
Returns:
Instance of GeometryType associated to the Geometry implementation class geomClass
Throws:
IllegalArgumentException - If geomClass is null or does not implement Geometry

registerGeometryType

GeometryType registerGeometryType(Class geomClass,
                                  String name,
                                  int type,
                                  int subType,
                                  int superType)

Registers a Geometry implementation class with a predefined geometry type and returns the associated GeometryType instance. Available predefined types are defined in Geometry.TYPES and the subtypes are defined in Geometry.SUBTYPES.

It adds also the super type of the geometry, that can be used to check if the type inherits of other type.

How to register a geometry class with a predefined type:

 
 GeometryType geomType = GeometryLocator.getGeometryManager()
     .registerBasicGeometryType(Arc3D.class, "Arc3D", Geometry.TYPES.ARC,
         Geometry.SYBTYPES.GEOM3D, Geometry.TYPES.CURVE);
 

Parameters:
geomClass - Geometry subclass. It must not be null and must implement Geometry, otherwise an exception is raised.
name - Symbolic name for the geometry type, it can be null. If it is null then the symbolic name will be the simple class name.
type - Type of geometry. Must be a value defined in Geometry.TYPES
subType - SubType of geometry. Must be a value defined in Geometry.SUBTYPES
superType - Super type of a geometry. Must be a value defined in Geometry.TYPES
Returns:
Instance of GeometryType associated to the Geometry implementation class geomClass
Throws:
IllegalArgumentException - If geomClass is null or does not implement Geometry

registerGeometryType

GeometryType registerGeometryType(Class geomClass,
                                  String name,
                                  int type,
                                  int subType,
                                  int[] superTypes,
                                  int[] superSubTypes)

Registers a Geometry implementation class with a predefined geometry type and returns the associated GeometryType instance. Available predefined types are defined in Geometry.TYPES and the subtypes are defined in Geometry.SUBTYPES.

It adds also the super types and the super subTypes of the geometry, that can be used to check if the type (or the subtype) inherits of other types (or subTypes)

How to register a geometry class with a predefined type:

 
 GeometryType geomType = GeometryLocator.getGeometryManager()
     .registerBasicGeometryType(Circle3DM.class, "Circle3DM", Geometry.TYPES.CIRCLE,
         Geometry.SYBTYPES.GEOM3DM,
         new int[]{Geometry.TYPES.CURVE, Geometry.TYPES.GEOMETRY},
         new int[]{Geometry.SYBTYPES.GEOM2D, Geometry.SYBTYPES.GEOM3D});
 

Parameters:
geomClass - Geometry subclass. It must not be null and must implement Geometry, otherwise an exception is raised.
name - Symbolic name for the geometry type, it can be null. If it is null then the symbolic name will be the simple class name.
type - Type of geometry. Must be a value defined in Geometry.TYPES
subType - SubType of geometry. Must be a value defined in Geometry.SUBTYPES
superTypes - List of the super types of a geometry. Must be a value defined in Geometry.TYPES
superSubTypes - List of the super subType of a geometry. Must be a value defined in Geometry.SUBTYPES
Returns:
Instance of GeometryType associated to the Geometry implementation class geomClass
Throws:
IllegalArgumentException - If geomClass is null or does not implement Geometry

registerGeometryType

GeometryType registerGeometryType(Class geomClass,
                                  String name,
                                  int type,
                                  int subType,
                                  int[] superTypes)

Registers a Geometry implementation class with a predefined geometry type and returns the associated GeometryType instance. Available predefined types are defined in Geometry.TYPES and the subtypes are defined in Geometry.SUBTYPES.

It adds also the super types and the super subTypes of the geometry, that can be used to check if the type inherits of other types.

How to register a geometry class with a predefined type:

 
 GeometryType geomType = GeometryLocator.getGeometryManager()
     .registerBasicGeometryType(Circle2D.class, "Circle2DM", Geometry.TYPES.CIRCLE,
         Geometry.SYBTYPES.GEOM2D,
         new int[]{Geometry.TYPES.CURVE, Geometry.TYPES.SURFACE});        
 

Parameters:
geomClass - Geometry subclass. It must not be null and must implement Geometry, otherwise an exception is raised.
name - Symbolic name for the geometry type, it can be null. If it is null then the symbolic name will be the simple class name.
type - Type of geometry. Must be a value defined in Geometry.TYPES
subType - SubType of geometry. Must be a value defined in Geometry.SUBTYPES
superTypes - List of the super types of a geometry. Must be a value defined in Geometry.TYPES
Returns:
Instance of GeometryType associated to the Geometry implementation class geomClass
Throws:
IllegalArgumentException - If geomClass is null or does not implement Geometry

registerGeometryType

GeometryType registerGeometryType(Class geomClass,
                                  int type,
                                  int subType)

Registers a Geometry implementation class with a predefined geometry type and returns the associated GeometryType instance. Available predefined types are defined in Geometry.TYPES and the subtypes are defined in Geometry.SUBTYPES.

In this case the symbolic name will be the geometry's simple class name

How to register a new geometry type:
 
 GeometryType geomType = GeometryLocator.getGeometryManager()
     .registerBasicGeometryType(Point2D.class, Geometry.TYPES.POINT,
         Geometry.SYBTYPES.GEOM2D);
 

Parameters:
geomClass - Geometry implementation class. It must not be null and must implement Geometry, otherwise an exception is thrown.
type - Type of geometry. Must be a value defined in Geometry.TYPES
subType - SubType of geometry. Must be a value defined in Geometry.SUBTYPES
Returns:
Instance of GeometryType associated to the Geometry implementation class
Throws:
IllegalArgumentException - If geomClass is null or does not implement Geometry

getGeometryType

GeometryType getGeometryType(int type,
                             int subType)
                             throws GeometryTypeNotSupportedException,
                                    GeometryTypeNotValidException

Returns an instance of GeometryType given the Geometry type and the subtype.

Parameters:
type - Type of geometry. Must be a value defined in Geometry.TYPES
subType - SubType of geometry. Must be a value defined in Geometry.SUBTYPES
Returns:
Instance of GeometryType associated to the type and the subtype
Throws:
GeometryTypeNotSupportedException - Returns this exception if there is not a registered geometry with these type and subtype
GeometryTypeNotValidException - Returns if the type and subtype are not valid

create

Geometry create(GeometryType geomType)
                throws CreateGeometryException

This method creates a Geometry with the type specified by this GeometryType. The geometry is empty, and all the internal attributes must be assigned to a value when the geometry has been created.

This example creates a point2D and sets the coordinates to 1,1:

 Point point =
     (Point) GeometryLocator.getGeometryManager().create(GEOMETRY.TYPES.POINT,
         GEOMETRY.SUBTYPES.GEOM2D);
 point.setX(1);
 point.setY(1);
 

Parameters:
geomType - The geometry type
Returns:
A instance of a geometry.
Throws:
CreateGeometryException - This exception is thrown when the manager can not create the geometry.

createEnvelope

Envelope createEnvelope(int subType)
                        throws CreateEnvelopeException

Creates a Envelope with a concrete subtype. The envelope is empty and it have to be filled with the corners once has been created.

Parameters:
subType - SubType of envelope. Must be a value defined in Geometry.SUBTYPES
Returns:
A Envelope
Throws:
CreateEnvelopeException - If it is not possible to create the envelope.

createEnvelope

Envelope createEnvelope(double minX,
                        double minY,
                        double maxX,
                        double maxY,
                        int subType)
                        throws CreateEnvelopeException

Creates a Envelope with a concrete subtype. It sets the values for the lower corner and the upper corner (in 2D) using the method parameters.

Parameters:
minX - The minimum value for the X coordinate.
minY - The minimum value for the Y coordinate.
maxX - The maximum value for the X coordinate.
maxY - The maximum value for the Y coordinate.
subType - SubType of envelope. Must be a value defined in Geometry.SUBTYPES
Returns:
Throws:
CreateEnvelopeException

create

Geometry create(String name)
                throws CreateGeometryException

This method creates a Geometry with the type specified by this name. If a geometry with this name doesn't exist, a IllegalArgumentException is thrown. The geometry is empty, and all the internal attributes must be assigned to a value when the geometry has been created.

This example creates a point2D and sets the coordinates to 1,1: It supposes that there is a Point2D class with name "Point2D".

 Point point = (Point) GeometryLocator.getGeometryManager().create("Point2D");
 point.setX(1);
 point.setY(1);
 

Parameters:
name - The name of the geometry type
Returns:
A instance of a geometry.
Throws:
CreateGeometryException - This exception is thrown when the manager can not create the geometry.

createFrom

Geometry createFrom(String wkt,
                    String srs)
                    throws CreateGeometryException,
                           GeometryException
Create a geometry from a WKT definition. This is a utility method to wrap the invocation to the operation GeometryManager.OPERATIONS.FROMWKT.

Parameters:
wkt - geometry in Well-known text format
Returns:
the geometry as a Geometry
Throws:
CreateGeometryException
GeometryException

createFrom

Geometry createFrom(String wkt)
                    throws CreateGeometryException,
                           GeometryException
Throws:
CreateGeometryException
GeometryException

createFrom

Geometry createFrom(byte[] wkb)
                    throws CreateGeometryException,
                           GeometryException
Create a geometry from a WKB definition. This is a utility method to wrap the invocation to the operation GeometryManager.OPERATIONS.FROMWKB.

Parameters:
wkb - geometry in well-known binary format
Returns:
the geometry as a Geometry
Throws:
CreateGeometryException
GeometryException

create

Geometry create(int type,
                int subType)
                throws CreateGeometryException

This method creates a Geometry with a concrete type and subtype. The geometry is empty, and all the internal attributes must be assigned to a value when the geometry has been created.

This example creates a point2D and sets the coordinates to 1,1. It supposes that there is a Point2D class with the id 1.

 Point point =
     (Point) GeometryLocator.getGeometryManager().create(Geometry.TYPES.POINT,
         Geometry.SYBTYPES.GEOM2D);
 point.setX(1);
 point.setY(1);
 

Parameters:
type - Type of geometry. Must be a value defined in Geometry.TYPES
subType - SubType of geometry. Must be a value defined in Geometry.SUBTYPES
Returns:
A instance of a geometry.
Throws:
CreateGeometryException - This exception is thrown when the manager can not create the geometry.

createNullGeometry

NullGeometry createNullGeometry(int subType)
                                throws CreateGeometryException

It creates a null geometry with a concrete subtype.

Parameters:
subType - SubType of geometry. Must be a value defined in Geometry.SUBTYPES
Returns:
A NullGeometry
Throws:
CreateGeometryException - This exception is thrown when the manager can not create the geometry.

createPoint

Point createPoint(double x,
                  double y,
                  int subType)
                  throws CreateGeometryException

Create a new point with a concrete type and sets the value for the X and the Y.

Parameters:
x - The X coordinate
y - The y coordinate
subType - SubType of geometry. Must be a value defined in Geometry.SUBTYPES
Returns:
The Point
Throws:
CreateGeometryException - This exception is thrown when the manager can not create the geometry.

createCurve

Curve createCurve(GeneralPathX generalPathX,
                  int subType)
                  throws CreateGeometryException

Create a new curve with a concrete type and sets the value for the coordinates using a GeneralPathX.

Parameters:
generalPathX - It is used to set the values for the X and Y coordinates.
subType - SubType of geometry. Must be a value defined in Geometry.SUBTYPES
Returns:
A curve
Throws:
CreateGeometryException - This exception is thrown when the manager can not create the geometry.

createMultiCurve

MultiCurve createMultiCurve(GeneralPathX generalPathX,
                            int subType)
                            throws CreateGeometryException

Create a new multicurve with a concrete type and sets the value for the coordinates using a GeneralPathX.

Parameters:
generalPathX - It is used to set the values for the X and Y coordinates.
subType - SubType of geometry. Must be a value defined in Geometry.SUBTYPES
Returns:
A multicurve
Throws:
CreateGeometryException - This exception is thrown when the manager can not create the geometry.

createSurface

Surface createSurface(GeneralPathX generalPathX,
                      int subType)
                      throws CreateGeometryException

Create a new surface with a concrete type and sets the value for the coordinates using a GeneralPathX.

Parameters:
generalPathX - It is used to set the values for the X and Y coordinates.
subType - SubType of geometry. Must be a value defined in Geometry.SUBTYPES
Returns:
A surface
Throws:
CreateGeometryException - This exception is thrown when the manager can not create the geometry.

createMultiSurface

MultiSurface createMultiSurface(GeneralPathX generalPathX,
                                int subType)
                                throws CreateGeometryException

Create a new multisurface with a concrete type and sets the value for the coordinates using a GeneralPathX.

Parameters:
generalPathX - It is used to set the values for the X and Y coordinates.
subType - SubType of geometry. Must be a value defined in Geometry.SUBTYPES
Returns:
A multisurface
Throws:
CreateGeometryException - This exception is thrown when the manager can not create the geometry.

getGeometryOperation

GeometryOperation getGeometryOperation(int opCode,
                                       int type,
                                       int subType)
                                       throws GeometryTypeNotSupportedException,
                                              GeometryOperationNotSupportedException,
                                              GeometryTypeNotValidException

Returns an operation given the Geometry type, the Geometry subtype and and the operation code. If opCode corresponds to a common operation (a common operation is an operation registered for all geometries), then this method returns the common operation.

For better performance, if you need to call an operation multiple times, use this method only once and keep the returned object in a local variable over which you can iterate. For instance:

 // Get the operation you need
 GeometryManager gm = GeometryLocator.getGeometryManager()
 GeometryOperation geomOp = null;
 try {
    geomOp = gm.getGeometryOperation(Draw2D.CODE, Geometry.TYPES.POINT, 
    Geometry.SUBTYPES.GEOM2D);
 } catch (GeometryTypeNotSupportedException gtnse) {
    // treat exception
 } catch (GeometryOperationNotSupportedException gonse) {
    // treat exception
 }
 
  // Fill the operation context with required params
 GeometryOperationContext ctx = new GeometryOperationContext();
 
  // Here is the main loop where you call the operation
 for (int i=0; i
 
 

Parameters:
opCode - The operation code
type - Type of geometry. Must be a value defined in Geometry.TYPES
subType - SubType of geometry. Must be a value defined in Geometry.SUBTYPES
Returns:
Geometry operation
Throws:
GeometryTypeNotSupportedException - Returns this exception if there is not a registered geometry with these type and subtype
GeometryTypeNotValidException - Returns this exception if the type and subtype are not valid
GeometryOperationNotSupportedException - Returns this exception if there is not a registered operation with this operation code

getGeometryOperation

GeometryOperation getGeometryOperation(int opCode)
                                       throws GeometryOperationNotSupportedException

Returns an common operation with given operation code. A common operation is an operation registered for all geometries.

For better performance, if you need to call an operation multiple times, use this method only once and keep the returned object in a local variable over which you can iterate. For instance:

 // Get the operation you need
 GeometryManager gm = GeometryLocator.getGeometryManager()
 GeometryOperation geomOp = null;
 try {
    geomOp = gm.getGeometryOperation(FromWKB.CODE);
 } catch (GeometryOperationNotSupportedException gonse) {
    // treat exception
 }
 
  // Fill the operation context with required params
 FromWKBGeometryOperationContext ctx = new FromWKBGeometryOperationContext();
 
  // Here is the main loop where you call the operation
 for (int i=0; i
 
 

Parameters:
opCode - The operation code
Returns:
Geometry operation
Throws:
GeometryOperationNotSupportedException - Returns this exception if there is not a registered operation with this operation code

invokeOperation

Object invokeOperation(int opCode,
                       Geometry geom,
                       GeometryOperationContext ctx)
                       throws GeometryOperationNotSupportedException,
                              GeometryOperationException

Invokes an operation given its code, the geometry and the operation context holding the parameters required for the operation.

Parameters:
opCode - Operation code.
geom - Geometry to which apply the operation
ctx - Context holding the operation parameters
Returns:
The object returned by an operation, depends on each operation.
Throws:
GeometryOperationNotSupportedException
GeometryOperationException

invokeOperation

Object invokeOperation(String geomOpName,
                       Geometry geom,
                       GeometryOperationContext ctx)
                       throws GeometryOperationNotSupportedException,
                              GeometryOperationException

Invokes an operation given its code, the geometry and the operation context holding the parameters required for the operation.

Parameters:
geomOpName - Operation name.
geom - Geometry to which apply the operation
ctx - Context holding the operation parameters
Returns:
The object returned by an operation, depends on each operation.
Throws:
GeometryOperationNotSupportedException
GeometryOperationException

invokeOperation

Object invokeOperation(String geomOpName,
                       GeometryOperationContext ctx)
                       throws GeometryOperationNotSupportedException,
                              GeometryOperationException

Invokes an operation given its code, and the operation context holding the parameters required for the operation.

Parameters:
geomOpName - Operation name.
ctx - Context holding the operation parameters
Returns:
The object returned by an operation, depends on each operation.
Throws:
GeometryOperationNotSupportedException
GeometryOperationException

getGeometryOperationCode

int getGeometryOperationCode(String geomOpName)

Registers the unique name of one operation. If it already exists then this method does nothing but returning the name's corresponding index.

By convention this method is used to set the value of the final and static variable that is located in the classes that implements the operation:

 
 public class MyOperation extends GeometryOperation {
 
     public static final int CODE = GeometryLocator.getGeometryManager()
         .getGeometryOperationCode("MyOperation");
 }
 

Parameters:
geomOpName - Name used to register the geometry operation
Returns:
Index assigned to the operation name passed as parameter

getGeometryOperationNames

List getGeometryOperationNames()
Returns a list with the name of the operations that have been registered.

Returns:
A list of the registered operations.

getFlatness

double getFlatness()
Returns the flatness used to convert a curve is a set of points.

Returns:
The flatness.

setFlatness

void setFlatness(double flatness)
Sets the application flatness.

Parameters:
flatness - The flatness to set


Copyright © 2004-2012 gvSIG. All Rights Reserved.