00001
00002
00003
00004
00006
00008
00009
00010
00012
00013
00019
00020
00021
00022
00023 #ifndef _SRM_UTIL_H_INCLUDED
00024 #define _SRM_UTIL_H_INCLUDED
00025
00026 #if !defined(_WIN32)
00027 #define EXPORT_DLL
00028 #elif !defined(EXPORT_DLL)
00029 #if defined(_LIB)
00030 #define EXPORT_DLL
00031 #elif defined(_USRDLL)
00032 #define EXPORT_DLL __declspec(dllexport)
00033 #else
00034 #define EXPORT_DLL __declspec(dllimport)
00035 #endif
00036 #endif
00037
00038
00039
00040
00041 #ifdef __cplusplus
00042 extern "C" {
00043 #endif
00044
00045 #include "srm_types.h"
00046
00047
00072
00073 EXPORT_DLL extern SRM_Status_Code
00074 SRM_CoordinateEqual
00075 (
00076 const SRM_Coordinate *a_ptr,
00077 const SRM_Coordinate *b_ptr,
00078 SRM_Boolean *result_out_ptr
00079 );
00080
00081
00082
00099
00100 EXPORT_DLL extern SRM_Status_Code
00101 SRM_CrossProduct
00102 (
00103 const SRM_Vector_3D a_ptr,
00104 const SRM_Vector_3D b_ptr,
00105 SRM_Vector_3D result_out_ptr
00106 );
00107
00108
00109
00130
00131 EXPORT_DLL extern SRM_Status_Code
00132 SRM_DeriveCoordinate2DFrom3D
00133 (
00134 const SRM_Coordinate *coord_3d_ptr,
00135 SRM_Coordinate *coord_2d_ptr
00136 );
00137
00138
00139
00156
00157 EXPORT_DLL extern SRM_Status_Code
00158 SRM_DotProduct
00159 (
00160 const SRM_Vector_3D a_ptr,
00161 const SRM_Vector_3D b_ptr,
00162 SRM_Long_Float *result_out_ptr
00163 );
00164
00165
00166
00201
00202 EXPORT_DLL extern SRM_Status_Code
00203 SRM_GetVersionInformation
00204 (
00205 SRM_Integer_Positive *major_SRM_version,
00206 SRM_Integer_Unsigned *minor_SRM_version,
00207 char *interim_SRM_version
00208 );
00209
00210
00211
00227
00228 EXPORT_DLL extern SRM_Status_Code
00229 SRM_Matrix3x3Add
00230 (
00231 const SRM_Matrix_3x3 a_ptr,
00232 const SRM_Matrix_3x3 b_ptr,
00233 SRM_Matrix_3x3 result_out_ptr
00234 );
00235
00236
00237
00253
00254 EXPORT_DLL extern SRM_Status_Code
00255 SRM_Matrix3x3Multiply
00256 (
00257 const SRM_Matrix_3x3 a_ptr,
00258 const SRM_Matrix_3x3 b_ptr,
00259 SRM_Matrix_3x3 result_out_ptr
00260 );
00261
00262
00263
00279
00280 EXPORT_DLL extern SRM_Status_Code
00281 SRM_Matrix3x3Sub
00282 (
00283 const SRM_Matrix_3x3 a_ptr,
00284 const SRM_Matrix_3x3 b_ptr,
00285 SRM_Matrix_3x3 result_out_ptr
00286 );
00287
00288
00289
00305
00306 EXPORT_DLL extern SRM_Status_Code
00307 SRM_Matrix4x4Add
00308 (
00309 const SRM_Matrix_4x4 a_ptr,
00310 const SRM_Matrix_4x4 b_ptr,
00311 SRM_Matrix_4x4 result_out_ptr
00312 );
00313
00314
00315
00331
00332 EXPORT_DLL extern SRM_Status_Code
00333 SRM_Matrix4x4Multiply
00334 (
00335 const SRM_Matrix_4x4 a_ptr,
00336 const SRM_Matrix_4x4 b_ptr,
00337 SRM_Matrix_4x4 result_out_ptr
00338 );
00339
00340
00341
00357
00358 EXPORT_DLL extern SRM_Status_Code
00359 SRM_Matrix4x4Sub
00360 (
00361 const SRM_Matrix_4x4 a_ptr,
00362 const SRM_Matrix_4x4 b_ptr,
00363 SRM_Matrix_4x4 result_out_ptr
00364 );
00365
00366
00367
00382
00383 EXPORT_DLL extern SRM_Status_Code
00384 SRM_VectorMagnitude
00385 (
00386 const SRM_Vector_3D vec_ptr,
00387 SRM_Long_Float *result_out_ptr
00388 );
00389
00390
00391
00409
00410 EXPORT_DLL extern SRM_Status_Code
00411 SRM_VectorMultByScalar
00412 (
00413 const SRM_Vector_3D vec_ptr,
00414 SRM_Long_Float scalar,
00415 SRM_Vector_3D result_out_ptr
00416 );
00417
00418
00419
00434
00435 EXPORT_DLL extern SRM_Status_Code
00436 SRM_EnumNameToAxisDirection
00437 (
00438 const char *enum_name_in_ptr,
00439 SRM_Axis_Direction *result_out_ptr
00440 );
00441
00442
00443
00458
00459 EXPORT_DLL extern SRM_Status_Code
00460 SRM_EnumNameToBoolean
00461 (
00462 const char *enum_name_in_ptr,
00463 SRM_Boolean *result_out_ptr
00464 );
00465
00466
00467
00482
00483 EXPORT_DLL extern SRM_Status_Code
00484 SRM_EnumNameToCoordinateValidRegion
00485 (
00486 const char *enum_name_in_ptr,
00487 SRM_Coordinate_Valid_Region *result_out_ptr
00488 );
00489
00490
00491
00506
00507 EXPORT_DLL extern SRM_Status_Code
00508 SRM_EnumNameToCSCode
00509 (
00510 const char *enum_name_in_ptr,
00511 SRM_CS_Code *result_out_ptr
00512 );
00513
00514
00515
00530
00531 EXPORT_DLL extern SRM_Status_Code
00532 SRM_EnumNameToDSSCode
00533 (
00534 const char *enum_name_in_ptr,
00535 SRM_DSS_Code *result_out_ptr
00536 );
00537
00538
00539
00554
00555 EXPORT_DLL extern SRM_Status_Code
00556 SRM_EnumNameToIntervalType
00557 (
00558 const char *enum_name_in_ptr,
00559 SRM_Interval_Type *result_out_ptr
00560 );
00561
00562
00563
00578
00579 EXPORT_DLL extern SRM_Status_Code
00580 SRM_EnumNameToORMCode
00581 (
00582 const char *enum_name_in_ptr,
00583 SRM_ORM_Code *result_out_ptr
00584 );
00585
00586
00587
00602
00603 EXPORT_DLL extern SRM_Status_Code
00604 SRM_EnumNameToORMTCode
00605 (
00606 const char *enum_name_in_ptr,
00607 SRM_ORMT_Code *result_out_ptr
00608 );
00609
00610
00611
00626
00627 EXPORT_DLL extern SRM_Status_Code
00628 SRM_EnumNameToPolarAspect
00629 (
00630 const char *enum_name_in_ptr,
00631 SRM_Polar_Aspect *result_out_ptr
00632 );
00633
00634
00635
00650
00651 EXPORT_DLL extern SRM_Status_Code
00652 SRM_EnumNameToRDCode
00653 (
00654 const char *enum_name_in_ptr,
00655 SRM_RD_Code *result_out_ptr
00656 );
00657
00658
00659
00674
00675 EXPORT_DLL extern SRM_Status_Code
00676 SRM_EnumNameToRTCode
00677 (
00678 const char *enum_name_in_ptr,
00679 SRM_RT_Code *result_out_ptr
00680 );
00681
00682
00683
00698
00699 EXPORT_DLL extern SRM_Status_Code
00700 SRM_EnumNameToSpatialCoordinateCode
00701 (
00702 const char *enum_name_in_ptr,
00703 SRM_Spatial_Coordinate_Code *result_out_ptr
00704 );
00705
00706
00707
00722
00723 EXPORT_DLL extern SRM_Status_Code
00724 SRM_EnumNameToSRFCode
00725 (
00726 const char *enum_name_in_ptr,
00727 SRM_SRF_Code *result_out_ptr
00728 );
00729
00730
00731
00746
00747 EXPORT_DLL extern SRM_Status_Code
00748 SRM_EnumNameToSRFParametersInfoCode
00749 (
00750 const char *enum_name_in_ptr,
00751 SRM_SRF_Parameters_Info_Code *result_out_ptr
00752 );
00753
00754
00755
00770
00771 EXPORT_DLL extern SRM_Status_Code
00772 SRM_EnumNameToSRFSCode
00773 (
00774 const char *enum_name_in_ptr,
00775 SRM_SRFS_Code *result_out_ptr
00776 );
00777
00778
00779
00794
00795 EXPORT_DLL extern SRM_Status_Code
00796 SRM_EnumNameToSRFSMAlabamaSPCSCode
00797 (
00798 const char *enum_name_in_ptr,
00799 SRM_SRFSM_Alabama_SPCS_Code *result_out_ptr
00800 );
00801
00802
00803
00818
00819 EXPORT_DLL extern SRM_Status_Code
00820 SRM_EnumNameToSRFSMJapanRectangularPlaneCSCode
00821 (
00822 const char *enum_name_in_ptr,
00823 SRM_SRFSM_Japan_Rectangular_Plane_CS_Code *result_out_ptr
00824 );
00825
00826
00827
00842
00843 EXPORT_DLL extern SRM_Status_Code
00844 SRM_EnumNameToSRFSMLambertNTFCode
00845 (
00846 const char *enum_name_in_ptr,
00847 SRM_SRFSM_Lambert_NTF_Code *result_out_ptr
00848 );
00849
00850
00851
00866
00867 EXPORT_DLL extern SRM_Status_Code
00868 SRM_EnumNameToSRFSMUPSCode
00869 (
00870 const char *enum_name_in_ptr,
00871 SRM_SRFSM_UPS_Code *result_out_ptr
00872 );
00873
00874
00875
00890
00891 EXPORT_DLL extern SRM_Status_Code
00892 SRM_EnumNameToSRFSMUTMCode
00893 (
00894 const char *enum_name_in_ptr,
00895 SRM_SRFSM_UTM_Code *result_out_ptr
00896 );
00897
00898
00899
00914
00915 EXPORT_DLL extern SRM_Status_Code
00916 SRM_EnumNameToSRFSMWisconsinSPCSCode
00917 (
00918 const char *enum_name_in_ptr,
00919 SRM_SRFSM_Wisconsin_SPCS_Code *result_out_ptr
00920 );
00921
00922
00923
00938
00939 EXPORT_DLL extern SRM_Status_Code
00940 SRM_EnumNameToSRFTCode
00941 (
00942 const char *enum_name_in_ptr,
00943 SRM_SRFT_Code *result_out_ptr
00944 );
00945
00946
00947
00962
00963 EXPORT_DLL extern SRM_Status_Code
00964 SRM_EnumNameToStatusCode
00965 (
00966 const char *enum_name_in_ptr,
00967 SRM_Status_Code *result_out_ptr
00968 );
00969
00970
00971 #ifdef __cplusplus
00972 }
00973 #endif
00974
00975 #endif