00001 /* SRM API 00002 * 00003 * SRM SDK Release 4.4.0 - December 7, 2009 00004 * 00005 * - SRM spec. 4.4 00006 * 00007 * 00008 * NOTICE 00009 * 00010 * This software is provided openly and freely for use in representing and 00011 * interchanging environmental data & databases. 00012 * 00013 * This software was developed for use by the United States Government with 00014 * unlimited rights. The software was developed under contract 00015 * DASG60-02-D-0006 TO-193 by Science Applications International Corporation. 00016 * The software is unclassified and is deemed as Distribution A, approved 00017 * for Public Release. 00018 * 00019 * Use by others is permitted only upon the ACCEPTANCE OF THE TERMS AND 00020 * CONDITIONS, AS STIPULATED UNDER THE FOLLOWING PROVISIONS: 00021 * 00022 * 1. Recipient may make unlimited copies of this software and give 00023 * copies to other persons or entities as long as the copies contain 00024 * this NOTICE, and as long as the same copyright notices that 00025 * appear on, or in, this software remain. 00026 * 00027 * 2. Trademarks. All trademarks belong to their respective trademark 00028 * holders. Third-Party applications/software/information are 00029 * copyrighted by their respective owners. 00030 * 00031 * 3. Recipient agrees to forfeit all intellectual property and 00032 * ownership rights for any version created from the modification 00033 * or adaptation of this software, including versions created from 00034 * the translation and/or reverse engineering of the software design. 00035 * 00036 * 4. Transfer. Recipient may not sell, rent, lease, or sublicense 00037 * this software. Recipient may, however enable another person 00038 * or entity the rights to use this software, provided that this 00039 * AGREEMENT and NOTICE is furnished along with the software and 00040 * /or software system utilizing this software. 00041 * 00042 * All revisions, modifications, created by the Recipient, to this 00043 * software and/or related technical data shall be forwarded by the 00044 * Recipient to the Government at the following address: 00045 * 00046 * SMDC 00047 * Attention SEDRIS (TO193) TPOC 00048 * P.O. Box 1500 00049 * Hunstville, AL 35807-3801 00050 * 00051 * or via electronic mail to: se-mgmt@sedris.org 00052 * 00053 * 5. No Warranty. This software is being delivered to you AS IS 00054 * and there is no warranty, EXPRESS or IMPLIED, as to its use 00055 * or performance. 00056 * 00057 * The RECIPIENT ASSUMES ALL RISKS, KNOWN AND UNKNOWN, OF USING 00058 * THIS SOFTWARE. The DEVELOPER EXPRESSLY DISCLAIMS, and the 00059 * RECIPIENT WAIVES, ANY and ALL PERFORMANCE OR RESULTS YOU MAY 00060 * OBTAIN BY USING THIS SOFTWARE OR DOCUMENTATION. THERE IS 00061 * NO WARRANTY, EXPRESS OR, IMPLIED, AS TO NON-INFRINGEMENT OF 00062 * THIRD PARTY RIGHTS, MERCHANTABILITY, OR FITNESS FOR ANY 00063 * PARTICULAR PURPOSE. IN NO EVENT WILL THE DEVELOPER, THE 00064 * UNITED STATES GOVERNMENT OR ANYONE ELSE ASSOCIATED WITH THE 00065 * DEVELOPMENT OF THIS SOFTWARE BE HELD LIABLE FOR ANY CONSEQUENTIAL, 00066 * INCIDENTAL OR SPECIAL DAMAGES, INCLUDING ANY LOST PROFITS 00067 * OR LOST SAVINGS WHATSOEVER. 00068 * 00069 * 00070 * SRM_OTHERS_GOES_HERE 00071 * 00072 * 00073 * COPYRIGHT 2009, SCIENCE APPLICATIONS INTERNATIONAL CORPORATION. 00074 * ALL RIGHTS RESERVED. 00075 * 00076 * 00077 */ 00078 00084 /* 00085 * For other release dates/detailed changes, contact SAIC. 00086 */ 00087 00088 #ifndef _SRM_UTIL_H_INCLUDED 00089 #define _SRM_UTIL_H_INCLUDED 00090 00091 #if !defined(_WIN32) 00092 #define EXPORT_DLL 00093 #elif !defined(EXPORT_DLL) 00094 #if defined(_LIB) 00095 #define EXPORT_DLL 00096 #elif defined(_USRDLL) 00097 #define EXPORT_DLL __declspec(dllexport) 00098 #else 00099 #define EXPORT_DLL __declspec(dllimport) 00100 #endif 00101 #endif /* _WIN32 && EXPORT_DLL */ 00102 00103 /* 00104 * Allow C++ compilers to use this API without any problems 00105 */ 00106 #ifdef __cplusplus 00107 extern "C" { 00108 #endif 00109 00110 #include "srm_types.h" 00111 00112 /*-----------------------------------------------------------------------------*/ 00137 /*-----------------------------------------------------------------------------*/ 00138 EXPORT_DLL extern SRM_Status_Code 00139 SRM_CoordinateEqual 00140 ( 00141 const SRM_Coordinate *a_ptr, 00142 const SRM_Coordinate *b_ptr, 00143 SRM_Boolean *result_out_ptr 00144 ); 00145 00146 00147 /*-----------------------------------------------------------------------------*/ 00164 /*-----------------------------------------------------------------------------*/ 00165 EXPORT_DLL extern SRM_Status_Code 00166 SRM_CrossProduct 00167 ( 00168 const SRM_Vector_3D *a_ptr, 00169 const SRM_Vector_3D *b_ptr, 00170 SRM_Vector_3D *result_out_ptr 00171 ); 00172 00173 00174 /*-----------------------------------------------------------------------------*/ 00195 /*-----------------------------------------------------------------------------*/ 00196 EXPORT_DLL extern SRM_Status_Code 00197 SRM_DeriveCoordinate2DFrom3D 00198 ( 00199 const SRM_Coordinate *coord_3d_ptr, 00200 SRM_Coordinate *coord_2d_ptr 00201 ); 00202 00203 00204 /*-----------------------------------------------------------------------------*/ 00221 /*-----------------------------------------------------------------------------*/ 00222 EXPORT_DLL extern SRM_Status_Code 00223 SRM_DotProduct 00224 ( 00225 const SRM_Vector_3D *a_ptr, 00226 const SRM_Vector_3D *b_ptr, 00227 SRM_Long_Float *result_out_ptr 00228 ); 00229 00230 00231 /*-----------------------------------------------------------------------------*/ 00266 /*-----------------------------------------------------------------------------*/ 00267 EXPORT_DLL extern SRM_Status_Code 00268 SRM_GetVersionInformation 00269 ( 00270 SRM_Integer_Positive *major_SRM_version, 00271 SRM_Integer_Unsigned *minor_SRM_version, 00272 char *interim_SRM_version 00273 ); 00274 00275 00276 /*-----------------------------------------------------------------------------*/ 00292 /*-----------------------------------------------------------------------------*/ 00293 EXPORT_DLL extern SRM_Status_Code 00294 SRM_Matrix3x3Add 00295 ( 00296 const SRM_Matrix_3x3 *a_ptr, 00297 const SRM_Matrix_3x3 *b_ptr, 00298 SRM_Matrix_3x3 *result_out_ptr 00299 ); 00300 00301 00302 /*-----------------------------------------------------------------------------*/ 00318 /*-----------------------------------------------------------------------------*/ 00319 EXPORT_DLL extern SRM_Status_Code 00320 SRM_Matrix3x3Multiply 00321 ( 00322 const SRM_Matrix_3x3 *a_ptr, 00323 const SRM_Matrix_3x3 *b_ptr, 00324 SRM_Matrix_3x3 *result_out_ptr 00325 ); 00326 00327 00328 /*-----------------------------------------------------------------------------*/ 00344 /*-----------------------------------------------------------------------------*/ 00345 EXPORT_DLL extern SRM_Status_Code 00346 SRM_Matrix3x3Sub 00347 ( 00348 const SRM_Matrix_3x3 *a_ptr, 00349 const SRM_Matrix_3x3 *b_ptr, 00350 SRM_Matrix_3x3 *result_out_ptr 00351 ); 00352 00353 00354 /*-----------------------------------------------------------------------------*/ 00370 /*-----------------------------------------------------------------------------*/ 00371 EXPORT_DLL extern SRM_Status_Code 00372 SRM_Matrix4x4Add 00373 ( 00374 const SRM_Matrix_4x4 *a_ptr, 00375 const SRM_Matrix_4x4 *b_ptr, 00376 SRM_Matrix_4x4 *result_out_ptr 00377 ); 00378 00379 00380 /*-----------------------------------------------------------------------------*/ 00396 /*-----------------------------------------------------------------------------*/ 00397 EXPORT_DLL extern SRM_Status_Code 00398 SRM_Matrix4x4Multiply 00399 ( 00400 const SRM_Matrix_4x4 *a_ptr, 00401 const SRM_Matrix_4x4 *b_ptr, 00402 SRM_Matrix_4x4 *result_out_ptr 00403 ); 00404 00405 00406 /*-----------------------------------------------------------------------------*/ 00422 /*-----------------------------------------------------------------------------*/ 00423 EXPORT_DLL extern SRM_Status_Code 00424 SRM_Matrix4x4Sub 00425 ( 00426 const SRM_Matrix_4x4 *a_ptr, 00427 const SRM_Matrix_4x4 *b_ptr, 00428 SRM_Matrix_4x4 *result_out_ptr 00429 ); 00430 00431 00432 /*-----------------------------------------------------------------------------*/ 00447 /*-----------------------------------------------------------------------------*/ 00448 EXPORT_DLL extern SRM_Status_Code 00449 SRM_VectorMagnitude 00450 ( 00451 const SRM_Vector_3D *vec_ptr, 00452 SRM_Long_Float *result_out_ptr 00453 ); 00454 00455 00456 /*-----------------------------------------------------------------------------*/ 00474 /*-----------------------------------------------------------------------------*/ 00475 EXPORT_DLL extern SRM_Status_Code 00476 SRM_VectorMultByScalar 00477 ( 00478 const SRM_Vector_3D *vec_ptr, 00479 SRM_Long_Float scalar, 00480 SRM_Vector_3D *result_out_ptr 00481 ); 00482 00483 00484 /*-----------------------------------------------------------------------------*/ 00499 /*-----------------------------------------------------------------------------*/ 00500 EXPORT_DLL extern SRM_Status_Code 00501 SRM_EnumNameToAxisDirection 00502 ( 00503 const char *enum_name_in_ptr, 00504 SRM_Axis_Direction *result_out_ptr 00505 ); 00506 00507 00508 /*-----------------------------------------------------------------------------*/ 00523 /*-----------------------------------------------------------------------------*/ 00524 EXPORT_DLL extern SRM_Status_Code 00525 SRM_EnumNameToBoolean 00526 ( 00527 const char *enum_name_in_ptr, 00528 SRM_Boolean *result_out_ptr 00529 ); 00530 00531 00532 /*-----------------------------------------------------------------------------*/ 00547 /*-----------------------------------------------------------------------------*/ 00548 EXPORT_DLL extern SRM_Status_Code 00549 SRM_EnumNameToCoordinateValidRegion 00550 ( 00551 const char *enum_name_in_ptr, 00552 SRM_Coordinate_Valid_Region *result_out_ptr 00553 ); 00554 00555 00556 /*-----------------------------------------------------------------------------*/ 00571 /*-----------------------------------------------------------------------------*/ 00572 EXPORT_DLL extern SRM_Status_Code 00573 SRM_EnumNameToCSCode 00574 ( 00575 const char *enum_name_in_ptr, 00576 SRM_CS_Code *result_out_ptr 00577 ); 00578 00579 00580 /*-----------------------------------------------------------------------------*/ 00595 /*-----------------------------------------------------------------------------*/ 00596 EXPORT_DLL extern SRM_Status_Code 00597 SRM_EnumNameToDSSCode 00598 ( 00599 const char *enum_name_in_ptr, 00600 SRM_DSS_Code *result_out_ptr 00601 ); 00602 00603 00604 /*-----------------------------------------------------------------------------*/ 00619 /*-----------------------------------------------------------------------------*/ 00620 EXPORT_DLL extern SRM_Status_Code 00621 SRM_EnumNameToIntervalType 00622 ( 00623 const char *enum_name_in_ptr, 00624 SRM_Interval_Type *result_out_ptr 00625 ); 00626 00627 00628 /*-----------------------------------------------------------------------------*/ 00643 /*-----------------------------------------------------------------------------*/ 00644 EXPORT_DLL extern SRM_Status_Code 00645 SRM_EnumNameToOriRepType 00646 ( 00647 const char *enum_name_in_ptr, 00648 SRM_Ori_Rep_Type *result_out_ptr 00649 ); 00650 00651 00652 /*-----------------------------------------------------------------------------*/ 00667 /*-----------------------------------------------------------------------------*/ 00668 EXPORT_DLL extern SRM_Status_Code 00669 SRM_EnumNameToORMCode 00670 ( 00671 const char *enum_name_in_ptr, 00672 SRM_ORM_Code *result_out_ptr 00673 ); 00674 00675 00676 /*-----------------------------------------------------------------------------*/ 00691 /*-----------------------------------------------------------------------------*/ 00692 EXPORT_DLL extern SRM_Status_Code 00693 SRM_EnumNameToORMTCode 00694 ( 00695 const char *enum_name_in_ptr, 00696 SRM_ORMT_Code *result_out_ptr 00697 ); 00698 00699 00700 /*-----------------------------------------------------------------------------*/ 00715 /*-----------------------------------------------------------------------------*/ 00716 EXPORT_DLL extern SRM_Status_Code 00717 SRM_EnumNameToPolarAspect 00718 ( 00719 const char *enum_name_in_ptr, 00720 SRM_Polar_Aspect *result_out_ptr 00721 ); 00722 00723 00724 /*-----------------------------------------------------------------------------*/ 00739 /*-----------------------------------------------------------------------------*/ 00740 EXPORT_DLL extern SRM_Status_Code 00741 SRM_EnumNameToRDCode 00742 ( 00743 const char *enum_name_in_ptr, 00744 SRM_RD_Code *result_out_ptr 00745 ); 00746 00747 00748 /*-----------------------------------------------------------------------------*/ 00763 /*-----------------------------------------------------------------------------*/ 00764 EXPORT_DLL extern SRM_Status_Code 00765 SRM_EnumNameToRTCode 00766 ( 00767 const char *enum_name_in_ptr, 00768 SRM_RT_Code *result_out_ptr 00769 ); 00770 00771 00772 /*-----------------------------------------------------------------------------*/ 00787 /*-----------------------------------------------------------------------------*/ 00788 EXPORT_DLL extern SRM_Status_Code 00789 SRM_EnumNameToSpatialCoordinateCode 00790 ( 00791 const char *enum_name_in_ptr, 00792 SRM_Spatial_Coordinate_Code *result_out_ptr 00793 ); 00794 00795 00796 /*-----------------------------------------------------------------------------*/ 00811 /*-----------------------------------------------------------------------------*/ 00812 EXPORT_DLL extern SRM_Status_Code 00813 SRM_EnumNameToSRFCode 00814 ( 00815 const char *enum_name_in_ptr, 00816 SRM_SRF_Code *result_out_ptr 00817 ); 00818 00819 00820 /*-----------------------------------------------------------------------------*/ 00835 /*-----------------------------------------------------------------------------*/ 00836 EXPORT_DLL extern SRM_Status_Code 00837 SRM_EnumNameToSRFParametersInfoCode 00838 ( 00839 const char *enum_name_in_ptr, 00840 SRM_SRF_Parameters_Info_Code *result_out_ptr 00841 ); 00842 00843 00844 /*-----------------------------------------------------------------------------*/ 00859 /*-----------------------------------------------------------------------------*/ 00860 EXPORT_DLL extern SRM_Status_Code 00861 SRM_EnumNameToSRFSCode 00862 ( 00863 const char *enum_name_in_ptr, 00864 SRM_SRFS_Code *result_out_ptr 00865 ); 00866 00867 00868 /*-----------------------------------------------------------------------------*/ 00883 /*-----------------------------------------------------------------------------*/ 00884 EXPORT_DLL extern SRM_Status_Code 00885 SRM_EnumNameToSRFSMAlabamaSPCSCode 00886 ( 00887 const char *enum_name_in_ptr, 00888 SRM_SRFSM_Alabama_SPCS_Code *result_out_ptr 00889 ); 00890 00891 00892 /*-----------------------------------------------------------------------------*/ 00907 /*-----------------------------------------------------------------------------*/ 00908 EXPORT_DLL extern SRM_Status_Code 00909 SRM_EnumNameToSRFSMJapanRectangularPlaneCSCode 00910 ( 00911 const char *enum_name_in_ptr, 00912 SRM_SRFSM_Japan_Rectangular_Plane_CS_Code *result_out_ptr 00913 ); 00914 00915 00916 /*-----------------------------------------------------------------------------*/ 00931 /*-----------------------------------------------------------------------------*/ 00932 EXPORT_DLL extern SRM_Status_Code 00933 SRM_EnumNameToSRFSMLambertNTFCode 00934 ( 00935 const char *enum_name_in_ptr, 00936 SRM_SRFSM_Lambert_NTF_Code *result_out_ptr 00937 ); 00938 00939 00940 /*-----------------------------------------------------------------------------*/ 00955 /*-----------------------------------------------------------------------------*/ 00956 EXPORT_DLL extern SRM_Status_Code 00957 SRM_EnumNameToSRFSMUPSCode 00958 ( 00959 const char *enum_name_in_ptr, 00960 SRM_SRFSM_UPS_Code *result_out_ptr 00961 ); 00962 00963 00964 /*-----------------------------------------------------------------------------*/ 00979 /*-----------------------------------------------------------------------------*/ 00980 EXPORT_DLL extern SRM_Status_Code 00981 SRM_EnumNameToSRFSMUTMCode 00982 ( 00983 const char *enum_name_in_ptr, 00984 SRM_SRFSM_UTM_Code *result_out_ptr 00985 ); 00986 00987 00988 /*-----------------------------------------------------------------------------*/ 01003 /*-----------------------------------------------------------------------------*/ 01004 EXPORT_DLL extern SRM_Status_Code 01005 SRM_EnumNameToSRFSMWisconsinSPCSCode 01006 ( 01007 const char *enum_name_in_ptr, 01008 SRM_SRFSM_Wisconsin_SPCS_Code *result_out_ptr 01009 ); 01010 01011 01012 /*-----------------------------------------------------------------------------*/ 01027 /*-----------------------------------------------------------------------------*/ 01028 EXPORT_DLL extern SRM_Status_Code 01029 SRM_EnumNameToSRFTCode 01030 ( 01031 const char *enum_name_in_ptr, 01032 SRM_SRFT_Code *result_out_ptr 01033 ); 01034 01035 01036 /*-----------------------------------------------------------------------------*/ 01051 /*-----------------------------------------------------------------------------*/ 01052 EXPORT_DLL extern SRM_Status_Code 01053 SRM_EnumNameToStatusCode 01054 ( 01055 const char *enum_name_in_ptr, 01056 SRM_Status_Code *result_out_ptr 01057 ); 01058 01059 01060 #ifdef __cplusplus 01061 } 01062 #endif 01063 01064 #endif
C API | Version: 4.4 - December 7, 2009 |
Copyright © 2009 SEDRIS | Docs by Doxygen 1.3.2 |