Part 4: C
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 SRM API object method: AbstractMethodName
typedef ReturnValueDataType SRM_CBindingMethodName (
|
Parameter0DataType |
parameter_0_name, |
/* parameter_0_comment */ |
|
Parameter1DataType |
parameter_1_name, |
/* parameter_1_comment */ |
|
• • • |
|
|
|
ParameterNDataType |
parameter_N_name |
/* parameter_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 SRM API 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 SRM API 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 SRM API function: Create
SRM_Status_Code SRM_Create (
|
SRM_Object_Reference |
new_object |
/* OUT create object */ |
);
Abstract SRM API object method: Destroy
typedef SRM_Status_Code SRM_Destroy (
|
SRM_Object_Reference |
this_object |
/* object to destroy*/ |
);
Abstract SRM API object method: GetCSCode
typedef SRM_Status_Code SRM_GetCSCode (
|
SRM_Object_Reference |
this_object, |
|
|
SRM_CS_Code |
*cs_code |
/* OUT cs code */ |
);
Abstract SRM API object method: GetORMCodes
typedef SRM_Status_Code SRM_GetORMCodes (
|
SRM_Object_Reference |
this_object, |
|
SRM_ORM_Code |
*orm_code, |
/* OUT */ |
|
SRM_RT_Code |
*rt_code |
/* OUT */ |
);
Abstract SRM API object method: GetSRFCodes
typedef SRM_Status_Code SRM_GetSRFCodes (
|
SRM_Object_Reference |
this_object, |
|
|
SRM_SRFT_Code |
*srft_code, |
/* OUT srf template code */ |
SRM_SRF_Code |
*srf_code, |
/* OUT srf code */ |
|
SRM_SRFS_Code_Info |
*srfs_code_info |
/* OUT srf set code info */ |
);
Abstract SRM API object method: ChangeCoordinate2DArraySRF
typedef SRM_Status_Code SRM_ChangeCoordinate2DArraySRF (
|
SRM_Object_Reference |
this_object, |
|
const |
SRM_Object_Reference |
source_srf, |
|
const |
SRM_Coordinate2D_Array |
*source_coordinate_array, |
|
|
SRM_Coordinate2D_Array |
*target_coordinate_array, |
/* OUT */ |
|
SRM_Integer_Positive |
*index |
/* OUT */ |
);
Abstract SRM API object method: ChangeCoordinate2DArraySRFObject
typedef SRM_Status_Code SRM_ChangeCoordinate2DArraySRFObject (
|
SRM_Object_Reference |
this_object, |
|
const |
SRM_Object_Reference |
source_srf, |
|
const |
SRM_Coordinate2D_Array |
*source_coordinate_array, |
|
const |
SRM_ORM_Transformation_2D_Parameters |
*h_st, |
|
|
SRM_Coordinate2D_Array |
*target_coordinate_array, |
/* OUT */ |
|
SRM_Integer_Positive |
*index |
/* OUT */ |
);
Abstract SRM API object method: ChangeCoordinate2DSRF
typedef SRM_Status_Code SRM_ChangeCoordinate2DSRF (
|
SRM_Object_Reference |
this_object, |
|
const |
SRM_Object_Reference |
source_srf, |
|
const |
SRM_Coordinate2D |
*source_coordinate, |
|
|
SRM_Coordinate2D |
*target_coordinate |
/* OUT */ |
);
Abstract SRM API object method: ChangeCoordinate2DSRFObject
typedef SRM_Status_Code SRM_ChangeCoordinate2DSRFObject (
|
SRM_Object_Reference |
this_object, |
|
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 SRM API object method: CreateCoordinate2D
typedef SRM_Status_Code SRM_CreateCoordinate2D (
|
SRM_Object_Reference |
this_object, |
|
|
SRM_Long_Float |
first_coordinate_component, |
|
|
SRM_Long_Float |
second_coordinate_component, |
|
|
SRM_Coordinate2D |
*new_coordinate |
/* OUT */ |
);
Abstract SRM API object method: EuclideanDistance
typedef SRM_Status_Code SRM_EuclideanDistance2D (
|
SRM_Object_Reference |
this_object, |
|
const |
SRM_Coordinate2D |
*source_coordinate, |
|
const |
SRM_Coordinate2D |
*target_coordinate |
|
|
SRM_Long_Float |
*distance |
/* OUT */ |
);
Abstract SRM API object method: Generating2D
typedef SRM_Status_Code SRM_Generating2D (
|
SRM_Object_Reference |
this_object, |
|
const |
SRM_Coordinate2D |
*coordinate, |
|
|
SRM_Position2D |
*position |
/* OUT */ |
);
Abstract SRM API object method: GetCoordinate2DValues
typedef SRM_Status_Code SRM_GetCoordinate2DValues (
|
SRM_Object_Reference |
this_object, |
|
const |
SRM_Coordinate2D |
*coordinate, |
|
|
SRM_Long_Float |
*first_coordinate_component, |
/* OUT */ |
|
SRM_Long_Float |
*second_coordinate_component |
/* OUT */ |
);
Abstract SRM API object method: InverseGenerating2D
typedef SRM_Status_Code SRM_InverseGenerating2D (
|
SRM_Object_Reference |
this_object, |
|
const |
SRM_Position2D |
*position, |
|
|
SRM_Coordinate2D |
*coordinate |
/* OUT */ |
);
Abstract SRM API object method: ChangeCoordinate3DArraySRF
typedef SRM_Status_Code SRM_ChangeCoordinate3DArraySRF (
|
SRM_Object_Reference |
this_object, |
|
const |
SRM_Object_Reference |
source_srf, |
|
const |
SRM_Coordinate3D_Array |
*source_coordinate_array, |
|
|
SRM_Coordinate3D_Array |
*target_coordinate_array, |
/* OUT */ |
|
SRM_Integer_Positive |
*index, |
/* OUT */ |
|
SRM_Coordinate_Valid_Region_Array |
*region_array |
/* OUT */ |
);
Abstract SRM API object method: ChangeCoordinate3DArraySRFObject
typedef SRM_Status_Code SRM_ChangeCoordinate3DArraySRFObject (
|
SRM_Object_Reference |
this_object, |
|
const |
SRM_Object_Reference |
source_srf, |
|
const |
SRM_Coordinate3D_Array |
*source_coordinate_array, |
|
const |
SRM_ORM_Transformation_3D_Parameters |
*h_st, |
|
|
SRM_Coordinate3D_Array |
*target_coordinate_array, |
/* OUT */ |
|
SRM_Integer_Positive |
*index, |
/* OUT */ |
|
SRM_Coordinate_Valid_Region_Array |
*region_array |
/* OUT */ |
);
Abstract SRM API object method: ChangeCoordinate3DSRF
typedef SRM_Status_Code SRM_ChangeCoordinate3DSRF (
|
SRM_Object_Reference |
this_object, |
|
const |
SRM_Object_Reference |
source_srf, |
|
const |
SRM_Coordinate3D |
*source_coordinate, |
|
|
SRM_Coordinate3D |
*target_coordinate, |
/* OUT */ |
|
SRM_Coordinate_Valid_Region |
*region |
/* OUT */ |
);
Abstract SRM API object method: ChangeCoordinate3DSRFObject
typedef SRM_Status_Code SRM_ChangeCoordinate3DSRFObject (
|
SRM_Object_Reference |
this_object, |
|
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 SRM API object method: ChangeDirectionArraySRF
typedef SRM_Status_Code SRM_ChangeDirectionArraySRF (
|
SRM_Object_Reference |
this_object, |
|
const |
SRM_Object_Reference |
source_srf, |
|
const |
SRM_Direction_Array |
*source_direction_array, |
|
|
SRM_Direction_Array |
*target_direction_array, |
/* OUT */ |
|
SRM_Integer_Positive |
*index, |
/* OUT */ |
|
SRM_Coordinate_Valid_Region_Array |
*ref_coord_region_array |
/* OUT */ |
);
Abstract SRM API object method: ChangeDirectionArraySRFObject
typedef SRM_Status_Code SRM_ChangeDirectionArraySRFObject (
|
SRM_Object_Reference |
this_object, |
|
const |
SRM_Object_Reference |
source_srf, |
|
const |
SRM_Direction_Array |
*source_direction_array, |
|
const |
SRM_ORM_Transformation_3D_Parameters |
*h_st, |
|
|
SRM_Direction_Array |
*target_direction_array, |
/* OUT */ |
|
SRM_Integer_Positive |
*index, |
/* OUT */ |
|
SRM_Coordinate_Valid_Region_Array |
*ref_coord_region_array |
/* OUT */ |
);
Abstract SRM API object method: ChangeDirectionSRF
typedef SRM_Status_Code SRM_ChangeDirectionSRF (
|
SRM_Object_Reference |
this_object, |
|
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 SRM API object method: ChangeDirectionSRFObject
typedef SRM_Status_Code SRM_ChangeDirectionSRFObject (
|
SRM_Object_Reference |
this_object, |
|
const |
SRM_Object_Reference |
source_srf, |
|
const |
SRM_Direction |
*source_direction, |
|
const |
SRM_ORM_Transformation_3D_Parameters |
*h_st, |
|
|
SRM_Direction |
*target_direction, |
/* OUT */ |
|
SRM_Coordinate_Valid_Region |
*ref_coord_region |
/* OUT */ |
);
Abstract SRM API object method: CreateCoordinate3D
typedef SRM_Status_Code SRM_CreateCoordinate3D (
|
SRM_Object_Reference |
this_object, |
|
|
SRM_Long_Float |
first_coordinate_component, |
|
|
SRM_Long_Float |
second_coordinate_component, |
|
|
SRM_Long_Float |
third_coordinate_component, |
|
|
SRM_Coordinate3D |
*new_coordinate |
/* OUT */ |
);
Abstract SRM API object method: CreateDirection
typedef SRM_Status_Code SRM_CreateDirection (
|
SRM_Object_Reference |
this_object, |
|
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 SRM API object method: EuclideanDistance
typedef SRM_Status_Code SRM_EuclideanDistance3D (
|
SRM_Object_Reference |
this_object, |
|
const |
SRM_Coordinate3D |
*point1_coordinate, |
|
const |
SRM_Coordinate3D |
*point2_coordinate, |
|
|
SRM_Long_Float |
*distance |
/* OUT */ |
);
Abstract SRM API object method: Generating3D
typedef SRM_Status_Code SRM_Generating3D (
|
SRM_Object_Reference |
this_object, |
|
const |
SRM_Coordinate3D |
*coordinate, |
|
|
SRM_Position3D |
*position |
/* OUT */ |
);
Abstract SRM API object method: GetCoordinate3DValues
typedef SRM_Status_Code SRM_GetCoordinate3DValues (
|
SRM_Object_Reference |
this_object, |
|
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 SRM API object method: GetDirectionValues
typedef SRM_Status_Code SRM_GetDirectionValues (
|
SRM_Object_Reference |
this_object, |
|
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 SRM API object method: GetExtendedValidRegion
typedef SRM_Status_Code SRM_GetExtendedValidRegion (
|
SRM_Object_Reference |
this_object, |
|
|
SRM_Integer |
component_identifier, |
|
|
SRM_Interval_Type |
*interval_type, |
/* OUT */ |
|
SRM_Long_Float |
*extended_lower_bound, |
/* OUT */ |
|
SRM_Long_Float |
*lower_bound, |
/* OUT */ |
|
SRM_Long_Float |
*upper_bound, |
/* OUT */ |
|
SRM_Long_Float |
*extended_upper_bound |
/* OUT */ |
);
Abstract SRM API object method: GetValidRegion
typedef SRM_Status_Code SRM_GetValidRegion (
|
SRM_Object_Reference |
this_object, |
|
|
SRM_Integer |
component_identifier, |
|
|
SRM_Interval_Type |
*interval_type, |
/* OUT */ |
|
SRM_Long_Float |
*lower_bound, |
/* OUT */ |
|
SRM_Long_Float |
*upper_bound |
/* OUT */ |
);
Abstract SRM API object method: InverseGenerating3D
typedef SRM_Status_Code SRM_InverseGenerating3D (
|
SRM_Object_Reference |
this_object, |
|
const |
SRM_Position3D |
*position, |
|
|
SRM_Coordinate3D |
*coordinate, |
/* OUT */ |
|
SRM_Coordinate_Valid_Region |
*region |
/* OUT */ |
);
Abstract SRM API object method: SetExtendedValidRegion
typedef SRM_Status_Code SRM_SetExtendedValidRegion (
|
SRM_Object_Reference |
this_object, |
|
|
SRM_Integer |
component_identifier, |
|
|
SRM_Interval_Type |
interval_type, |
|
|
SRM_Long_Float |
extended_lower_bound, |
|
|
SRM_Long_Float |
lower_bound, |
|
|
SRM_Long_Float |
upper_bound, |
|
|
SRM_Long_Float |
extended_upper_bound |
|
);
Abstract SRM API object method: SetValidRegion
typedef SRM_Status_Code SRM_SetValidRegion (
|
SRM_Object_Reference |
this_object, |
|
|
SRM_Integer |
component_identiifer, |
|
|
SRM_Interval_Type |
interval_type, |
|
|
SRM_Long_Float |
lower_bound, |
|
|
SRM_Long_Float |
upper_bound |
|
);
Abstract SRM API object method: AssociateSurfaceCoordinate
typedef SRM_Status_Code SRM_AssociateSurfaceCoordinateTPS (
|
SRM_Object_Reference |
this_object, |
|
const |
SRM_Coordinate3D |
*coordinate, |
|
|
SRM_SurfaceCoordinate |
*on_surface_coordinate |
/* OUT */ |
);
Abstract SRM API object method: CreateSurfaceCoordinate
typedef SRM_Status_Code SRM_CreateSurfaceCoordinateTPS (
|
SRM_Object_Reference |
this_object, |
|
|
SRM_Long_Float |
first_coordinate_component, |
|
|
SRM_Long_Float |
second_coordinate_component, |
|
|
SRM_SurfaceCoordinate |
*new_coordinate |
/* OUT */ |
);
Abstract SRM API object method: EuclideanDistance
typedef SRM_Status_Code SRM_EuclideanDistanceTPS (
|
SRM_Object_Reference |
this_object, |
|
const |
SRM_SurfaceCoordinate |
*point1_coordinate, |
|
const |
SRM_SurfaceCoordinate |
*point2_coordinate, |
|
|
SRM_Long_Float |
*distance |
/* OUT */ |
);
Abstract SRM API object method: GetSurfaceCoordinateValues
typedef SRM_Status_Code SRM_GetSurfaceCoordinateValuesTPS (
|
SRM_Object_Reference |
this_object, |
|
const |
SRM_SurfaceCoordinate |
*coordinate, |
|
|
SRM_Long_Float |
*first_coordinate_component, |
/* OUT */ |
|
SRM_Long_Float |
*second_coordinate_component |
/* OUT */ |
);
Abstract SRM API object method: PromoteSurfaceCoordinate
typedef SRM_Status_Code SRM_PromoteSurfaceCoordinateTPS (
|
SRM_Object_Reference |
this_object, |
|
const |
SRM_SurfaceCoordinate |
*surface_coordinate, |
|
|
SRM_Coordinate3D |
*coordinate |
/* OUT */ |
);
Abstract SRM API object method: AssociateSurfaceCoordinate
typedef SRM_Status_Code SRM_AssociateSurfaceCoordinateEH (
|
SRM_Object_Reference |
this_object, |
|
const |
SRM_Coordinate3D |
*coordinate, |
|
|
SRM_SurfaceCoordinate |
*on_surface_coordinate |
/* OUT */ |
);
Abstract SRM API object method: CreateLocalTangentSpaceEuclideanSRF
typedef SRM_Status_Code SRM_CreateLocalTangentSpaceEuclideanSRF (
|
SRM_Object_Reference |
this_object, |
|
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 SRM API object method: CreateSurfaceCoordinate
typedef SRM_Status_Code SRM_CreateSurfaceCoordinateEH (
|
SRM_Object_Reference |
this_object, |
|
|
SRM_Long_Float |
first_coordinate_component, |
|
|
SRM_Long_Float |
second_coordinate_component, |
|
|
SRM_SurfaceCoordinate |
*new_coordinate |
/* OUT */ |
);
Abstract SRM API object method: EuclideanDistance
typedef SRM_Status_Code SRM_EuclideanDistanceEH (
|
SRM_Object_Reference |
this_object, |
|
const |
SRM_SurfaceCoordinate |
*point1_coordinate, |
|
const |
SRM_SurfaceCoordinate |
*point2_coordinate, |
|
|
SRM_Long_Float |
*distance |
/* OUT */ |
);
Abstract SRM API object method: GeodesicDistance
typedef SRM_Status_Code SRM_GeodesicDistance (
|
SRM_Object_Reference |
this_object, |
|
const |
SRM_SurfaceCoordinate |
*point1_coordinate, |
|
const |
SRM_SurfaceCoordinate |
*point2_coordinate, |
|
|
SRM_Long_Float |
*distance |
/* OUT */ |
);
Abstract SRM API object method: GetSurfaceCoordinateValues
typedef SRM_Status_Code SRM_GetSurfaceCoordinateValuesEH (
|
SRM_Object_Reference |
this_object, |
|
const |
SRM_SurfaceCoordinate |
*coordinate, |
|
|
SRM_Long_Float |
*first_coordinate_component, |
/* OUT */ |
|
SRM_Long_Float |
*second_coordinate_component |
/* OUT */ |
);
Abstract SRM API object method: PromoteSurfaceCoordinate
typedef SRM_Status_Code SRM_PromoteSurfaceCoordinateEH (
|
SRM_Object_Reference |
this_object, |
|
const |
SRM_SurfaceCoordinate |
*surface_coordinate, |
|
|
SRM_Coordinate3D |
*coordinate |
/* OUT */ |
);
Abstract SRM API object method: VerticalOffset
typedef SRM_Status_Code SRM_VerticalOffset (
|
SRM_Object_Reference |
this_object, |
|
|
SRM_DSS_Code |
dss_code, |
|
const |
SRM_SurfaceCoordinate |
*surface_coordinate, |
|
|
SRM_Long_Float |
*separation |
/* OUT */ |
);
Abstract SRM API object method: ConvergenceOfTheMeridian
typedef SRM_Status_Code SRM_ConvergenceOfTheMeridian (
|
SRM_Object_Reference |
this_object, |
|
const |
SRM_SurfaceCoordinate |
*surface_coordinate, |
|
|
SRM_Long_Float |
*gamma |
/* OUT */ |
);
Abstract SRM API object method: GetExtendedValidGeodeticRegion
typedef SRM_Status_Code SRM_GetExtendedValidGeodeticRegion (
|
SRM_Object_Reference |
this_object, |
|
|
SRM_Integer |
component_identifier, |
|
|
SRM_Interval_Type |
*interval_type, |
/* OUT */ |
|
SRM_Long_Float |
*extended_lower_bound, |
/* OUT */ |
|
SRM_Long_Float |
*lower_bound, |
/* OUT */ |
|
SRM_Long_Float |
*upper_bound, |
/* OUT */ |
|
SRM_Long_Float |
*extended_upper_bound |
/* OUT */ |
);
Abstract SRM API object method: GetValidGeodeticRegion
typedef SRM_Status_Code SRM_GetValidGeodeticRegion (
|
SRM_Object_Reference |
this_object, |
|
|
SRM_Integer |
component_identifier, |
|
|
SRM_Interval_Type |
*interval_type, |
/* OUT */ |
|
SRM_Long_Float |
*lower_bound, |
/* OUT */ |
|
SRM_Long_Float |
*upper_bound |
/* OUT */ |
);
Abstract SRM API object method: MapAzimuth
typedef SRM_Status_Code SRM_MapAzimuth (
|
SRM_Object_Reference |
this_object, |
|
const |
SRM_SurfaceCoordinate |
*point1_coordinate, |
|
const |
SRM_SurfaceCoordinate |
*point2_coordinate, |
|
|
SRM_Long_Float |
*azimuth |
/* OUT */ |
);
Abstract SRM API object method: PointDistortion
typedef SRM_Status_Code SRM_PointDistortion (
|
SRM_Object_Reference |
this_object, |
|
const |
SRM_SurfaceCoordinate |
*surface_coordinate, |
|
|
SRM_Long_Float |
*distortion |
/* OUT */ |
);
Abstract SRM API object method: SetExtendedValidGeodeticRegion
typedef SRM_Status_Code SRM_SetExtendedValidGeodeticRegion (
|
SRM_Object_Reference |
this_object, |
|
|
SRM_Integer |
component_identifier, |
|
|
SRM_Interval_Type |
interval_type, |
|
|
SRM_Long_Float |
extended_lower_bound, |
|
|
SRM_Long_Float |
lower_bound, |
|
|
SRM_Long_Float |
upper_bound, |
|
|
SRM_Long_Float |
extended_upper_bound |
|
);
Abstract SRM API object method: SetValidGeodeticRegion
typedef SRM_Status_Code SRM_SetValidGeodeticRegion (
|
SRM_Object_Reference |
this_object, |
|
|
SRM_Integer |
component_identifier, |
|
|
SRM_Interval_Type |
interval_type, |
|
|
SRM_Long_Float |
lower_bound, |
|
|
SRM_Long_Float |
upper_bound |
|
);
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 SRM API function: Create
SRM_Status_Code SRM_CC_Create (
|
SRM_ORM_Code |
orm_code, |
|
|
SRM_RT_Code |
rt_code, |
|
|
SRM_Celestiocentric |
*new_srf |
/* OUT */ |
);
The following data type is used to specify the methods of the Celestiocentric object class:
Abstract SRM API object class: Celestiocentric
typedef struct {
SRM_ChangeCoordinate3DArraySRF |
*ChangeCoordinate3DArraySRF; |
SRM_ChangeCoordinate3DArraySRFObject |
*ChangeCoordinate3DArraySRFObject; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionArraySRF |
*ChangeDirectionArraySRF; |
SRM_ChangeDirectionArraySRFObject |
*ChangeDirectionArraySRFObject; |
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_GetCSCode |
*GetCSCode; |
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 SRM API 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 SRM API function: Create
SRM_Status_Code SRM_CD_Create (
|
SRM_ORM_Code |
orm_code, |
|
|
SRM_RT_Code |
rt_code, |
|
|
SRM_Celestiodetic |
*new_srf |
/* OUT */ |
);
The following data type is used to specify the methods of the Celestiodetic object class:
Abstract SRM API object class: Celestiodetic
typedef struct {
SRM_AssociateSurfaceCoordinateEH |
*AssociateSurfaceCoordinate; |
SRM_ChangeCoordinate3DArraySRF |
*ChangeCoordinate3DArraySRF; |
SRM_ChangeCoordinate3DArraySRFObject |
*ChangeCoordinate3DArraySRFObject; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionArraySRF |
*ChangeDirectionArraySRF; |
SRM_ChangeDirectionArraySRFObject |
*ChangeDirectionArraySRFObject; |
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_GetCSCode |
*GetCSCode; |
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 SRM API 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 SRM API function: Create
SRM_Status_Code SRM_CM_Create (
|
SRM_ORM_Code |
orm_code, |
|
|
SRM_RT_Code |
rt_code, |
|
|
SRM_Celestiomagnetic |
*new_srf |
/* OUT */ |
);
The following data type is used to specify the methods of the Celestiomagnetic object class:
Abstract SRM API object class: Celestiomagnetic
typedef struct {
SRM_ChangeCoordinate3DArraySRF |
*ChangeCoordinate3DArraySRF; |
SRM_ChangeCoordinate3DArraySRFObject |
*ChangeCoordinate3DArraySRFObject; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionArraySRF |
*ChangeDirectionArraySRF; |
SRM_ChangeDirectionArraySRFObject |
*ChangeDirectionArraySRFObject; |
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_GetCSCode |
*GetCSCode; |
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 SRM API 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 SRM API object class: Coordinate2D
typedef struct {
SRM_Destroy |
*Destroy; |
} SRM_Coordinate2D_Method_List;
Abstract SRM API 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 SRM API object class: Coordinate3D
typedef struct {
SRM_Destroy |
*Destroy; |
} SRM_Coordinate3D_Method_List;
Abstract SRM API 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 SRM API object class: Direction
typedef struct {
SRM_Destroy |
*Destroy; |
} SRM_Direction_Method_List;
Abstract SRM API 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 SRM API function: Create
SRM_Status_Code SRM_EI_Create (
|
SRM_ORM_Code |
orm_code, |
|
|
SRM_RT_Code |
rt_code, |
|
|
SRM_EquatorialInertial |
*new_srf |
/* OUT */ |
);
The following data type is used to specify the methods of the EquatorialInertial object class:
Abstract SRM API object class: EquatorialInertial
typedef struct {
SRM_ChangeCoordinate3DArraySRF |
*ChangeCoordinate3DArraySRF; |
SRM_ChangeCoordinate3DArraySRFObject |
*ChangeCoordinate3DArraySRFObject; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionArraySRF |
*ChangeDirectionArraySRF; |
SRM_ChangeDirectionArraySRFObject |
*ChangeDirectionArraySRFObject; |
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_GetCSCode |
*GetCSCode; |
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 SRM API 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 SRM API function: Create
SRM_Status_Code SRM_EC_Create (
|
SRM_ORM_Code |
orm_code, |
|
|
SRM_RT_Code |
rt_code, |
|
const |
SRM_EC_Parameters |
*parameters, |
|
|
SRM_EquidistantCylindrical |
*new_srf |
/* OUT */ |
);
The following method is used to specify the binding of the EquidistantCylindrical object class:
Abstract SRM API object method: GetSRFParameters
typedef SRM_Status_Code SRM_EC_GetSRFParameters (
|
SRM_Object_Reference |
this_object, |
|
|
SRM_EC_Parameters |
*parameters |
/* OUT */ |
);
The following data type is used to specify the methods of the EquidistantCylindrical object class:
Abstract SRM API object class: EquidistantCylindrical
typedef struct {
SRM_AssociateSurfaceCoordinateEH |
*AssociateSurfaceCoordinate; |
SRM_ChangeCoordinate3DArraySRF |
*ChangeCoordinate3DArraySRF; |
SRM_ChangeCoordinate3DArraySRFObject |
*ChangeCoordinate3DArraySRFObject; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionArraySRF |
*ChangeDirectionArraySRF; |
SRM_ChangeDirectionArraySRFObject |
*ChangeDirectionArraySRFObject; |
SRM_ChangeDirectionSRF |
*ChangeDirectionSRF; |
SRM_ChangeDirectionSRFObject |
*ChangeDirectionSRFObject; |
SRM_ConvergenceOfTheMeridian |
*ConvergenceOfTheMeridian; |
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_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_PointDistortion |
*PointDistortion; |
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 SRM API object class: EquidistantCylindrical
typedef struct {
void |
*state; |
SRM_EC_Method_List |
*methods; |
} SRM_EquidistantCylindrical;
The following function specifies the binding of the factory for the HeliosphericAriesEcliptic object class:
Abstract SRM API function: Create
SRM_Status_Code SRM_HAEC_Create (
|
SRM_ORM_Code |
orm_code, |
|
|
SRM_RT_Code |
rt_code, |
|
|
SRM_HeliosphericAriesEcliptic |
*new_srf |
/* OUT */ |
);
The following data type is used to specify the methods of the HeliosphericAriesEcliptic object class:
Abstract SRM API object class: HeliosphericAriesEcliptic
typedef struct {
SRM_ChangeCoordinate3DArraySRF |
*ChangeCoordinate3DArraySRF; |
SRM_ChangeCoordinate3DArraySRFObject |
*ChangeCoordinate3DArraySRFObject; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionArraySRF |
*ChangeDirectionArraySRF; |
SRM_ChangeDirectionArraySRFObject |
*ChangeDirectionArraySRFObject; |
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_GetCSCode |
*GetCSCode; |
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 SRM API 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 SRM API function: Create
SRM_Status_Code SRM_HEEC_Create (
|
SRM_ORM_Code |
orm_code, |
|
|
SRM_RT_Code |
rt_code, |
|
|
SRM_HeliosphericEarthEcliptic |
*new_srf |
/* OUT */ |
);
The following data type is used to specify the methods of the HeliosphericEarthEcliptic object class:
Abstract SRM API object class: HeliosphericEarthEcliptic
typedef struct {
SRM_ChangeCoordinate3DArraySRF |
*ChangeCoordinate3DArraySRF; |
SRM_ChangeCoordinate3DArraySRFObject |
*ChangeCoordinate3DArraySRFObject; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionArraySRF |
*ChangeDirectionArraySRF; |
SRM_ChangeDirectionArraySRFObject |
*ChangeDirectionArraySRFObject; |
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_GetCSCode |
*GetCSCode; |
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 SRM API 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 SRM API function: Create
SRM_Status_Code SRM_HEEQ_Create (
|
SRM_ORM_Code |
orm_code, |
|
|
SRM_RT_Code |
rt_code, |
|
|
SRM_HeliosphericEarthEquatorial |
*new_srf |
/* OUT */ |
);
The following data type is used to specify the methods of the HeliosphericEarthEquatorial object class:
Abstract SRM API object class: HeliosphericEarthEquatorial
typedef struct {
SRM_ChangeCoordinate3DArraySRF |
*ChangeCoordinate3DArraySRF; |
SRM_ChangeCoordinate3DArraySRFObject |
*ChangeCoordinate3DArraySRFObject; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionArraySRF |
*ChangeDirectionArraySRF; |
SRM_ChangeDirectionArraySRFObject |
*ChangeDirectionArraySRFObject; |
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_GetCSCode |
*GetCSCode; |
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_HEEQ_Method_List;
The following record type specifies the binding of the HeliosphericEarthEquatorial object class:
Abstract SRM API 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 SRM API function: Create
SRM_Status_Code SRM_LCC_Create (
|
SRM_ORM_Code |
orm_code, |
|
|
SRM_RT_Code |
rt_code, |
|
const |
SRM_LCC_Parameters |
*parameters |
/* OUT */ |
|
SRM_LambertConformalConic |
*new_srf |
/* OUT */ |
);
The following method is used to specify the binding of the LambertConformalConic object class:
Abstract SRM API object method: GetSRFParameters
typedef SRM_Status_Code SRM_LCC_GetSRFParameters (
|
SRM_Object_Reference |
this_object, |
|
|
SRM_LCC_Parameters |
*parameters |
/* OUT */ |
);
The following data type is used to specify the methods of the LambertConformalConic object class:
Abstract SRM API object class: LambertConformalConic
typedef struct {
SRM_AssociateSurfaceCoordinateEH |
*AssociateSurfaceCoordinate; |
SRM_ChangeCoordinate3DArraySRF |
*ChangeCoordinate3DArraySRF; |
SRM_ChangeCoordinate3DArraySRFObject |
*ChangeCoordinate3DArraySRFObject; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionArraySRF |
*ChangeDirectionArraySRF; |
SRM_ChangeDirectionArraySRFObject |
*ChangeDirectionArraySRFObject; |
SRM_ChangeDirectionSRF |
*ChangeDirectionSRF; |
SRM_ChangeDirectionSRFObject |
*ChangeDirectionSRFObject; |
SRM_ConvergenceOfTheMeridian |
*ConvergenceOfTheMeridian; |
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_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_PointDistortion |
*PointDistortion; |
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 SRM API 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 SRM API function: Create
SRM_Status_Code SRM_LSA_Create (
|
SRM_ORM_Code |
orm_code, |
|
|
SRM_RT_Code |
rt_code, |
|
|
SRM_LocalSpaceAzimuthal |
*new_srf |
/* OUT */ |
);
The following data type is used to specify the methods of the LocalSpaceAzimuthal object class:
Abstract SRM API object class: LocalSpaceAzimuthal
typedef struct {
SRM_ChangeCoordinate2DArraySRF |
*ChangeCoordinate2DArraySRF; |
SRM_ChangeCoordinate2DArraySRFObject |
*ChangeCoordinate2DArraySRFObject; |
SRM_ChangeCoordinate2DSRF |
*ChangeCoordinate2DSRF; |
SRM_ChangeCoordinate2DSRFObject |
*ChangeCoordinate2DSRFObject; |
SRM_CreateCoordinate2D |
*CreateCoordinate2D; |
SRM_Destroy |
*Destroy; |
SRM_EuclideanDistance2D |
*EuclideanDistance2D; |
SRM_Generating2D |
*Generating2D; |
SRM_GetCoordinate2DValues |
*GetCoordinate2DValues; |
SRM_GetCSCode |
*GetCSCode; |
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 SRM API 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 SRM API function: Create
SRM_Status_Code SRM_LSP_Create (
|
SRM_ORM_Code |
orm_code, |
|
|
SRM_RT_Code |
rt_code, |
|
|
SRM_LocalSpacePolar |
*new_srf |
/* OUT */ |
);
The following data type is used to specify the methods of the LocalSpacePolar object class:
Abstract SRM API object class: LocalSpacePolar
typedef struct {
SRM_ChangeCoordinate2DArraySRF |
*ChangeCoordinate2DArraySRF; |
SRM_ChangeCoordinate2DArraySRFObject |
*ChangeCoordinate2DArraySRFObject; |
SRM_ChangeCoordinate2DSRF |
*ChangeCoordinate2DSRF; |
SRM_ChangeCoordinate2DSRFObject |
*ChangeCoordinate2DSRFObject; |
SRM_CreateCoordinate2D |
*CreateCoordinate2D; |
SRM_Destroy |
*Destroy; |
SRM_EuclideanDistance2D |
*EuclideanDistance2D; |
SRM_Generating2D |
*Generating2D; |
SRM_GetCoordinate2DValues |
*GetCoordinate2DValues; |
SRM_GetCSCode |
*GetCSCode; |
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 SRM API 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 SRM API function: Create
SRM_Status_Code SRM_LSR_2D_Create (
|
SRM_ORM_Code |
orm_code, |
|
|
SRM_RT_Code |
rt_code, |
|
const |
SRM_LSR_2D_Parameters |
*parameters, |
|
|
SRM_LocalSpaceRectangular2D |
*new_srf |
/* OUT */ |
);
The following method is used to specify the binding of the LocalSpaceRectangular object class:
Abstract SRM API object method: GetSRFParameters
typedef SRM_Status_Code SRM_LSR_2D_GetSRFParameters (
|
SRM_Object_Reference |
this_object, |
|
|
SRM_LSR_2D_Parameters |
*parameters |
/* OUT */ |
);
The following data type is used to specify the methods of the LocalSpaceRectangular2D object class:
Abstract SRM API object class: LocalSpaceRectangular2D
typedef struct {
SRM_ChangeCoordinate2DArraySRF |
*ChangeCoordinate2DArraySRF; |
SRM_ChangeCoordinate2DArraySRFObject |
*ChangeCoordinate2DArraySRFObject; |
SRM_ChangeCoordinate2DSRF |
*ChangeCoordinate2DSRF; |
SRM_ChangeCoordinate2DSRFObject |
*ChangeCoordinate2DSRFObject; |
SRM_CreateCoordinate2D |
*CreateCoordinate2D; |
SRM_Destroy |
*Destroy; |
SRM_EuclideanDistance2D |
*EuclideanDistance2D; |
SRM_Generating2D |
*Generating2D; |
SRM_GetCoordinate2DValues |
*GetCoordinate2DValues; |
SRM_GetCSCode |
*GetCSCode; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_LSR_2D_GetSRFParameters |
*GetSRFParameters; |
SRM_InverseGenerating2D |
*InverseGenerating2D; |
} SRM_LSR_2D_Method_List;
The following record type specifies the binding of the LocalSpaceRectangular2D object class:
Abstract SRM API object class: LocalSpaceRectangular2D
typedef struct {
void |
*state; |
SRM_LSR_2D_Method_List |
*methods; |
} SRM_LocalSpaceRectangular2D;
The following function specifies the binding of the factory for the LocalSpaceRectangular3D object class:
Abstract SRM API function: Create
SRM_Status_Code SRM_LSR_3D_Create (
|
SRM_ORM_Code |
orm_code, |
|
|
SRM_RT_Code |
rt_code, |
|
const |
SRM_LSR_3D_Parameters |
*parameters, |
|
|
SRM_LocalSpaceRectangular3D |
*new_srf |
/* OUT */ |
);
The following method is used to specify the binding of the LocalSpaceRectangular3D object class:
Abstract SRM API object method: GetSRFParameters
typedef SRM_Status_Code SRM_LSR_3D_GetSRFParameters (
|
SRM_Object_Reference |
this_object, |
|
|
SRM_LSR_3D_Parameters |
*parameters |
/* OUT */ |
);
The following data type is used to specify the methods of the LocalSpaceRectangular3D object class:
Abstract SRM API object class: LocalSpaceRectangular3D
typedef struct {
SRM_ChangeCoordinate3DArraySRF |
*ChangeCoordinate3DArraySRF; |
SRM_ChangeCoordinate3DArraySRFObject |
*ChangeCoordinate3DArraySRFObject; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionArraySRF |
*ChangeDirectionArraySRF; |
SRM_ChangeDirectionArraySRFObject |
*ChangeDirectionArraySRFObject; |
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_GetCSCode |
*GetCSCode; |
SRM_GetDirectionValues |
*GetDirectionValues; |
SRM_GetExtendedValidRegion |
*GetExtendedValidRegion; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_LSR_3D_GetSRFParameters |
*GetSRFParameters; |
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 SRM API object class: LocalSpaceRectangular3D
typedef struct {
void |
*state; |
SRM_LSR_3D_Method_List |
*methods; |
} SRM_LocalSpaceRectangular3D;
The following function specifies the binding of the factory for the LocalTangentSpaceAzimuthalSpherical object class:
Abstract SRM API function: Create
SRM_Status_Code SRM_LTSAS_Create (
|
SRM_ORM_Code |
orm_code, |
|
|
SRM_RT_Code |
rt_code, |
|
const |
SRM_Local_Tangenet_Parameters |
*parameters, |
|
|
SRM_LocalTangentSpaceAzimuthalSpherical |
*new_srf |
/* OUT */ |
);
The following method is used to specify the binding of the LocalTangentSpaceAzimuthalSpherical object class:
Abstract SRM API object method: GetSRFParameters
typedef SRM_Status_Code SRM_LTSAS_GetSRFParameters (
|
SRM_Object_Reference |
this_object, |
|
|
SRM_Local_Tangent_Parameters |
*parameters |
/* OUT */ |
);
The following data type is used to specify the methods of the LocalTangentSpaceAzimuthalSpherical object class:
Abstract SRM API object class: LocalTangentSpaceAzimuthalSpherical
typedef struct {
SRM_AssociateSurfaceCoordinateTPS |
*AssociateSurfaceCoordinate; |
SRM_ChangeCoordinate3DArraySRF |
*ChangeCoordinate3DArraySRF; |
SRM_ChangeCoordinate3DArraySRFObject |
*ChangeCoordinate3DArraySRFObject; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionArraySRF |
*ChangeDirectionArraySRF; |
SRM_ChangeDirectionArraySRFObject |
*ChangeDirectionArraySRFObject; |
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_GetCSCode |
*GetCSCode; |
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 SRM API 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 SRM API function: Create
SRM_Status_Code SRM_LTSC_Create (
|
SRM_ORM_Code |
orm_code, |
|
|
SRM_RT_Code |
rt_code, |
|
const |
SRM_Local_Tangent_Parameters |
*parameters, |
|
|
SRM_LocalTangentSpaceCylindrical |
*new_srf |
/* OUT */ |
);
The following method is used to specify the binding of the LocalTangentSpaceCylindrical object class:
Abstract SRM API object method: GetSRFParameters
typedef SRM_Status_Code SRM_LTSC_GetSRFParameters (
|
SRM_Object_Reference |
this_object, |
|
|
SRM_Local_Tangent_Parameters |
*parameters |
/* OUT */ |
);
The following data type is used to specify the methods of the LocalTangentSpaceCylindrical object class:
Abstract SRM API object class: LocalTangentSpaceCylindrical
typedef struct {
SRM_AssociateSurfaceCoordinateTPS |
*AssociateSurfaceCoordinate; |
SRM_ChangeCoordinate3DArraySRF |
*ChangeCoordinate3DArraySRF; |
SRM_ChangeCoordinate3DArraySRFObject |
*ChangeCoordinate3DArraySRFObject; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionArraySRF |
*ChangeDirectionArraySRF; |
SRM_ChangeDirectionArraySRFObject |
*ChangeDirectionArraySRFObject; |
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_GetCSCode |
*GetCSCode; |
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 SRM API 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 SRM API function: Create
SRM_Status_Code SRM_LTSE_Create (
|
SRM_ORM_Code |
orm_code, |
|
|
SRM_RT_Code |
rt_code, |
|
const |
SRM_LTSE_Parameters |
*parameters, |
|
|
SRM_LocalTangentSpaceEuclidean |
*new_srf |
/* OUT */ |
);
The following method is used to specify the binding of the LocalTangentSpaceEuclidean object class:
Abstract SRM API object method: GetSRFParameters
typedef SRM_Status_Code SRM_LTSE_GetSRFParameters (
|
SRM_Object_Reference |
this_object, |
|
|
SRM_LTSE_Parameters |
*parameters |
/* OUT */ |
);
The following data type is used to specify the methods of the LocalTangentSpaceEuclidean object class:
Abstract SRM API object class: LocalTangentSpaceEuclidean
typedef struct {
SRM_AssociateSurfaceCoordinateTPS |
*AssociateSurfaceCoordinate; |
SRM_ChangeCoordinate3DArraySRF |
*ChangeCoordinate3DArraySRF; |
SRM_ChangeCoordinate3DArraySRFObject |
*ChangeCoordinate3DArraySRFObject; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionArraySRF |
*ChangeDirectionArraySRF; |
SRM_ChangeDirectionArraySRFObject |
*ChangeDirectionArraySRFObject; |
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_GetCSCode |
*GetCSCode; |
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 SRM API 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 LococentricEuclidean3D object class:
Abstract SRM API function: Create
SRM_Status_Code SRM_LCE_3D_Create (
|
SRM_ORM_Code |
orm_code, |
|
|
SRM_RT_Code |
rt_code, |
|
const |
SRM_LCE_3D_Parameters |
*parameters, |
|
|
SRM_LocalSpaceRectangular3D |
*new_srf |
/* OUT */ |
);
The following method is used to specify the binding of the LococentricEuclidean3D object class:
Abstract SRM API object method: GetSRFParameters
typedef SRM_Status_Code SRM_LCE_3D_GetSRFParameters (
|
SRM_Object_Reference |
this_object, |
|
|
SRM_LCE_3D_Parameters |
*parameters |
/* OUT */ |
);
The following data type is used to specify the methods of the LococentricEuclidean3D object class:
Abstract SRM API object class: LococentricEuclidean3D
typedef struct {
SRM_ChangeCoordinate3DArraySRF |
*ChangeCoordinate3DArraySRF; |
SRM_ChangeCoordinate3DArraySRFObject |
*ChangeCoordinate3DArraySRFObject; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionArraySRF |
*ChangeDirectionArraySRF; |
SRM_ChangeDirectionArraySRFObject |
*ChangeDirectionArraySRFObject; |
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_GetCSCode |
*GetCSCode; |
SRM_GetDirectionValues |
*GetDirectionValues; |
SRM_GetExtendedValidRegion |
*GetExtendedValidRegion; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_LCE_3D_GetSRFParameters |
*GetSRFParameters; |
SRM_GetValidRegion |
*GetValidRegion; |
SRM_InverseGenerating3D |
*InverseGenerating3D; |
SRM_SetExtendedValidRegion |
*SetExtendedValidRegion; |
SRM_SetValidRegion |
*SetValidRegion; |
} SRM_LCE_3D_Method_List;
The following record type specifies the binding of the LococentricEuclidean3D object class:
Abstract SRM API object class: LococentricEuclidean3D
typedef struct {
void |
*state; |
SRM_LCE_3D_Method_List |
*methods; |
} SRM_LococentricEuclidean3D;
The following function specifies the binding of the factory for the Mercator object class:
Abstract SRM API function: Create
SRM_Status_Code SRM_M_Create (
|
SRM_ORM_Code |
orm_code, |
|
|
SRM_RT_Code |
rt_code, |
|
const |
SRM_M_Parameters |
*parameters, |
|
|
SRM_Mercator |
*new_srf |
/* OUT */ |
);
The following method is used to specify the binding of the Mercator object class:
Abstract SRM API object method: GetSRFParameters
typedef SRM_Status_Code SRM_M_GetSRFParameters (
|
SRM_Object_Reference |
this_object, |
|
|
SRM_M_Parameters |
*parameters |
/* OUT */ |
);
The following data type is used to specify the methods of the Mercator object class:
Abstract SRM API object class: Mercator
typedef struct {
SRM_AssociateSurfaceCoordinateEH |
*AssociateSurfaceCoordinate; |
SRM_ChangeCoordinate3DArraySRF |
*ChangeCoordinate3DArraySRF; |
SRM_ChangeCoordinate3DArraySRFObject |
*ChangeCoordinate3DArraySRFObject; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionArraySRF |
*ChangeDirectionArraySRF; |
SRM_ChangeDirectionArraySRFObject |
*ChangeDirectionArraySRFObject; |
SRM_ChangeDirectionSRF |
*ChangeDirectionSRF; |
SRM_ChangeDirectionSRFObject |
*ChangeDirectionSRFObject; |
SRM_ConvergenceOfTheMeridian |
*ConvergenceOfTheMeridian; |
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_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_PointDistortion |
*PointDistortion; |
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 SRM API 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 SRM API function: Create
SRM_Status_Code SRM_OMS_Create (
|
SRM_ORM_Code |
orm_code, |
|
|
SRM_RT_Code |
rt_code, |
|
const |
SRM_Oblique_Mercator_Parameters |
*parameters, |
|
|
SRM_ObliqueMercatorSpherical |
*new_srf |
/* OUT */ |
);
The following method is used to specify the binding of the ObliqueMercatorSpherical object class:
Abstract SRM API object method: GetSRFParameters
typedef SRM_Status_Code SRM_OMS_GetSRFParameters (
|
SRM_Object_Reference |
this_object, |
|
|
SRM_Oblique_Mercator_Parameters |
*parameters |
/* OUT */ |
);
The following data type is used to specify the methods of the ObliqueMercatorSpherical object class:
Abstract SRM API object class: ObliqueMercatorSpherical
typedef struct {
SRM_AssociateSurfaceCoordinateEH |
*AssociateSurfaceCoordinate; |
SRM_ChangeCoordinate3DArraySRF |
*ChangeCoordinate3DArraySRF; |
SRM_ChangeCoordinate3DArraySRFObject |
*ChangeCoordinate3DArraySRFObject; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionArraySRF |
*ChangeDirectionArraySRF; |
SRM_ChangeDirectionArraySRFObject |
*ChangeDirectionArraySRFObject; |
SRM_ChangeDirectionSRF |
*ChangeDirectionSRF; |
SRM_ChangeDirectionSRFObject |
*ChangeDirectionSRFObject; |
SRM_ConvergenceOfTheMeridian |
*ConvergenceOfTheMeridian; |
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_GetCSCode |
*GetCSCode; |
SRM_GetDirectionValues |
*GetDirectionValues; |
SRM_GetExtendedValidGeodeticRegion |
*GetExtendedValidGeodeticRegion; |
SRM_GetExtendedValidRegion |
*GetExtendedValidRegion; |
SRM_GetORMCodes |
*GetORMCodes; |
SRM_GetSRFCodes |
*GetSRFCodes; |
SRM_OMS_GetSRFParameters |
*GetSRFParameters; |
SRM_GetSurfaceCoordinateValuesEH |
*GetSurfaceCoordinateValues; |
SRM_GetValidGeodeticRegion |
*GetValidGeodeticRegion; |
SRM_GetValidRegion |
*GetValidRegion; |
SRM_InverseGenerating3D |
*InverseGenerating3D; |
SRM_MapAzimuth |
*MapAzimuth; |
SRM_PromoteSurfaceCoordinateEH |
*PromoteSurfaceCoordinate; |
SRM_PointDistortion |
*PointDistortion; |
SRM_SetExtendedValidGeodeticRegion |
*SetExtendedValidGeodeticRegion; |
SRM_SetExtendedValidRegion |
*SetExtendedValidRegion; |
SRM_SetValidGeodeticRegion |
*SetValidGeodeticRegion; |
SRM_SetValidRegion |
*SetValidRegion; |
SRM_VerticalOffset |
*VerticalOffset; |
} SRM_OMS_Method_List;
The following record type specifies the binding of the ObliqueMercatorSpherical object class:
Abstract SRM API object class: ObliqueMercatorSpherical
typedef struct {
void |
*state; |
SRM_OMS_Method_List |
*methods; |
} SRM_ObliqueMercatorSpherical;
The following function specifies the binding of the factory for the Planetodetic object class:
Abstract SRM API function: Create
SRM_Status_Code SRM_PD_Create (
|
SRM_ORM_Code |
orm_code, |
|
|
SRM_RT_Code |
rt_code, |
|
|
SRM_Planetodetic |
*new_srf |
/* OUT */ |
);
The following data type is used to specify the methods of the Planetodetic object class:
Abstract SRM API object class: Planetodetic
typedef struct {
SRM_AssociateSurfaceCoordinateEH |
*AssociateSurfaceCoordinate; |
SRM_ChangeCoordinate3DArraySRF |
*ChangeCoordinate3DArraySRF; |
SRM_ChangeCoordinate3DArraySRFObject |
*ChangeCoordinate3DArraySRFObject; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionArraySRF |
*ChangeDirectionArraySRF; |
SRM_ChangeDirectionArraySRFObject |
*ChangeDirectionArraySRFObject; |
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_GetCSCode |
*GetCSCode; |
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 SRM API 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 SRM API function: Create
SRM_Status_Code SRM_PS_Create (
|
SRM_ORM_Code |
orm_code, |
|
|
SRM_RT_Code |
rt_code, |
|
const |
SRM_PS_Parameters |
*parameters, |
|
|
SRM_PolarStereographic |
*new_srf |
/* OUT */ |
);
The following method is used to specify the binding of the PolarStereographic object class:
Abstract SRM API object method: GetSRFParameters
typedef SRM_Status_Code SRM_PS_GetSRFParameters (
|
SRM_Object_Reference |
this_object, |
|
|
SRM_PS_Parameters |
*parameters |
/* OUT */ |
);
The following data type is used to specify the methods of the PolarStereographic object class:
Abstract SRM API object class: PolarStereographic
typedef struct {
SRM_AssociateSurfaceCoordinateEH |
*AssociateSurfaceCoordinate; |
SRM_ChangeCoordinate3DArraySRF |
*ChangeCoordinate3DArraySRF; |
SRM_ChangeCoordinate3DArraySRFObject |
*ChangeCoordinate3DArraySRFObject; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionArraySRF |
*ChangeDirectionArraySRF; |
SRM_ChangeDirectionArraySRFObject |
*ChangeDirectionArraySRFObject; |
SRM_ChangeDirectionSRF |
*ChangeDirectionSRF; |
SRM_ChangeDirectionSRFObject |
*ChangeDirectionSRFObject; |
SRM_ConvergenceOfTheMeridian |
*ConvergenceOfTheMeridian; |
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_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_PointDistortion |
*PointDistortion; |
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 SRM API 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 SRM API object class: Position2D
typedef struct {
SRM_Destroy |
*Destroy; |
} SRM_Position2D_Method_List;
Abstract SRM API 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 SRM API object class: Position3D
typedef struct {
SRM_Destroy |
*Destroy; |
} SRM_Position3D_Method_List;
Abstract SRM API 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 SRM API function: Create
SRM_Status_Code SRM_SEC_Create (
|
SRM_ORM_Code |
orm_code, |
|
|
SRM_RT_Code |
rt_code, |
|
|
SRM_SolarEcliptic |
*new_srf |
/* OUT */ |
);
The following data type is used to specify the methods of the SolarEcliptic object class:
Abstract SRM API object class: SolarEcliptic
typedef struct {
SRM_ChangeCoordinate3DArraySRF |
*ChangeCoordinate3DArraySRF; |
SRM_ChangeCoordinate3DArraySRFObject |
*ChangeCoordinate3DArraySRFObject; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionArraySRF |
*ChangeDirectionArraySRF; |
SRM_ChangeDirectionArraySRFObject |
*ChangeDirectionArraySRFObject; |
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_GetCSCode |
*GetCSCode; |
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_SEC_Method_List;
The following record type specifies the binding of the SolarEcliptic object class:
Abstract SRM API object class: SolarEcliptic
typedef struct {
void |
*state; |
SRM_SEC_Method_List |
*methods; |
} SRM_SolarEcliptic;
The following function specifies the binding of the factory for the SolarEquatorial object class:
Abstract SRM API function: Create
SRM_Status_Code SRM_SEQ_Create (
|
SRM_ORM_Code |
orm_code, |
|
|
SRM_RT_Code |
rt_code, |
|
|
SRM_SolarEquatorial |
*new_srf |
/* OUT */ |
);
The following data type is used to specify the methods of the SolarEquatorial object class:
Abstract SRM API object class: SolarEquatorial
typedef struct {
SRM_ChangeCoordinate3DArraySRF |
*ChangeCoordinate3DArraySRF; |
SRM_ChangeCoordinate3DArraySRFObject |
*ChangeCoordinate3DArraySRFObject; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionArraySRF |
*ChangeDirectionArraySRF; |
SRM_ChangeDirectionArraySRFObject |
*ChangeDirectionArraySRFObject; |
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_GetCSCode |
*GetCSCode; |
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 SRM API 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 SRM API function: Create
SRM_Status_Code SRM_SMD_Create (
|
SRM_ORM_Code |
orm_code, |
|
|
SRM_RT_Code |
rt_code, |
|
|
SRM_SolarMagneticDipole |
*new_srf |
/* OUT */ |
);
The following data type is used to specify the methods of the SolarMagneticDipole object class:
Abstract SRM API object class: SolarMagneticDipole
typedef struct {
SRM_ChangeCoordinate3DArraySRF |
*ChangeCoordinate3DArraySRF; |
SRM_ChangeCoordinate3DArraySRFObject |
*ChangeCoordinate3DArraySRFObject; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionArraySRF |
*ChangeDirectionArraySRF; |
SRM_ChangeDirectionArraySRFObject |
*ChangeDirectionArraySRFObject; |
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_GetCSCode |
*GetCSCode; |
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 SRM API 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 SRM API function: Create
SRM_Status_Code SRM_SME_Create (
|
SRM_ORM_Code |
orm_code, |
|
|
SRM_RT_Code |
rt_code, |
|
|
SRM_SolarMagneticEcliptic |
*new_srf |
/* OUT */ |
);
The following data type is used to specify the methods of the SolarMagneticEcliptic object class:
Abstract SRM API object class: SolarMagneticEcliptic
typedef struct {
SRM_ChangeCoordinate3DArraySRF |
*ChangeCoordinate3DArraySRF; |
SRM_ChangeCoordinate3DArraySRFObject |
*ChangeCoordinate3DArraySRFObject; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionArraySRF |
*ChangeDirectionArraySRF; |
SRM_ChangeDirectionArraySRFObject |
*ChangeDirectionArraySRFObject; |
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_GetCSCode |
*GetCSCode; |
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 SRM API 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 SRM API object class: SurfaceCoordinate
typedef struct {
SRM_Destroy |
*Destroy; |
} SRM_SurfaceCoordinate_Method_List;
Abstract SRM API 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 SRM API function: Create
SRM_Status_Code SRM_TM_Create (
|
SRM_ORM_Code |
orm_code, |
|
|
SRM_RT_Code |
rt_code, |
|
const |
SRM_TM_Parameters |
*parameters, |
|
|
SRM_TransverseMercator |
*new_srf |
/* OUT */ |
);
The following method is used to specify the binding of the TransverseMercator object class:
Abstract SRM API object method: GetSRFParameters
typedef SRM_Status_Code SRM_TM_GetSRFParameters (
|
SRM_Object_Reference |
this_object, |
|
|
SRM_TM_Parameters |
*parameters |
/* OUT */ |
);
The following data type is used to specify the methods of the TransverseMercator object class:
Abstract SRM API object class: TransverseMercator
typedef struct {
SRM_AssociateSurfaceCoordinateEH |
*AssociateSurfaceCoordinate; |
SRM_ChangeCoordinateArray3DSRF |
*ChangeCoordinate3DArraySRF; |
SRM_ChangeCoordinate3DArraySRFObject |
*ChangeCoordinate3DArraySRFObject; |
SRM_ChangeCoordinate3DSRF |
*ChangeCoordinate3DSRF; |
SRM_ChangeCoordinate3DSRFObject |
*ChangeCoordinate3DSRFObject; |
SRM_ChangeDirectionArraySRF |
*ChangeDirectionArraySRF; |
SRM_ChangeDirectionArraySRFObject |
*ChangeDirectionArraySRFObject; |
SRM_ChangeDirectionSRF |
*ChangeDirectionSRF; |
SRM_ChangeDirectionSRFObject |
*ChangeDirectionSRFObject; |
SRM_ConvergenceOfTheMeridian |
*ConvergenceOfTheMeridian; |
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_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_PointDistortion |
*PointDistortion; |
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 SRM API 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 SRM API function: CreateSRFSetMember
SRM_Status_Code SRM_CreateSRFSetMember (
|
SRM_SRFS_Code_Info |
srfs_code_info, |
|
|
SRM_ORM_Code |
orm_code, |
|
|
SRM_RT_Code |
rt_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 and shall represent a single member of the specified SRF set.
The following specifies the binding of the CreateStandardSRF function:
Abstract SRM API function: Create
SRM_Status_Code SRM_CreateStandardSRF (
|
SRM_SRF_Code |
srf_code, |
|
|
SRM_RT_Code |
rt_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.
There following functions are provided so that an implementation has a standard way of determining which SRFTs and ORMs are supported by the implementation.
The following returns TRUE if the specified ORM is supported.:
Abstract SRM API function: QueryORMSupport
SRM_Status_Code SRM_QueryORMSupport (
|
SRM_ORM_Code |
orm_code, |
|
|
SRM_RT_Code |
rt_code, |
|
|
SRM_Boolean |
*supported |
/* OUT */ |
);
The following returns TRUE if the specified SRFT is supported.:
Abstract SRM API function: QueryORMSupport
SRM_Status_Code SRM_QueryORMSupport (
|
SRM_SRFT_Code |
srft_code, |
|
|
SRM_Boolean |
*supported |
/* OUT */ |
);
http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_IEC_18042-4_Ed1.html