Main Page | Alphabetical List | Compound List | File List | Compound Members | File Members

srm_util.h

Go to the documentation of this file.
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