/** @packageDocumentation * @module OrbitGT */ declare type int32 = number; import { AList } from "../../system/collection/AList"; import { Coordinate } from "../geom/Coordinate"; import { CRS } from "./CRS"; import { OperationMethod } from "./OperationMethod"; /** * Class Operation defines an coordinate operation. The operation defines a specific method, * together with specific values for the parameters of the method, and a specific source and * destination coordinate reference system. * * 'Conversions' are operations that convert from projected systems to and from geographic systems (same datum). * 'Transformations' are Operations that convert from one geocentric system to another (different datum). * * @version 1.0 July 2005 */ /** @internal */ export declare class Operation { /** The type of a concatenated operation */ static readonly CONCATENATED: int32; /** The type of a conversion operation (projected to geographic) */ static readonly CONVERSION: int32; /** The type of a transformation operation (geocentric to geocentric) */ static readonly TRANSFORMATION: int32; /** The code */ private _code; /** The name */ private _name; /** The type */ private _type; /** The code of the source CRS */ private _sourceCRScode; /** The code of the target CRS */ private _targetCRScode; /** The area on which the operation has been defined (0 if unknown) */ private _areaOfUse; /** The method */ private _method; /** Have we been initialised ? */ private _initialised; /** The source coordinate reference system */ private _sourceCRS; /** The target coordinate reference system */ private _targetCRS; /** The concatenated operations */ private _concatenatedOperations; /** * Create a new coordinate operation. * @param code the code. * @param name the name. * @param type the type (CONCATENATED, CONVERSION or TRANSFORMATION). * @param sourceCRScode the code of the source CRS. * @param targetCRScode the code of the target CRS. * @param areaOfUse the area on which the operation has been defined (0 if unknown). * @param method the method (null for concatenated operations). */ constructor(code: int32, name: string, type: int32, sourceCRScode: int32, targetCRScode: int32, areaOfUse: int32, method: OperationMethod); /** * Get the code. * @return the code. */ getCode(): int32; /** * Get the name. * @return the name. */ getName(): string; /** * Get the type (CONCATENATED, CONVERSION or TRANSFORMATION). * @return the type. */ getType(): int32; /** * Get the code of the source CRS. * @return the code of the source CRS. */ getSourceCRScode(): int32; /** * Get the code of the target CRS. * @return the code of the target CRS. */ getTargetCRScode(): int32; /** * Get the area on which the operation has been defined. * @return the area on which the operation has been defined (0 if unknown). */ getAreaOfUse(): int32; /** * Get the method (null for concatenated operations). * @return the method. */ getMethod(): OperationMethod; /** * Set the method. * @param method the new method (null for concatenated operations). */ setMethod(method: OperationMethod): void; /** * Get the concatenated operations. * @return the concatenated operations (null for a method). */ getConcatenatedOperations(): AList; /** * Set the concatenated operations. * @param concatenatedOperations the concatenated operations (null for a method). */ setConcatenatedOperations(concatenatedOperations: AList): void; /** * Initialise the operation. */ initialise(): void; /** * Get the source CRS. * @return the source CRS. */ getSourceCRS(): CRS; /** * Set the source CRS. * @param sourceCRS the source CRS. */ setSourceCRS(sourceCRS: CRS): void; /** * Get the target CRS. * @return the target CRS. */ getTargetCRS(): CRS; /** * Set the target CRS. * @param targetCRS the target CRS. */ setTargetCRS(targetCRS: CRS): void; /** * Convert a source coordinate to a target coordinate. * @param source the coordinates in the source CRS. * @param target the coordinates in the target CRS (this is the result object). */ forward(source: Coordinate, target: Coordinate): void; /** * Convert a target coordinate to a source coordinate. * @param source the coordinates in the source CRS (this is the result object). * @param target the coordinates in the target CRS. */ reverse(source: Coordinate, target: Coordinate): void; /** * Check if another operation is compatible with this one. * @param other the other operation. * @return true if compatible. */ isCompatible(other: Operation): boolean; /** * Check if two operations are compatible. * @param operation1 the first operation. * @param operation2 the second operation. * @return true if compatible. */ static isCompatibleOperation(operation1: Operation, operation2: Operation): boolean; /** * Check if a list of operations is compatible with another one. * @param list1 the first list. * @param list2 the second list. * @return true if compatible. */ private static areCompatibleOperations; /** * The standard toString method. * @see Object#toString */ toString(): string; /** * Find an operation by name. * @param operations the list of operations. * @param name the name of the operation. * @return the index of the operation. */ static findByName(operations: Array, name: string): int32; /** * Get the version of a transformation. * @param transformationName the name of the transformation. * @return the version (0 if not found). */ private static getTransformationVersion; /** * Get the latest transform from a set of transformations. * @param transformations the set of transformations. * @return the latest transform. */ static getLatestTransformation(transformations: AList): Operation; } export {}; //# sourceMappingURL=Operation.d.ts.map