Table 6.1 lists the topics in this clause.
The binding of each SRM concrete object method signature is bound as depicted in the following template:
SRM_CBindingMethodName
Abstract Method: AbstractMethodName
typedef ReturnValueDataType SRM_CBindingMethodName (
|
Parameter0DataType |
parameter_0_name, |
/* paramater_0_comment */ |
|
Parameter1DataType |
parameter_1_name, |
/* paramater_1_comment */ |
|
• • • |
|
|
|
ParameterNDataType |
parameter_N_name |
/* paramater_N_comment */ |
};
The SRM C binding method name is formed by a sentinal “SRM_” followed by the name without spaces and with words capitalized. The SRM abstract method name is the name used in ISO/IEC 18026. Parameter 0 of a method is always a pointer to the associated object.
Independent functions (including all Create functions) are bound in a manner similar to that used by object methods except that Parameter 0 is not constrained to be a pointer to the current object. In most cases, the independent functions are producing an object instance.
The return value data type and parameter data types may be found in Clause 5 of this part of ISO/IEC 18042 or may be a standard C data type (e.g., void).
The parameter names are formed by using lower case words separated by underscores.
To the right of each parameter declaration is an optional C comment field. If the comment begins with “OUT”, it means the argument is used as an output parameter; the implementation returns data to the application through this argument. Arguments without “OUT” are input parameters.
Each SRM concrete object class is bound to a data type that is specified as a structure containing a pointer to its state and another pointer to its list of methods as depicted in the following template:
SRM_CBindingObjectClassName
Abstract object class: AbstractObjectClassName
typedef struct {
void |
*state; |
Method_List_Data_Type |
*methods; |
} SRM_CBindingObjectClassName;
The state is an implementation-dependent private data type that is accessed solely through the methods in the method list.
Each method list for a SRM concrete object class is a data type that is specified as a structure containing a pointer to each method supported by the object class as depicted in the following template:
SRM_CBindingObjectClassNameMethodList
Abstract object class method list: AbstractObjectClassName
typedef struct {
Method_0_Data_Type |
*method_0_name; |
Method_1_Data_Type |
*method_1_name; |
• • • |
|
Method_N_Data_Type |
*method_N_name; |
} SRM_CBindingObjectClassNameMethodList;
NOTE Instances of this data type are normally populated by the implementation during object creation.
Method signatures for SRM abstract objects are specified here for use when specifying concrete object classes (see 6.3 SRM concrete object classes).
Abstract Function: Create
typedef SRM_Status_Code SRM_Create (
|
SRM_Object_Reference |
**object |
/* OUT create object */ |
);
Abstract Method: Destroy
typedef SRM_Status_Code SRM_Destroy (
|
SRM_Object_Reference |
*object |
/* object to destroy*/ |
);
Abstract Method: GetORMCodes
typedef SRM_Status_Code SRM_GetORMCodes (
|
SRM_Object_Reference |
*this, |
|
SRM_ORM |
*orm |
/* OUT */ |
);
Abstract Method: GetSRFCodes
typedef SRM_Status_Code SRM_GetSRFCodes (
|
SRM_Object_Reference |
*this, |
|
|
SRM_SRF_Codes_Info |
*srf_codes_info |
/* OUT srf codes info */ |
);
Abstract Method: GetCSCode
typedef SRM_Status_Code SRM_GetCSCode (
|
SRM_Object_Reference |
*this, |
|
|
SRM_CS_Code |
*cs_code |
/* OUT cs code */ |
);
Abstract Method: ChangeCoordinate2DSRF
typedef SRM_Status_Code SRM_ChangeCoordinate2DSRF (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_Object_Reference |
*source_srf, |
|
const |
SRM_Coordinate2D |
*source_coordinate, |
|
|
SRM_Coordinate2D |
**target_coordinate |
/* OUT */ |
);
Abstract Method: ChangeCoordinate2DSRFObject
typedef SRM_Status_Code SRM_ChangeCoordinate2DSRFObject (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_Object_Reference |
*source_srf, |
|
const |
SRM_Coordinate2D |
*source_coordinate, |
|
const |
SRM_ORM_Transformation_2D_Parameters |
*h_st, |
|
|
SRM_Coordinate2D |
**target_coordinate |
/* OUT */ |
);
Abstract Method: CreateCoordinate2D
typedef SRM_Status_Code SRM_CreateCoordinate2D (
|
SRM_Object_Reference |
*this, |
|
|
SRM_Long_Float |
first_coordinate_component, |
|
|
SRM_Long_Float |
second_coordinate_component, |
|
|
SRM_Coordinate2D |
**new_coordinate |
/* OUT */ |
);
Abstract Method: EuclideanDistance
typedef SRM_Status_Code SRM_EuclideanDistance2D (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_Coordinate2D |
*source_coordinate, |
|
const |
SRM_Coordinate2D |
*target_coordinate |
|
|
SRM_Long_Float |
*distance |
/* OUT */ |
);
Abstract Method: Generating2D
typedef SRM_Status_Code SRM_Generating2D (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_Coordinate2D |
*coordinate, |
|
|
SRM_Position2D |
**position |
/* OUT */ |
);
Abstract Method: GetCoordinate2DValues
typedef SRM_Status_Code SRM_GetCoordinate2DValues (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_Coordinate2D |
*new_coordinate, |
|
|
SRM_Long_Float |
*first_coordinate_component, |
/* OUT */ |
|
SRM_Long_Float |
*second_coordinate_component |
/* OUT */ |
);
Abstract Method: InverseGenerating2D
typedef SRM_Status_Code SRM_InverseGenerating2D (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_Position2D |
*position, |
|
|
SRM_Coordinate2D |
**coordinate |
/* OUT */ |
);
Abstract Method: ChangeCoordinate3DSRF
typedef SRM_Status_Code SRM_ChangeCoordinate3DSRF (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_Object_Reference |
*source_srf, |
|
const |
SRM_Coordinate3D |
*source_coordinate, |
|
|
SRM_Coordinate3D |
**target_coordinate, |
/* OUT */ |
|
SRM_Coordinate_Valid_Region |
*region |
/* OUT */ |
);
Abstract Method: ChangeCoordinate3DSRFObject
typedef SRM_Status_Code SRM_ChangeCoordinate3DSRFObject (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_Object_Reference |
*source_srf, |
|
const |
SRM_Coordinate3D |
*source_coordinate, |
|
const |
SRM_ORM_Transformation_3D_Parameters |
*h_st, |
|
|
SRM_Coordinate3D |
**target_coordinate, |
/* OUT */ |
|
SRM_Coordinate_Valid_Region |
*region |
/* OUT */ |
);
Abstract Method: ChangeDirectionSRF
typedef SRM_Status_Code SRM_ChangeDirectionSRF (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_Object_Reference |
*source_srf, |
|
const |
SRM_Direction |
*source_direction, |
|
|
SRM_Direction |
**target_direction, |
/* OUT */ |
|
SRM_Coordinate_Valid_Region |
*ref_coord_region |
/* OUT */ |
);
Abstract Method: ChangeDirectionSRFObject
typedef SRM_Status_Code SRM_ChangeDirectionSRFObject (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_Object_Reference |
*source_srf, |
|
const |
SRM_Direction |
*source_direction, |
|
const |
SRM_ORM_Transformation_3D_Parameters |
*source_direction, |
|
|
SRM_Direction |
**target_direction, |
/* OUT */ |
|
SRM_Coordinate_Valid_Region |
*ref_coord_region |
/* OUT */ |
);
Abstract Method: CreateCoordinate3D
typedef SRM_Status_Code SRM_CreateCoordinate3D (
|
SRM_Object_Reference |
*this, |
|
|
SRM_Long_Float |
first_coordinate_component, |
|
|
SRM_Long_Float |
second_coordinate_component, |
|
|
SRM_Long_Float |
third_coordinate_component, |
|
|
SRM_Coordinate3D |
**new_coordinate |
/* OUT */ |
);
Abstract Method: CreateDirection
typedef SRM_Status_Code SRM_CreateDirection (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_Coordinate3D |
reference_coordinate, |
|
|
SRM_Long_Float |
first_direction_component, |
|
|
SRM_Long_Float |
second_direction_component, |
|
|
SRM_Long_Float |
third_direction_component, |
|
|
SRM_Direction |
**new_direction |
/* OUT */ |
);
Abstract Method: EuclideanDistance
typedef SRM_Status_Code SRM_EuclideanDistance3D (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_Coordinate3D |
*source_coordinate, |
|
const |
SRM_Coordinate3D |
*target_coordinate, |
|
|
SRM_Long_Float |
*distance |
/* OUT */ |
);
Abstract Method: Generating3D
typedef SRM_Status_Code SRM_Generating3D (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_Coordinate3D |
*coordinate, |
|
|
SRM_Position3D |
**position |
/* OUT */ |
);
Abstract Method: GetCoordinate3DValues
typedef SRM_Status_Code SRM_GetCoordinate3DValues (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_Coordinate3D |
*coordinate, |
|
|
SRM_Long_Float |
*first_coordinate_component, |
/* OUT */ |
|
SRM_Long_Float |
*second_coordinate_component, |
/* OUT */ |
|
SRM_Long_Float |
*third_coordinate_component |
/* OUT */ |
);
Abstract Method: GetDirectionValues
typedef SRM_Status_Code SRM_GetDirectionValues (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_Direction |
*direction, |
|
|
SRM_Coordinate3D |
**reference_coordinate, |
/* OUT */ |
|
SRM_Long_Float |
*first_direction_component, |
/* OUT */ |
|
SRM_Long_Float |
*second_direction_component, |
/* OUT */ |
|
SRM_Long_Float |
*third_direction_component |
/* OUT */ |
);
Abstract Method: GetExtendedValidRegion
typedef SRM_Status_Code SRM_GetExtendedValidRegion (
|
SRM_Object_Reference |
*this, |
|
|
SRM_Integer |
component, |
|
|
SRM_Interval_Type |
*type, |
/* OUT */ |
|
SRM_Long_Float |
*extended_lower, |
/* OUT */ |
|
SRM_Long_Float |
*lower, |
/* OUT */ |
|
SRM_Long_Float |
*upper, |
/* OUT */ |
|
SRM_Long_Float |
*extended_upper |
/* OUT */ |
);
Abstract Method: GetValidRegion
typedef SRM_Status_Code SRM_GetValidRegion (
|
SRM_Object_Reference |
*this, |
|
|
SRM_Integer |
component, |
|
|
SRM_Interval_Type |
*type, |
/* OUT */ |
|
SRM_Long_Float |
*lower, |
/* OUT */ |
|
SRM_Long_Float |
*upper |
/* OUT */ |
);
Abstract Method: InverseGenerating3D
typedef SRM_Status_Code SRM_InverseGenerating3D (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_Position3D |
*position, |
|
|
SRM_Coordinate3D |
**coordinate, |
/* OUT */ |
|
SRM_Coordinate_Valid_Region |
*region |
/* OUT */ |
);
Abstract Method: SetExtendedValidRegion
typedef SRM_Status_Code SRM_SetExtendedValidRegion (
|
SRM_Object_Reference |
*this, |
|
|
SRM_Integer |
coordinate, |
|
|
SRM_Interval_Type |
type, |
|
|
SRM_Long_Float |
extended_lower, |
|
|
SRM_Long_Float |
lower, |
|
|
SRM_Long_Float |
upper, |
|
|
SRM_Long_Float |
extended_upper |
|
);
Abstract Method: SetValidRegion
typedef SRM_Status_Code SRM_SetValidRegion (
|
SRM_Object_Reference |
*this, |
|
|
SRM_Integer |
coordinate, |
|
|
SRM_Interval_Type |
type, |
|
|
SRM_Long_Float |
lower, |
|
|
SRM_Long_Float |
upper |
|
);
Abstract Method: AssociateSurfaceCoordinate
typedef SRM_Status_Code SRM_AssociateSurfaceCoordinateTPS (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_Coordinate3D |
*coordinate, |
|
|
SRM_SurfaceCoordinate |
**on_surface_coordinate |
/* OUT */ |
);
Abstract Method: CreateSurfaceCoordinate
typedef SRM_Status_Code SRM_CreateSurfaceCoordinateTPS (
|
SRM_Object_Reference |
*this, |
|
|
SRM_Long_Float |
first_coordinate_component, |
|
|
SRM_Long_Float |
second_coordinate_component, |
|
|
SRM_SurfaceCoordinate |
**new_coordinate |
/* OUT */ |
);
Abstract Method: EuclideanDistance
typedef SRM_Status_Code SRM_EuclideanDistanceTPS (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_SurfaceCoordinate |
*source_coordinate, |
|
const |
SRM_SurfaceCoordinate |
*target_coordinate, |
|
|
SRM_Long_Float |
*distance |
/* OUT */ |
);
Abstract Method: GetSurfaceCoordinateValues
typedef SRM_Status_Code SRM_GetSurfaceCoordinateValuesTPS (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_SurfaceCoordinate |
*coordinate, |
|
|
SRM_Long_Float |
*first_coordinate_component, |
/* OUT */ |
|
SRM_Long_Float |
*second_coordinate_component |
/* OUT */ |
);
Abstract Method: PromoteSurfaceCoordinate
typedef SRM_Status_Code SRM_PromoteSurfaceCoordinateTPS (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_SurfaceCoordinate |
*surface_coordinate, |
|
|
SRM_Coordinate3D |
**coordinate |
/* OUT */ |
);
Abstract Method: AssociateSurfaceCoordinate
typedef SRM_Status_Code SRM_AssociateSurfaceCoordinateEH (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_Coordinate3D |
*coordinate, |
|
|
SRM_SurfaceCoordinate |
**on_surface_coordinate |
/* OUT */ |
);
Abstract Method: CreateLocalTangentSpaceEuclideanSRF
typedef SRM_Status_Code SRM_CreateLocalTangentSpaceEuclideanSRF (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_SurfaceCoordinate |
*surface_coordinate, |
|
|
SRM_Long_Float |
azimuth, |
|
|
SRM_Long_Float |
false_x_origin, |
|
|
SRM_Long_Float |
false_y_origin, |
|
|
SRM_Long_Float |
offset_height, |
|
|
SRM_LocalTangentSpaceEuclidean |
**local_tangent_Euclidean_srf |
/* OUT */ |
);
Abstract Method: CreateSurfaceCoordinate
typedef SRM_Status_Code SRM_CreateSurfaceCoordinateEH (
|
SRM_Object_Reference |
*this, |
|
|
SRM_Long_Float |
first_coordinate_component, |
|
|
SRM_Long_Float |
second_coordinate_component, |
|
|
SRM_SurfaceCoordinate |
**new_coordinate |
/* OUT */ |
);
Abstract Method: EuclideanDistance
typedef SRM_Status_Code SRM_EuclideanDistanceEH (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_SurfaceCoordinate |
*source_coordinate, |
|
const |
SRM_SurfaceCoordinate |
*target_coordinate, |
|
|
SRM_Long_Float |
*distance |
/* OUT */ |
);
Abstract Method: GeodesicDistance
typedef SRM_Status_Code SRM_GeodesicDistance (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_SurfaceCoordinate |
*source_coordinate, |
|
const |
SRM_SurfaceCoordinate |
*target_coordinate, |
|
|
SRM_Long_Float |
*distance |
/* OUT */ |
);
Abstract Method: GetSurfaceCoordinateValues
typedef SRM_Status_Code SRM_GetSurfaceCoordinateValuesEH (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_SurfaceCoordinate |
*coordinate, |
|
|
SRM_Long_Float |
*first_coordinate_component, |
/* OUT */ |
|
SRM_Long_Float |
*second_coordinate_component |
/* OUT */ |
);
Abstract Method: PromoteSurfaceCoordinate
typedef SRM_Status_Code SRM_PromoteSurfaceCoordinateEH (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_SurfaceCoordinate |
*surface_coordinate, |
|
|
SRM_Coordinate3D |
**coordinate |
/* OUT */ |
);
Abstract Method: ConvergenceOfTheMeridian
typedef SRM_Status_Code SRM_ConvergenceOfTheMeridian (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_SurfaceCoordinate |
*surface_coordinate, |
|
|
SRM_Long_Float |
*gamma |
/* OUT */ |
);
Abstract Method: GetExtendedValidGeodeticRegion
typedef SRM_Status_Code SRM_GetExtendedValidGeodeticRegion (
|
SRM_Object_Reference |
*this, |
|
|
SRM_Integer |
component, |
|
|
SRM_Interval_Type |
*type, |
/* OUT */ |
|
SRM_Long_Float |
*extended_lower, |
/* OUT */ |
|
SRM_Long_Float |
*lower, |
/* OUT */ |
|
SRM_Long_Float |
*upper, |
/* OUT */ |
|
SRM_Long_Float |
*extended_upper |
/* OUT */ |
);
Abstract Method: GetValidGeodeticRegion
typedef SRM_Status_Code SRM_GetValidGeodeticRegion (
|
SRM_Object_Reference |
*this, |
|
|
SRM_Integer |
component, |
|
|
SRM_Interval_Type |
*type, |
/* OUT */ |
|
SRM_Long_Float |
*lower, |
/* OUT */ |
|
SRM_Long_Float |
*upper |
/* OUT */ |
);
Abstract Method: MapAzimuth
typedef SRM_Status_Code SRM_MapAzimuth (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_SurfaceCoordinate |
*surface_coordinate, |
|
const |
SRM_SurfaceCoordinate |
*target_coordinate, |
|
|
SRM_Long_Float |
*azimuth |
/* OUT */ |
);
Abstract Method: PointScale
typedef SRM_Status_Code SRM_PointScale (
|
SRM_Object_Reference |
*this, |
|
const |
SRM_SurfaceCoordinate |
*surface_coordinate, |
|
|
SRM_Long_Float |
*scale |
/* OUT */ |
);
Abstract Method: SetExtendedValidGeodeticRegion
typedef SRM_Status_Code SRM_SetExtendedValidGeodeticRegion (
|
SRM_Object_Reference |
*this, |
|
|
SRM_Integer |
component, |
|
|
SRM_Interval_Type |
type, |
|
|
SRM_Long_Float |
extended_lower, |
|
|
SRM_Long_Float |
lower, |
|
|
SRM_Long_Float |
upper, |
|
|
SRM_Long_Float |
extended_upper |
|
);
Abstract Method: SetValidGeodeticRegion
typedef SRM_Status_Code SRM_SetValidGeodeticRegion (
|
SRM_Object_Reference |
*this, |
|
|
SRM_Integer |
component, |
|
|
SRM_Interval_Type |
type, |
|
|
SRM_Long_Float |
lower, |
|
|
SRM_Long_Float |
upper |
|
);
Concrete SRM objects are defined by a combination of methods and functions defined for the abstract object classes as specified in 6.2 SRM Abstract object method signatures and new methods and data types specified for each concrete object class. Objects may be created by using the Create function that accompanies each object class. The Create function accepts parameters that specify the characteristics of an object and returns a pointer to the object that is created. Object classes not specifying a Create function use that specified in 6.2.2 LifeCycleObject.
The following function specifies the binding of the factory for the Celestiocentric object class:
Abstract Function: Create
typedef SRM_Status_Code SRM_CC_Create (
|
SRM_ORM |
orm, |
|
|
SRM_Celestiocentric |
*new_srf |
/* OUT */ |
);
The following data type is used to specify the methods of the Celestiocentric object class:
Abstract object class: Celestiocentric
typedef struct {
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionSRF |
*ChangeDirectionSRF; |
SRM_ChangeDirectionSRFObject |
*ChangeDirectionSRFObject; |
SRM_CreateCoordinate3D |
*CreateCoordinate3D; |
SRM_CreateDirection |
*CreateDirection; |
SRM_Destroy |
*Destroy; |
SRM_EuclideanDistance3D |
*EuclideanDistance3D; |
SRM_Generating3D |
*Generating3D; |
SRM_GetCoordinate3DValues |
*GetCoordinate3DValues; |
SRM_GetCSCodes |
*GetCSCodes; |
SRM_GetDirectionValues |
*GetDirectionValues; |
SRM_GetExtendedValidRegion |
*GetExtendedValidRegion; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_GetValidRegion |
*GetValidRegion; |
SRM_InverseGenerating3D |
*InverseGenerating3D; |
SRM_SetExtendedValidRegion |
*SetExtendedValidRegion; |
SRM_SetValidRegion |
*SetValidRegion; |
} SRM_CC_Method_List;
The following record type specifies the binding of the Celestocentric object class:
Abstract object class: Celestiocentric
typedef struct {
void |
*state; |
SRM_CC_Method_List |
*methods; |
} SRM_Celestiocentric;
The following function specifies the binding of the factory for the Celestiodetric object class:
Abstract Function: Create
typedef SRM_Status_Code SRM_CD_Create (
|
SRM_ORM |
orm, |
|
|
SRM_Celestiodetic |
*new_srf |
/* OUT */ |
);
The following data type is used to specify the methods of the Celestiodetic object class:
Abstract object class: Celestiodetic
typedef struct {
SRM_AssociateSurfaceCoordinateEH |
*AssociateSurfaceCoordinate; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionSRF |
*ChangeDirectionSRF; |
SRM_ChangeDirectionSRFObject |
*ChangeDirectionSRFObject; |
SRM_CreateCoordinate3D |
*CreateCoordinate3D; |
SRM_CreateDirection |
*CreateDirection; |
SRM_CreateLocalTangentSpaceEuclideanSRF |
*CreateLocalTangentSpaceEuclideanSRF; |
SRM_CreateSurfaceCoordinateEH |
*CreateSurfaceCoordinate; |
SRM_Destroy |
*Destroy; |
SRM_EuclideanDistance3D |
*EuclideanDistance3D; |
SRM_EuclideanDistanceEH |
*EuclideanDistanceEH; |
SRM_Generating3D |
*Generating3D; |
SRM_GeodesicDistance |
*GeodesicDistance; |
SRM_GetCoordinate3DValues |
*GetCoordinate3DValues; |
SRM_GetCSCodes |
*GetCSCodes; |
SRM_GetDirectionValues |
*GetDirectionValues; |
SRM_GetExtendedValidRegion |
*GetExtendedValidRegion; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_GetSurfaceCoordinateValuesEH |
*GetSurfaceCoordinateValues; |
SRM_GetValidRegion |
*GetValidRegion; |
SRM_InverseGenerating3D |
*InverseGenerating3D; |
SRM_PromoteSurfaceCoordinateEH |
*PromoteSurfaceCoordinate; |
SRM_SetExtendedValidRegion |
*SetExtendedValidRegion; |
SRM_SetValidRegion |
*SetValidRegion; |
SRM_VerticalOffset |
*VerticalOffset; |
} SRM_CD_Method_List;
The following record type specifies the binding of the Celestiodetic object class:
Abstract object class: Celestiodetic
typedef struct {
void |
*state; |
SRM_CD_Method_List |
*methods; |
} SRM_Celestiodetic;
The following function specifies the binding of the factory for the Celestiomagnetic object class:
Abstract Function: Create
typedef SRM_Status_Code SRM_CM_Create (
|
SRM_ORM |
orm, |
|
|
SRM_Celestiomagnetic |
*new_srf |
/* OUT */ |
);
The following data type is used to specify the methods of the Celestiomagnetic object class:
Abstract object class: Celestiomagnetic
typedef struct {
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionSRF |
*ChangeDirectionSRF; |
SRM_ChangeDirectionSRFObject |
*ChangeDirectionSRFObject; |
SRM_CreateCoordinate3D |
*CreateCoordinate3D; |
SRM_CreateDirection |
*CreateDirection; |
SRM_Destroy |
*Destroy; |
SRM_EuclideanDistance3D |
*EuclideanDistance3D; |
SRM_Generating3D |
*Generating3D; |
SRM_GetCoordinate3DValues |
*GetCoordinate3DValues; |
SRM_GetCSCodes |
*GetCSCodes; |
SRM_GetDirectionValues |
*GetDirectionValues; |
SRM_GetExtendedValidRegion |
*GetExtendedValidRegion; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_GetValidRegion |
*GetValidRegion; |
SRM_InverseGenerating3D |
*InverseGenerating3D; |
SRM_SetExtendedValidRegion |
*SetExtendedValidRegion; |
SRM_SetValidRegion |
*SetValidRegion; |
} SRM_CM_Method_List;
The following record type specifies the binding of the Celestiomagnetic object class:
Abstract object class: Celestiomagnetic
typedef struct {
void |
*state; |
SRM_CM_Method_List |
*methods; |
} SRM_Celestiomagnetic;
The following data type is used to specify the methods of the Coordinate2D object class:
Abstract object class: Coordinate2D
typedef struct {
SRM_Destroy |
*destroy; |
} SRM_Coordinate2D_Method_List;
Abstract object class: Coordinate2D
typedef struct {
void |
*state; |
SRM_Coordinate2D_Method_List |
*methods; |
} SRM_Coordinate2D;
The following data type is used to specify the methods of the Coordinate3D object class:
Abstract object class: Coordinate3D
typedef struct {
SRM_Destroy |
*destroy; |
} SRM_Coordinate3D_Method_List;
Abstract object class: Coordinate3D
typedef struct {
void |
*state; |
SRM_Coordinate3D_Method_List |
*methods; |
} SRM_Coordinate3D;
The following data type is used to specify the methods of the Direction object class:
Abstract object class: Direction
typedef struct {
SRM_Destroy |
*destroy; |
} SRM_Direction_Method_List;
Abstract object class: Direction
typedef struct {
void |
*state; |
SRM_Direction_Method_List |
*methods; |
} SRM_Direction;
The following function specifies the binding of the factory for the EquatorialInertial object class:
Abstract Function: Create
typedef SRM_Status_Code SRM_EI_Create (
|
SRM_ORM |
orm, |
|
|
SRM_EquatorialInertial |
*new_srf |
/* OUT */ |
);
The following data type is used to specify the methods of the EquatorialInertial object class:
Abstract object class: EquatorialInertial
typedef struct {
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionSRF |
*ChangeDirectionSRF; |
SRM_ChangeDirectionSRFObject |
*ChangeDirectionSRFObject; |
SRM_CreateCoordinate3D |
*CreateCoordinate3D; |
SRM_CreateDirection |
*CreateDirection; |
SRM_Destroy |
*Destroy; |
SRM_EuclideanDistance3D |
*EuclideanDistance3D; |
SRM_Generating3D |
*Generating3D; |
SRM_GetCoordinate3DValues |
*GetCoordinate3DValues; |
SRM_GetCSCodes |
*GetCSCodes; |
SRM_GetDirectionValues |
*GetDirectionValues; |
SRM_GetExtendedValidRegion |
*GetExtendedValidRegion; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_GetValidRegion |
*GetValidRegion; |
SRM_InverseGenerating3D |
*InverseGenerating3D; |
SRM_SetExtendedValidRegion |
*SetExtendedValidRegion; |
SRM_SetValidRegion |
*SetValidRegion; |
} SRM_EI_Method_List;
The following record type specifies the binding of the EquatorialInertial object class:
Abstract object class: EquatorialInertial
typedef struct {
void |
*state; |
SRM_EI_Method_List |
*methods; |
} SRM_EquatorialInertial;
The following function specifies the binding of the factory for the EquidistantCylindrical object class:
Abstract Function: Create
typedef SRM_Status_Code SRM_EC_Create (
|
SRM_ORM |
orm, |
|
const |
SRM_Equidistant_Cylindrical_Parameters |
parameters, |
|
|
SRM_EquidistantCylindrical |
*new_srf |
/* OUT */ |
);
The following method is used to specify the binding of the EquidistantCylindrical object class:
Abstract Method: GetSRFParameters
typedef SRM_Status_Code SRM_EC_GetSRFParameters (
|
SRM_Object_Reference |
*this, |
|
|
SRM_Equidistant_Cylindrical_Parameters |
*parameters |
/* OUT */ |
);
The following data type is used to specify the methods of the EquidistantCylindrical object class:
Abstract object class: EquidistanceCylindrical
typedef struct {
SRM_AssociateSurfaceCoordinateEH |
*AssociateSurfaceCoordinate; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionSRF |
*ChangeDirectionSRF; |
SRM_ChangeDirectionSRFObject |
*ChangeDirectionSRFObject; |
SRM_ConvergenceOfTheMeridian |
*ConvergenceOfTheMeridian; |
SRM_CreateCoordinate3D |
*CreateCoordinate3D; |
SRM_CreateDirection |
*CreateDirection; |
SRM_CreateLocalTangentPlaneEuclideanSRF |
*CreateLocalTangentPlaneEuclideanSRF; |
SRM_CreateSurfaceCoordinateEH |
*CreateSurfaceCoordinate; |
SRM_Destroy |
*Destroy; |
SRM_EuclideanDistance3D |
*EuclideanDistance3D; |
SRM_EuclideanDistanceEH |
*EuclideanDistanceEH; |
SRM_Generating3D |
*Generating3D; |
SRM_GeodesicDistance |
*GeodesicDistance; |
SRM_GetCoordinate3DValues |
*GetCoordinate3DValues; |
SRM_GetCSCode |
*GetCSCode; |
SRM_GetDirectionValues |
*GetDirectionValues; |
SRM_GetExtendedValidGeodeticRegion |
*GetExtendedValidGeodeticRegion; |
SRM_GetExtendedValidRegion |
*GetExtendedValidRegion; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_EC_GetSRFParameters |
*GetSRFParameters; |
SRM_GetSurfaceCoordinateValuesEH |
*GetSurfaceCoordinateValues; |
SRM_GetValidGeodeticRegion |
*GetValidGeodeticRegion; |
SRM_GetValidRegion |
*GetValidRegion; |
SRM_InverseGenerating3D |
*InverseGenerating3D; |
SRM_MapAzimuth |
*MapAzimuth; |
SRM_PromoteSurfaceCoordinateEH |
*PromoteSurfaceCoordinate; |
SRM_PointScale |
*PointScale; |
SRM_SetExtendedValidGeodeticRegion |
*SetExtendedValidGeodeticRegion; |
SRM_SetExtendedValidRegion |
*SetExtendedValidRegion; |
SRM_SetValidGeodeticRegion |
*SetValidGeodeticRegion; |
SRM_SetValidRegion |
*SetValidRegion; |
SRM_VerticalOffset |
*VerticalOffset; |
} SRM_EC_Method_List;
The following record type specifies the binding of the EquidistantCylindrical object class:
Abstract object class: EquidistanceCylindrical
typedef struct {
void |
*state; |
SRM_EC_Method_List |
*methods; |
} SRM_EquidistanceCylindrical;
The following function specifies the binding of the factory for the HeliosphericAriesEcliptic object class:
Abstract Function: Create
typedef SRM_Status_Code SRM_HAEC_Create (
|
SRM_ORM |
orm, |
|
|
SRM_HeliosphericAriesEcliptic |
*new_srf |
/* OUT */ |
);
The following data type is used to specify the methods of the HeliosphericAriesEcliptic object class:
Abstract object class: HeliosphericAriesEcliptic
typedef struct {
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionSRF |
*ChangeDirectionSRF; |
SRM_ChangeDirectionSRFObject |
*ChangeDirectionSRFObject; |
SRM_CreateCoordinate3D |
*CreateCoordinate3D; |
SRM_CreateDirection |
*CreateDirection; |
SRM_Destroy |
*Destroy; |
SRM_EuclideanDistance3D |
*EuclideanDistance3D; |
SRM_Generating3D |
*Generating3D; |
SRM_GetCoordinate3DValues |
*GetCoordinate3DValues; |
SRM_GetCSCodes |
*GetCSCodes; |
SRM_GetDirectionValues |
*GetDirectionValues; |
SRM_GetExtendedValidRegion |
*GetExtendedValidRegion; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_GetValidRegion |
*GetValidRegion; |
SRM_InverseGenerating3D |
*InverseGenerating3D; |
SRM_SetExtendedValidRegion |
*SetExtendedValidRegion; |
SRM_SetValidRegion |
*SetValidRegion; |
} SRM_HAEC_Method_List;
The following record type specifies the binding of the HeliosphericAriesEcliptic object class:
Abstract object class: HeliosphericAriesEcliptic
typedef struct {
void |
*state; |
SRM_HAEC_Method_List |
*methods; |
} SRM_HeliosphericAriesEcliptic;
The following function specifies the binding of the factory for the HeliosphericEarthEcliptic object class:
Abstract Function: Create
typedef SRM_Status_Code SRM_HEEC_Create (
|
SRM_ORM |
orm, |
|
|
SRM_HeliosphericEarthEcliptic |
*new_srf |
/* OUT */ |
);
The following data type is used to specify the methods of the HeliosphericEarthEcliptic object class:
Abstract object class: HeliosphericEarthEcliptic
typedef struct {
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionSRF |
*ChangeDirectionSRF; |
SRM_ChangeDirectionSRFObject |
*ChangeDirectionSRFObject; |
SRM_CreateCoordinate3D |
*CreateCoordinate3D; |
SRM_CreateDirection |
*CreateDirection; |
SRM_Destroy |
*Destroy; |
SRM_EuclideanDistance3D |
*EuclideanDistance3D; |
SRM_Generating3D |
*Generating3D; |
SRM_GetCoordinate3DValues |
*GetCoordinate3DValues; |
SRM_GetCSCodes |
*GetCSCodes; |
SRM_GetDirectionValues |
*GetDirectionValues; |
SRM_GetExtendedValidRegion |
*GetExtendedValidRegion; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_GetValidRegion |
*GetValidRegion; |
SRM_InverseGenerating3D |
*InverseGenerating3D; |
SRM_SetExtendedValidRegion |
*SetExtendedValidRegion; |
SRM_SetValidRegion |
*SetValidRegion; |
} SRM_HEEC_Method_List;
The following record type specifies the binding of the HeliosphericEarthEcliptic object class:
Abstract object class: HeliosphericEarthEcliptic
typedef struct {
void |
*state; |
SRM_HEEC_Method_List |
*methods; |
} SRM_HeliosphericEarthEcliptic;
The following function specifies the binding of the factory for the HeliosphericEarthEquatorial object class:
Abstract Function: Create
typedef SRM_Status_Code SRM_HEEQ_Create (
|
SRM_ORM |
orm, |
|
|
SRM_HeliosphericEarthEquatorial |
*new_srf |
/* OUT */ |
);
The following data type is used to specify the methods of the HeliosphericEarthEquatorial object class:
Abstract object class: HeliosphericEarthEquatorial
typedef struct {
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionSRF |
*ChangeDirectionSRF; |
SRM_ChangeDirectionSRFObject |
*ChangeDirectionSRFObject; |
SRM_CreateCoordinate3D |
*CreateCoordinate3D; |
SRM_CreateDirection |
*CreateDirection; |
SRM_Destroy |
*Destroy; |
SRM_EuclideanDistance3D |
*EuclideanDistance3D; |
SRM_Generating3D |
*Generating3D; |
SRM_GetCoordinate3DValues |
*GetCoordinate3DValues; |
SRM_GetCSCodes |
*GetCSCodes; |
SRM_GetDirectionValues |
*GetDirectionValues; |
SRM_GetExtendedValidRegion |
*GetExtendedValidRegion; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_GetValidRegion |
*GetValidRegion; |
SRM_InverseGenerating3D |
*InverseGenerating3D; |
SRM_SetExtendedValidRegion |
*SetExtendedValidRegion; |
SRM_SetValidRegion |
*SetValidRegion; |
} SRM_HEEC_Method_List;
The following record type specifies the binding of the HeliosphericEarthEquatorial object class:
Abstract object class: HeliosphericEarthEquatorial
typedef struct {
void |
*state; |
SRM_HEEQ_Method_List |
*methods; |
} SRM_HeliosphericEarthEquatorial;
The following function specifies the binding of the factory for the LambertConformalConic object class:
Abstract Function: Create
typedef SRM_Status_Code SRM_LCC_Create (
|
SRM_ORM |
orm, |
|
|
SRM_LambertConformalConic |
*new_srf |
/* OUT */ |
);
The following method is used to specify the binding of the LambertConformalConic object class:
Abstract Method: GetSRFParameters
typedef SRM_Status_Code SRM_LCC_GetSRFParameters (
|
SRM_Object_Reference |
*this, |
|
|
SRM_Lambert_Conformal_Conic_Parameters |
*parameters |
/* OUT */ |
);
The following data type is used to specify the methods of the LambertConformalConic object class:
Abstract object class: LambertConformalConic
typedef struct {
SRM_AssociateSurfaceCoordinateEH |
*AssociateSurfaceCoordinate; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionSRF |
*ChangeDirectionSRF; |
SRM_ChangeDirectionSRFObject |
*ChangeDirectionSRFObject; |
SRM_ConvergenceOfTheMeridian |
*ConvergenceOfTheMeridian; |
SRM_CreateCoordinate3D |
*CreateCoordinate3D; |
SRM_CreateDirection |
*CreateDirection; |
SRM_CreateLocalTangentPlaneEuclideanSRF |
*CreateLocalTangentPlaneEuclideanSRF; |
SRM_CreateSurfaceCoordinateEH |
*CreateSurfaceCoordinate; |
SRM_Destroy |
*Destroy; |
SRM_EuclideanDistance3D |
*EuclideanDistance3D; |
SRM_EuclideanDistanceEH |
*EuclideanDistanceEH; |
SRM_Generating3D |
*Generating3D; |
SRM_GeodesicDistance |
*GeodesicDistance; |
SRM_GetCoordinate3DValues |
*GetCoordinate3DValues; |
SRM_GetCSCode |
*GetCSCode; |
SRM_GetDirectionValues |
*GetDirectionValues; |
SRM_GetExtendedValidGeodeticRegion |
*GetExtendedValidGeodeticRegion; |
SRM_GetExtendedValidRegion |
*GetExtendedValidRegion; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_LCC_GetSRFParameters |
*GetSRFParameters; |
SRM_GetSurfaceCoordinateValuesEH |
*GetSurfaceCoordinateValues; |
SRM_GetValidGeodeticRegion |
*GetValidGeodeticRegion; |
SRM_GetValidRegion |
*GetValidRegion; |
SRM_InverseGenerating3D |
*InverseGenerating3D; |
SRM_MapAzimuth |
*MapAzimuth; |
SRM_PromoteSurfaceCoordinateEH |
*PromoteSurfaceCoordinate; |
SRM_PointScale |
*PointScale; |
SRM_SetExtendedValidGeodeticRegion |
*SetExtendedValidGeodeticRegion; |
SRM_SetExtendedValidRegion |
*SetExtendedValidRegion; |
SRM_SetValidGeodeticRegion |
*SetValidGeodeticRegion; |
SRM_SetValidRegion |
*SetValidRegion; |
SRM_VerticalOffset |
*VerticalOffset; |
} SRM_LCC_Method_List;
The following record type specifies the binding of the LambertConformalConic object class:
Abstract object class: LambertConformalConic
typedef struct {
void |
*state; |
SRM_LCC_Method_List |
*methods; |
} SRM_LambertConformalConic;
The following function specifies the binding of the factory for the LocalSpaceAzimuthal object class:
Abstract Function: Create
typedef SRM_Status_Code SRM_LSA_Create (
|
SRM_ORM |
orm, |
|
|
SRM_LocalSpaceAzimuthal |
*new_srf |
/* OUT */ |
);
The following data type is used to specify the methods of the LocalSpaceAzimuthal object class:
Abstract object class: LocalSpaceAzimuthal
typedef struct {
SRM_ChangeCoordinate2DSRF |
*ChangeCoordinate2DSRF; |
SRM_ChangeCoordinate2DSRFObject |
*ChangeCoordinate2DSRFObject; |
SRM_CreateCoordinate2D |
*CreateCoordinate2D; |
SRM_Destroy |
*Destroy; |
SRM_EuclideanDistance2D |
*EuclideanDistance2D; |
SRM_Generating2D |
*Generating2D; |
SRM_GetCoordinate2DValues |
*GetCoordinate2DValues; |
SRM_GetCSCodes |
*GetCSCodes; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_InverseGenerating2D |
*InverseGenerating2D; |
} SRM_LSA_Method_List;
The following record type specifies the binding of the LocalSpaceAzimuthal object class:
Abstract object class: LocalSpaceAzimuthal
typedef struct {
void |
*state; |
SRM_LSA_Method_List |
*methods; |
} SRM_LocalSpaceAzimuthal;
The following function specifies the binding of the factory for the LocalSpacePolar object class:
Abstract Function: Create
typedef SRM_Status_Code SRM_LSP_Create (
|
SRM_ORM |
orm, |
|
|
SRM_LocalSpacePolar |
*new_srf |
/* OUT */ |
);
The following data type is used to specify the methods of the LocalSpacePolar object class:
Abstract object class: LocalSpacePolar
typedef struct {
void |
*state; |
SRM_ChangeCoordinate2DSRF |
*ChangeCoordinate2DSRF; |
SRM_ChangeCoordinate2DSRFObject |
*ChangeCoordinate2DSRFObject; |
SRM_CreateCoordinate2D |
*CreateCoordinate2D; |
SRM_Destroy |
*Destroy; |
SRM_EuclideanDistance2D |
*EuclideanDistance2D; |
SRM_Generating2D |
*Generating2D; |
SRM_GetCoordinate2DValues |
*GetCoordinate2DValues; |
SRM_GetCSCodes |
*GetCSCodes; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_InverseGenerating2D |
*InverseGenerating2D; |
} SRM_LSP_Method_List;
The following record type specifies the binding of the LocalSpacePolar object class:
Abstract object class: LocalSpacePolar
typedef struct {
void |
*state; |
SRM_LSP_Method_List |
*methods; |
} SRM_LocalSpacePolar;
The following methods are used to specify the binding of the LocalSpaceRectangular2D object class:
Abstract Function: Create
typedef SRM_Status_Code SRM_LSR2D_Create (
|
SRM_ORM |
orm, |
|
const |
SRM_Local_Space_Rectangular_2D_Parameters |
srf_parameters, |
|
|
SRM_LocalSpaceRectangular2D |
*new_srf |
/* OUT */ |
);
The following method is used to specify the binding of the LocalSpaceRectangular object class:
Abstract Method: GetSRFParameters
typedef SRM_Status_Code SRM_LSR2D_GetSRFParameters (
|
SRM_Local_Space_Rectangular_2D_Parameters |
*parameters |
/* OUT */ |
);
The following data type is used to specify the methods of the LocalSpaceRectangular2D object class:
Abstract object class: LocalSpaceRectangular2D
typedef struct {
SRM_ChangeCoordinate2DSRF |
*ChangeCoordinate2DSRF; |
SRM_ChangeCoordinate2DSRFObject |
*ChangeCoordinate2DSRFObject; |
SRM_CreateCoordinate2D |
*CreateCoordinate2D; |
SRM_Destroy |
*Destroy; |
SRM_EuclideanDistance2D |
*EuclideanDistance2D; |
SRM_Generating2D |
*Generating2D; |
SRM_GetCoordinate2DValues |
*GetCoordinate2DValues; |
SRM_GetCSCodes |
*GetCSCodes; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_InverseGenerating2D |
*InverseGenerating2D; |
} SRM_LSR2D_Method_List;
The following record type specifies the binding of the LocalSpaceRectangular2D object class:
Abstract object class: LocalSpaceRectangular2D
typedef struct {
void |
*state; |
SRM_LSR2D_Method_List |
*methods; |
} SRM_LocalSpaceRectangular2D;
The following function specifies the binding of the factory for the LocalSpaceRectangular3D object class:
Abstract Function: Create
typedef SRM_Status_Code SRM_LSP_Create (
|
SRM_ORM |
orm, |
|
|
SRM_LocalSpaceRectangular3D |
*new_srf |
/* OUT */ |
);
The following method is used to specify the binding of the LocalSpaceRectangular3D object class:
Abstract Method: GetSRFParameters
typedef SRM_Status_Code SRM_LSR3D_GetSRFParameters (
|
SRM_Object_Reference |
*this, |
|
|
SRM_Local_Space_Rectangular_3D_Parameters |
*parameters |
/* OUT */ |
);
The following data type is used to specify the methods of the LocalSpaceRectangular3D object class:
Abstract object class: LocalSpaceRectangular3D
typedef struct {
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionSRF |
*ChangeDirectionSRF; |
SRM_ChangeDirectionSRFObject |
*ChangeDirectionSRFObject; |
SRM_CreateCoordinate3D |
*CreateCoordinate3D; |
SRM_CreateDirection |
*CreateDirection; |
SRM_Destroy |
*Destroy; |
SRM_EuclideanDistance3D |
*EuclideanDistance3D; |
SRM_Generating3D |
*Generating3D; |
SRM_GetCoordinate3DValues |
*GetCoordinate3DValues; |
SRM_GetCSCodes |
*GetCSCodes; |
SRM_GetDirectionValues |
*GetDirectionValues; |
SRM_GetExtendedValidRegion |
*GetExtendedValidRegion; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_GetValidRegion |
*GetValidRegion; |
SRM_InverseGenerating3D |
*InverseGenerating3D; |
SRM_SetExtendedValidRegion |
*SetExtendedValidRegion; |
SRM_SetValidRegion |
*SetValidRegion; |
} SRM_LSR3D_Method_List;
The following record type specifies the binding of the LocalSpaceRectangular3D object class:
Abstract object class: LocalSpaceRectangular3D
typedef struct {
void |
*state; |
SRM_LSR3D_Method_List |
*methods; |
} SRM_LocalSpaceRectangular3D;
The following function specifies the binding of the factory for the LocalTangentSpaceAzimuthalSpherical object class:
Abstract Function: Create
typedef SRM_Status_Code SRM_LTSAS_Create (
|
SRM_ORM |
orm, |
|
const |
SRM_Local_Tangent_Space_Azimuthal_Parameters |
parameters, |
|
|
SRM_LocalTangentSpaceAzimuthalSpherical |
*new_srf |
/* OUT */ |
);
The following method is used to specify the binding of the LocalTangentSpaceAzimuthalSpherical object class:
Abstract Method: GetSRFParameters
typedef SRM_Status_Code SRM_LTSAS_GetSRFParameters (
|
SRM_Object_Reference |
*this, |
|
|
SRM_Local_Tangent_Parameters |
*parameters |
/* OUT */ |
);
The following data type is used to specify the methods of the LocalTangentSpaceAzimuthalSpherical object class:
Abstract object class: LocalTangentSpaceAzimuthalSpherical
typedef struct {
SRM_AssociateSurfaceCoordinateTPS |
*AssociateSurfaceCoordinate; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionSRF |
*ChangeDirectionSRF; |
SRM_ChangeDirectionSRFObject |
*ChangeDirectionSRFObject; |
SRM_CreateCoordinate3D |
*CreateCoordinate3D; |
SRM_CreateDirection |
*CreateDirection; |
SRM_CreateSurfaceCoordinateTPS |
*CreateSurfaceCoordinate; |
SRM_Destroy |
*Destroy; |
SRM_EuclideanDistance3D |
*EuclideanDistance3D; |
SRM_EuclideanDistanceTPS |
*EuclideanDistanceTPS; |
SRM_Generating3D |
*Generating3D; |
SRM_GetCoordinate3DValues |
*GetCoordinate3DValues; |
SRM_GetCSCodes |
*GetCSCodes; |
SRM_GetDirectionValues |
*GetDirectionValues; |
SRM_GetExtendedValidRegion |
*GetExtendedValidRegion; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_LTSAS_GetSRFParameters |
*GetSRFParameters; |
SRM_GetSurfaceCoordinateValuesTPS |
*GetSurfaceCoordinateValues; |
SRM_GetValidRegion |
*GetValidRegion; |
SRM_InverseGenerating3D |
*InverseGenerating3D; |
SRM_PromoteSurfaceCoordinateTPS |
*PromoteSurfaceCoordinate; |
SRM_SetExtendedValidRegion |
*SetExtendedValidRegion; |
SRM_SetValidRegion |
*SetValidRegion; |
} SRM_LTSAS_Method_List;
The following record type specifies the binding of the LocalTangentSpaceAzimuthalSpherical object class:
Abstract object class: LocalTangentSpaceAzimuthalSpherical
typedef struct {
void |
*state; |
SRM_LTSAS_Method_List |
*methods; |
} SRM_LocalTangentSpaceAzimuthalSpherical;
The following function specifies the binding of the factory for the LocalTangentSpaceCylindrical object class:
Abstract Function: Create
typedef SRM_Status_Code SRM_LTSC_Create (
|
SRM_ORM |
orm, |
|
|
SRM_LocalTangentSpaceCylindrical |
*new_srf |
/* OUT */ |
);
The following method is used to specify the binding of the LocalTangentSpaceCylindrical object class:
Abstract Method: GetSRFParameters
typedef SRM_Status_Code SRM_LTSC_GetSRFParameters (
|
SRM_Object_Reference |
*this, |
|
|
SRM_Local_Tangent_Parameters |
**parameters |
/* OUT */ |
);
The following data type is used to specify the methods of the LocalTangentSpaceCylindrical object class:
Abstract object class: LocalTangentSpaceCylindrical
typedef struct {
SRM_AssociateSurfaceCoordinateTPS |
*AssociateSurfaceCoordinate; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionSRF |
*ChangeDirectionSRF; |
SRM_ChangeDirectionSRFObject |
*ChangeDirectionSRFObject; |
SRM_CreateCoordinate3D |
*CreateCoordinate3D; |
SRM_CreateDirection |
*CreateDirection; |
SRM_CreateSurfaceCoordinateTPS |
*CreateSurfaceCoordinate; |
SRM_Destroy |
*Destroy; |
SRM_EuclideanDistance3D |
*EuclideanDistance3D; |
SRM_EuclideanDistanceTPS |
*EuclideanDistanceTPS; |
SRM_Generating3D |
*Generating3D; |
SRM_GetCoordinate3DValues |
*GetCoordinate3DValues; |
SRM_GetCSCodes |
*GetCSCodes; |
SRM_GetDirectionValues |
*GetDirectionValues; |
SRM_GetExtendedValidRegion |
*GetExtendedValidRegion; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_LTSC_GetSRFParameters |
*GetSRFParameters; |
SRM_GetSurfaceCoordinateValuesTPS |
*GetSurfaceCoordinateValues; |
SRM_GetValidRegion |
*GetValidRegion; |
SRM_InverseGenerating3D |
*InverseGenerating3D; |
SRM_PromoteSurfaceCoordinateTPS |
*PromoteSurfaceCoordinate; |
SRM_SetExtendedValidRegion |
*SetExtendedValidRegion; |
SRM_SetValidRegion |
*SetValidRegion; |
} SRM_LTSC_Method_List;
The following record type specifies the binding of the LocalTangentSpaceCylindrical object class:
Abstract object class: LocalTangentSpaceCylindrical
typedef struct {
void |
*state; |
SRM_LTSC_Method_List |
*methods; |
} SRM_LocalTangentSpaceCylindrical;
The following function specifies the binding of the factory for the LocalTangentSpaceEuclidean object class:
Abstract Function: Create
typedef SRM_Status_Code SRM_LTSE_Create (
|
SRM_ORM |
orm, |
|
|
SRM_LocalTangentSpaceEuclidean |
*new_srf |
/* OUT */ |
);
The following method is used to specify the binding of the LocalTangentSpaceEuclidean object class:
Abstract Method: GetSRFParameters
typedef SRM_Status_Code SRM_LTSE_GetSRFParameters (
|
SRM_Object_Reference |
*this, |
|
|
SRM_Local_Tangent_Space_Euclidean_Parameters |
**parameters |
/* OUT */ |
);
The following data type is used to specify the methods of the LocalTangentSpaceEuclidean object class:
Abstract object class: LocalTangentSpaceEuclidean
typedef struct {
SRM_AssociateSurfaceCoordinateTPS |
*AssociateSurfaceCoordinate; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionSRF |
*ChangeDirectionSRF; |
SRM_ChangeDirectionSRFObject |
*ChangeDirectionSRFObject; |
SRM_CreateCoordinate3D |
*CreateCoordinate3D; |
SRM_CreateDirection |
*CreateDirection; |
SRM_CreateSurfaceCoordinateTPS |
*CreateSurfaceCoordinate; |
SRM_Destroy |
*Destroy; |
SRM_EuclideanDistance3D |
*EuclideanDistance3D; |
SRM_EuclideanDistanceTPS |
*EuclideanDistanceTPS; |
SRM_Generating3D |
*Generating3D; |
SRM_GetCoordinate3DValues |
*GetCoordinate3DValues; |
SRM_GetCSCodes |
*GetCSCodes; |
SRM_GetDirectionValues |
*GetDirectionValues; |
SRM_GetExtendedValidRegion |
*GetExtendedValidRegion; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_LTSE_GetSRFParameters |
*GetSRFParameters; |
SRM_GetSurfaceCoordinateValuesTPS |
*GetSurfaceCoordinateValues; |
SRM_GetValidRegion |
*GetValidRegion; |
SRM_InverseGenerating3D |
*InverseGenerating3D; |
SRM_PromoteSurfaceCoordinateTPS |
*PromoteSurfaceCoordinate; |
SRM_SetExtendedValidRegion |
*SetExtendedValidRegion; |
SRM_SetValidRegion |
*SetValidRegion; |
} SRM_LTSE_Method_List;
The following record type specifies the binding of the LocalTangentSpaceEuclidean object class:
Abstract object class: LocalTangentSpaceEuclidean
typedef struct {
void |
*state; |
SRM_LTSE_Method_List |
*methods; |
} SRM_LocalTangentSpaceEuclidean;
The following function specifies the binding of the factory for the Mercator object class:
Abstract Function: Create
typedef SRM_Status_Code SRM_M_Create (
|
SRM_ORM |
orm, |
|
|
SRM_Mercator |
*new_srf |
/* OUT */ |
);
The following method is used to specify the binding of the Mercator object class:
Abstract Method: GetSRFParameters
typedef SRM_Status_Code SRM_M_GetSRFParameters (
|
SRM_Object_Reference |
*this, |
|
|
SRM_Mercator_Parameters |
*parameters |
/* OUT */ |
);
The following data type is used to specify the methods of the Mercator object class:
Abstract object class: Mercator
typedef struct {
SRM_AssociateSurfaceCoordinateEH |
*AssociateSurfaceCoordinate; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionSRF |
*ChangeDirectionSRF; |
SRM_ChangeDirectionSRFObject |
*ChangeDirectionSRFObject; |
SRM_ConvergenceOfTheMeridian |
*ConvergenceOfTheMeridian; |
SRM_CreateCoordinate3D |
*CreateCoordinate3D; |
SRM_CreateDirection |
*CreateDirection; |
SRM_CreateLocalTangentPlaneEuclideanSRF |
*CreateLocalTangentPlaneEuclideanSRF; |
SRM_CreateSurfaceCoordinateEH |
*CreateSurfaceCoordinate; |
SRM_Destroy |
*Destroy; |
SRM_EuclideanDistance3D |
*EuclideanDistance3D; |
SRM_EuclideanDistanceEH |
*EuclideanDistanceEH; |
SRM_Generating3D |
*Generating3D; |
SRM_GeodesicDistance |
*GeodesicDistance; |
SRM_GetCoordinate3DValues |
*GetCoordinate3DValues; |
SRM_GetCSCode |
*GetCSCode; |
SRM_GetDirectionValues |
*GetDirectionValues; |
SRM_GetExtendedValidGeodeticRegion |
*GetExtendedValidGeodeticRegion; |
SRM_GetExtendedValidRegion |
*GetExtendedValidRegion; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_M_GetSRFParameters |
*GetSRFParameters; |
SRM_GetSurfaceCoordinateValuesEH |
*GetSurfaceCoordinateValues; |
SRM_GetValidGeodeticRegion |
*GetValidGeodeticRegion; |
SRM_GetValidRegion |
*GetValidRegion; |
SRM_InverseGenerating3D |
*InverseGenerating3D; |
SRM_MapAzimuth |
*MapAzimuth; |
SRM_PromoteSurfaceCoordinateEH |
*PromoteSurfaceCoordinate; |
SRM_PointScale |
*PointScale; |
SRM_SetExtendedValidGeodeticRegion |
*SetExtendedValidGeodeticRegion; |
SRM_SetExtendedValidRegion |
*SetExtendedValidRegion; |
SRM_SetValidGeodeticRegion |
*SetValidGeodeticRegion; |
SRM_SetValidRegion |
*SetValidRegion; |
SRM_VerticalOffset |
*VerticalOffset; |
} SRM_M_Method_List;
The following record type specifies the binding of the Mercator object class:
Abstract object class: Mercator
typedef struct {
void |
*state; |
SRM_M_Method_List |
*methods; |
} SRM_Mercator;
The following function specifies the binding of the factory for the ObliqueMercatorSpherical object class:
Abstract Function: Create
typedef SRM_Status_Code SRM_OM_Create (
|
SRM_ORM |
orm, |
|
|
SRM_ObliqueMercator |
*new_srf |
/* OUT */ |
);
The following method is used to specify the binding of the ObliqueMercatorSpherical object class:
Abstract Method: GetSRFParameters
typedef SRM_Status_Code SRM_OM_GetSRFParameters (
|
SRM_Object_Reference |
*this, |
|
|
SRM_Oblique_Mercator_Parameters |
*parameters |
/* OUT */ |
);
The following data type is used to specify the methods of the ObliqueMercatorSpherical object class:
Abstract object class: ObliqueMercatorSpherical
typedef struct {
SRM_AssociateSurfaceCoordinateEH |
*AssociateSurfaceCoordinate; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionSRF |
*ChangeDirectionSRF; |
SRM_ChangeDirectionSRFObject |
*ChangeDirectionSRFObject; |
SRM_ConvergenceOfTheMeridian |
*ConvergenceOfTheMeridian; |
SRM_CreateCoordinate3D |
*CreateCoordinate3D; |
SRM_CreateDirection |
*CreateDirection; |
SRM_CreateLocalTangentPlaneEuclideanSRF |
*CreateLocalTangentPlaneEuclideanSRF; |
SRM_CreateSurfaceCoordinateEH |
*CreateSurfaceCoordinate; |
SRM_Destroy |
*Destroy; |
SRM_EuclideanDistance3D |
*EuclideanDistance3D; |
SRM_EuclideanDistanceEH |
*EuclideanDistanceEH; |
SRM_Generating3D |
*Generating3D; |
SRM_GeodesicDistance |
*GeodesicDistance; |
SRM_GetCoordinate3DValues |
*GetCoordinate3DValues; |
SRM_GetCSCode |
*GetCSCode; |
SRM_GetDirectionValues |
*GetDirectionValues; |
SRM_GetExtendedValidGeodeticRegion |
*GetExtendedValidGeodeticRegion; |
SRM_GetExtendedValidRegion |
*GetExtendedValidRegion; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_OM_GetSRFParameters |
*GetSRFParameters; |
SRM_GetSurfaceCoordinateValuesEH |
*GetSurfaceCoordinateValues; |
SRM_GetValidGeodeticRegion |
*GetValidGeodeticRegion; |
SRM_GetValidRegion |
*GetValidRegion; |
SRM_InverseGenerating3D |
*InverseGenerating3D; |
SRM_MapAzimuth |
*MapAzimuth; |
SRM_PromoteSurfaceCoordinateEH |
*PromoteSurfaceCoordinate; |
SRM_PointScale |
*PointScale; |
SRM_SetExtendedValidGeodeticRegion |
*SetExtendedValidGeodeticRegion; |
SRM_SetExtendedValidRegion |
*SetExtendedValidRegion; |
SRM_SetValidGeodeticRegion |
*SetValidGeodeticRegion; |
SRM_SetValidRegion |
*SetValidRegion; |
SRM_VerticalOffset |
*VerticalOffset; |
} SRM_OM_Method_List;
The following record type specifies the binding of the ObliqueMercatorSpherical object class:
Abstract object class: ObliqueMercatorSpherical
typedef struct {
void |
*state; |
SRM_OM_Method_List |
*methods; |
} SRM_ObliqueMercatorSpherical;
The following function specifies the binding of the factory for the Planetodetic object class:
Abstract Function: Create
typedef SRM_Status_Code SRM_PD_Create (
|
SRM_ORM |
orm, |
|
|
SRM_Planetodetic |
*new_srf |
/* OUT */ |
);
The following data type is used to specify the methods of the Planetodetic object class:
Abstract object class: Planetodetic
typedef struct {
SRM_AssociateSurfaceCoordinateEH |
*AssociateSurfaceCoordinate; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionSRF |
*ChangeDirectionSRF; |
SRM_ChangeDirectionSRFObject |
*ChangeDirectionSRFObject; |
SRM_CreateCoordinate3D |
*CreateCoordinate3D; |
SRM_CreateDirection |
*CreateDirection; |
SRM_CreateLocalTangentSpaceEuclideanSRF |
*CreateLocalTangentSpaceEuclideanSRF; |
SRM_CreateSurfaceCoordinateEH |
*CreateSurfaceCoordinate; |
SRM_Destroy |
*Destroy; |
SRM_EuclideanDistance3D |
*EuclideanDistance3D; |
SRM_EuclideanDistanceEH |
*EuclideanDistanceEH; |
SRM_Generating3D |
*Generating3D; |
SRM_GeodesicDistance |
*GeodesicDistance; |
SRM_GetCoordinate3DValues |
*GetCoordinate3DValues; |
SRM_GetCSCodes |
*GetCSCodes; |
SRM_GetDirectionValues |
*GetDirectionValues; |
SRM_GetExtendedValidRegion |
*GetExtendedValidRegion; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_GetSurfaceCoordinateValuesEH |
*GetSurfaceCoordinateValues; |
SRM_GetValidRegion |
*GetValidRegion; |
SRM_InverseGenerating3D |
*InverseGenerating3D; |
SRM_PromoteSurfaceCoordinateEH |
*PromoteSurfaceCoordinate; |
SRM_SetExtendedValidRegion |
*SetExtendedValidRegion; |
SRM_SetValidRegion |
*SetValidRegion; |
SRM_VerticalOffset |
*VerticalOffset; |
} SRM_PD_Method_List;
The following record type specifies the binding of the Planetodetic object class:
Abstract object class: Planetodetic
typedef struct {
void |
*state; |
SRM_PD_Method_List |
*methods; |
} SRM_Planetodetic;
The following function specifies the binding of the factory for the PolarStereographic object class:
Abstract Function: Create
typedef SRM_Status_Code SRM_PS_Create (
|
SRM_ORM |
orm, |
|
const |
SRM_Polar_Stereographic_Parameters |
parameters, |
|
|
SRM_PolarStereographic |
*new_srf |
/* OUT */ |
);
The following method is used to specify the binding of the PolarStereographic object class:
Abstract Method: GetSRFParameters
typedef SRM_Status_Code SRM_PS_GetSRFParameters (
|
SRM_Object_Reference |
*this, |
|
|
SRM_Polar_Stereographic_Parameters |
*parameters |
/* OUT */ |
);
The following data type is used to specify the methods of the PolarStereographic object class:
Abstract object class: PolarStereographic
typedef struct {
SRM_AssociateSurfaceCoordinateEH |
*AssociateSurfaceCoordinate; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionSRF |
*ChangeDirectionSRF; |
SRM_ChangeDirectionSRFObject |
*ChangeDirectionSRFObject; |
SRM_ConvergenceOfTheMeridian |
*ConvergenceOfTheMeridian; |
SRM_CreateCoordinate3D |
*CreateCoordinate3D; |
SRM_CreateDirection |
*CreateDirection; |
SRM_CreateLocalTangentPlaneEuclideanSRF |
*CreateLocalTangentPlaneEuclideanSRF; |
SRM_CreateSurfaceCoordinateEH |
*CreateSurfaceCoordinate; |
SRM_Destroy |
*Destroy; |
SRM_EuclideanDistance3D |
*EuclideanDistance3D; |
SRM_EuclideanDistanceEH |
*EuclideanDistanceEH; |
SRM_Generating3D |
*Generating3D; |
SRM_GeodesicDistance |
*GeodesicDistance; |
SRM_GetCoordinate3DValues |
*GetCoordinate3DValues; |
SRM_GetCSCode |
*GetCSCode; |
SRM_GetDirectionValues |
*GetDirectionValues; |
SRM_GetExtendedValidGeodeticRegion |
*GetExtendedValidGeodeticRegion; |
SRM_GetExtendedValidRegion |
*GetExtendedValidRegion; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_PS_GetSRFParameters |
*GetSRFParameters; |
SRM_GetSurfaceCoordinateValuesEH |
*GetSurfaceCoordinateValues; |
SRM_GetValidGeodeticRegion |
*GetValidGeodeticRegion; |
SRM_GetValidRegion |
*GetValidRegion; |
SRM_InverseGenerating3D |
*InverseGenerating3D; |
SRM_MapAzimuth |
*MapAzimuth; |
SRM_PromoteSurfaceCoordinateEH |
*PromoteSurfaceCoordinate; |
SRM_PointScale |
*PointScale; |
SRM_SetExtendedValidGeodeticRegion |
*SetExtendedValidGeodeticRegion; |
SRM_SetExtendedValidRegion |
*SetExtendedValidRegion; |
SRM_SetValidGeodeticRegion |
*SetValidGeodeticRegion; |
SRM_SetValidRegion |
*SetValidRegion; |
SRM_VerticalOffset |
*VerticalOffset; |
} SRM_PS_Method_List;
The following record type specifies the binding of the PolarStereographic object class:
Abstract object class: PolarStereographic
typedef struct {
void |
*state; |
SRM_PS_Method_List |
*methods; |
} SRM_PolarStereographic;
The following data type is used to specify the methods of the Position2D object class:
Abstract object class: Position2D
typedef struct {
SRM_Destroy |
*destroy; |
} SRM_Position2D_Method_List;
Abstract object class: Position2D
typedef struct {
void |
*state; |
SRM_Position2D_Method_List |
*methods; |
} SRM_Position2D;
The following data type is used to specify the methods of the Position3D object class:
Abstract object class: Position3D
typedef struct {
SRM_Destroy |
*destroy; |
} SRM_Position3D_Method_List;
Abstract object class: Position3D
typedef struct {
void |
*state; |
SRM_Position3D_Method_List |
*methods; |
} SRM_Position3D;
The following function specifies the binding of the factory for the SolarEcliptic object class:
Abstract Function: Create
typedef SRM_Status_Code SRM_SE_Create (
|
SRM_ORM |
orm, |
|
|
SRM_SolarEcliptic |
*new_srf |
/* OUT */ |
);
The following data type is used to specify the methods of the SolarEcliptic object class:
Abstract object class: SolarEcliptic
typedef struct {
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionSRF |
*ChangeDirectionSRF; |
SRM_ChangeDirectionSRFObject |
*ChangeDirectionSRFObject; |
SRM_CreateCoordinate3D |
*CreateCoordinate3D; |
SRM_CreateDirection |
*CreateDirection; |
SRM_Destroy |
*Destroy; |
SRM_EuclideanDistance3D |
*EuclideanDistance3D; |
SRM_Generating3D |
*Generating3D; |
SRM_GetCoordinate3DValues |
*GetCoordinate3DValues; |
SRM_GetCSCodes |
*GetCSCodes; |
SRM_GetDirectionValues |
*GetDirectionValues; |
SRM_GetExtendedValidRegion |
*GetExtendedValidRegion; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_GetValidRegion |
*GetValidRegion; |
SRM_InverseGenerating3D |
*InverseGenerating3D; |
SRM_SetExtendedValidRegion |
*SetExtendedValidRegion; |
SRM_SetValidRegion |
*SetValidRegion; |
} SRM_SE_Method_List;
The following record type specifies the binding of the SolarEcliptic object class:
Abstract object class: SolarEcliptic
typedef struct {
void |
*state; |
SRM_SE_Method_List |
*methods; |
} SRM_SolarEcliptic;
The following function specifies the binding of the factory for the SolarEquatorial object class:
Abstract Function: Create
typedef SRM_Status_Code SRM_SEQ_Create (
|
SRM_ORM |
orm, |
|
|
SRM_SolarEquatorial |
*new_srf |
/* OUT */ |
);
The following data type is used to specify the methods of the SolarEquatorial object class:
Abstract object class: SolarEquatorial
typedef struct {
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionSRF |
*ChangeDirectionSRF; |
SRM_ChangeDirectionSRFObject |
*ChangeDirectionSRFObject; |
SRM_CreateCoordinate3D |
*CreateCoordinate3D; |
SRM_CreateDirection |
*CreateDirection; |
SRM_Destroy |
*Destroy; |
SRM_EuclideanDistance3D |
*EuclideanDistance3D; |
SRM_Generating3D |
*Generating3D; |
SRM_GetCoordinate3DValues |
*GetCoordinate3DValues; |
SRM_GetCSCodes |
*GetCSCodes; |
SRM_GetDirectionValues |
*GetDirectionValues; |
SRM_GetExtendedValidRegion |
*GetExtendedValidRegion; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_GetValidRegion |
*GetValidRegion; |
SRM_InverseGenerating3D |
*InverseGenerating3D; |
SRM_SetExtendedValidRegion |
*SetExtendedValidRegion; |
SRM_SetValidRegion |
*SetValidRegion; |
} SRM_SEQ_Method_List;
The following record type specifies the binding of the SolarEquatorial object class:
Abstract object class: SolarEquatorial
typedef struct {
void |
*state; |
SRM_SEQ_Method_List |
*methods; |
} SRM_SolarEquatorial;
The following function specifies the binding of the factory for the SolarMagneticDipole object class:
Abstract Function: Create
typedef SRM_Status_Code SRM_SMD_Create (
|
SRM_ORM |
orm, |
|
|
SRM_SolarMagneticDipole |
*new_srf |
/* OUT */ |
);
The following data type is used to specify the methods of the SolarMagneticDipole object class:
Abstract object class: SolarMagneticDipole
typedef struct {
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionSRF |
*ChangeDirectionSRF; |
SRM_ChangeDirectionSRFObject |
*ChangeDirectionSRFObject; |
SRM_CreateCoordinate3D |
*CreateCoordinate3D; |
SRM_CreateDirection |
*CreateDirection; |
SRM_Destroy |
*Destroy; |
SRM_EuclideanDistance3D |
*EuclideanDistance3D; |
SRM_Generating3D |
*Generating3D; |
SRM_GetCoordinate3DValues |
*GetCoordinate3DValues; |
SRM_GetCSCodes |
*GetCSCodes; |
SRM_GetDirectionValues |
*GetDirectionValues; |
SRM_GetExtendedValidRegion |
*GetExtendedValidRegion; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_GetValidRegion |
*GetValidRegion; |
SRM_InverseGenerating3D |
*InverseGenerating3D; |
SRM_SetExtendedValidRegion |
*SetExtendedValidRegion; |
SRM_SetValidRegion |
*SetValidRegion; |
} SRM_SMD_Method_List;
The following record type specifies the binding of the SolarMagneticDipole object class:
Abstract object class: SolarMagneticDipole
typedef struct {
void |
*state; |
SRM_SMD_Method_List |
*methods; |
} SRM_SolarMagneticDipole;
The following function specifies the binding of the factory for the SolarMagneticEcliptic object class:
Abstract Function: Create
typedef SRM_Status_Code SRM_SME_Create (
|
SRM_ORM |
orm, |
|
|
SRM_SolarMagneticEcliptic |
*new_srf |
/* OUT */ |
);
The following data type is used to specify the methods of the SolarMagneticEcliptic object class:
Abstract object class: SolarMagneticEcliptic
typedef struct {
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionSRF |
*ChangeDirectionSRF; |
SRM_ChangeDirectionSRFObject |
*ChangeDirectionSRFObject; |
SRM_CreateCoordinate3D |
*CreateCoordinate3D; |
SRM_CreateDirection |
*CreateDirection; |
SRM_Destroy |
*Destroy; |
SRM_EuclideanDistance3D |
*EuclideanDistance3D; |
SRM_Generating3D |
*Generating3D; |
SRM_GetCoordinate3DValues |
*GetCoordinate3DValues; |
SRM_GetCSCodes |
*GetCSCodes; |
SRM_GetDirectionValues |
*GetDirectionValues; |
SRM_GetExtendedValidRegion |
*GetExtendedValidRegion; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_GetValidRegion |
*GetValidRegion; |
SRM_InverseGenerating3D |
*InverseGenerating3D; |
SRM_SetExtendedValidRegion |
*SetExtendedValidRegion; |
SRM_SetValidRegion |
*SetValidRegion; |
} SRM_SME_Method_List;
The following record type specifies the binding of the SolarMagneticEcliptic object class:
Abstract object class: SolarMagneticEcliptic
typedef struct {
void |
*state; |
SRM_SME_Method_List |
*methods; |
} SRM_SolarMagneticEcliptic;
The following data type is used to specify the methods of the SurfaceCoordinate object class:
Abstract object class: SurfaceCoordinate
typedef struct {
SRM_Destroy |
*destroy; |
} SRM_SurfaceCoordinate_Method_List;
Abstract object class: SurfaceCoordinate
typedef struct {
void |
*state; |
SRM_SurfaceCoordinate_Method_List |
*methods; |
} SRM_SurfaceCoordinate;
The following function specifies the binding of the factory for the TransverseMercator object class:
Abstract Function: Create
typedef SRM_Status_Code SRM_TM_Create (
|
SRM_ORM |
orm, |
|
|
SRM_ObliqueMercator |
*new_srf |
/* OUT */ |
);
The following method is used to specify the binding of the TransverseMercator object class:
Abstract Method: GetSRFParameters
typedef SRM_Status_Code SRM_TM_GetSRFParameters (
|
SRM_Object_Reference |
*this, |
|
|
SRM_Mercator_Parameters |
*parameters |
/* OUT */ |
);
The following data type is used to specify the methods of the TransverseMercator object class:
Abstract object class: TransverseMercator
typedef struct {
SRM_AssociateSurfaceCoordinateEH |
*AssociateSurfaceCoordinate; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionSRF |
*ChangeDirectionSRF; |
SRM_ChangeDirectionSRFObject |
*ChangeDirectionSRFObject; |
SRM_ConvergenceOfTheMeridian |
*ConvergenceOfTheMeridian; |
SRM_CreateCoordinate3D |
*CreateCoordinate3D; |
SRM_CreateDirection |
*CreateDirection; |
SRM_CreateLocalTangentPlaneEuclideanSRF |
*CreateLocalTangentPlaneEuclideanSRF; |
SRM_CreateSurfaceCoordinateEH |
*CreateSurfaceCoordinate; |
SRM_Destroy |
*Destroy; |
SRM_EuclideanDistance3D |
*EuclideanDistance3D; |
SRM_EuclideanDistanceEH |
*EuclideanDistanceEH; |
SRM_Generating3D |
*Generating3D; |
SRM_GeodesicDistance |
*GeodesicDistance; |
SRM_GetCoordinate3DValues |
*GetCoordinate3DValues; |
SRM_GetCSCode |
*GetCSCode; |
SRM_GetDirectionValues |
*GetDirectionValues; |
SRM_GetExtendedValidGeodeticRegion |
*GetExtendedValidGeodeticRegion; |
SRM_GetExtendedValidRegion |
*GetExtendedValidRegion; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_TM_GetSRFParameters |
*GetSRFParameters; |
SRM_GetSurfaceCoordinateValuesEH |
*GetSurfaceCoordinateValues; |
SRM_GetValidGeodeticRegion |
*GetValidGeodeticRegion; |
SRM_GetValidRegion |
*GetValidRegion; |
SRM_InverseGenerating3D |
*InverseGenerating3D; |
SRM_MapAzimuth |
*MapAzimuth; |
SRM_PromoteSurfaceCoordinateEH |
*PromoteSurfaceCoordinate; |
SRM_PointScale |
*PointScale; |
SRM_SetExtendedValidGeodeticRegion |
*SetExtendedValidGeodeticRegion; |
SRM_SetExtendedValidRegion |
*SetExtendedValidRegion; |
SRM_SetValidGeodeticRegion |
*SetValidGeodeticRegion; |
SRM_SetValidRegion |
*SetValidRegion; |
SRM_VerticalOffset |
*VerticalOffset; |
} SRM_TM_Method_List;
The following record type specifies the binding of the TransverseMercator object class:
Abstract object class: TransverseMercator
typedef struct {
void |
*state; |
SRM_TM_Method_List |
*methods; |
} SRM_TransverseMercator;
There are generic creation functions that are invoked to create an instance of a standard SRF or a member of a standard SRF set. The result of invoking a creation function is to return an instance of an object class defined in 6.3 SRM concrete object classes that has its state set as required by the specified SRF code.
The following specifies the binding of the CreateSRFSetMember function:
Abstract Function: CreateSRFSetMember
typedef SRM_Status_Code SRM_CreateSRFSetMember (
|
SRM_SRFS_Code |
srfs_code, |
|
|
SRM_SRFS_Member_Code |
srf_member_code, |
|
|
SRM_ORM |
orm, |
|
|
SRM_Object_Reference |
*new_srf |
/* OUT */ |
);
The object returned by the above function shall be an instance of one of the concrete SRF object classes specified in 6.3 SRM Concrete object classes and shall represent a single member of the specified SRF set.
The following specifies the binding of the CreateStandardSRF function:
Abstract Function: Create
typedef SRM_Status_Code SRM_CreateStandardSRF (
|
SRM_SRF_Code |
srf_code, |
|
|
SRM_Object_Reference |
*new_srf |
/* OUT */ |
);
The object returned by the above function shall be an instance of one of the concrete SRF object classes specified in 6.3 SRM Concrete object classes.
http://www.iso.ch/iso/en/ittf/PubliclyAvailableStandards/ISO_IEC_18042-4_Ed1.html