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

srm_BaseSRF3D.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 
00079 #ifndef SRM_BASESRF3D_H_INCLUDED
00080 #define SRM_BASESRF3D_H_INCLUDED
00081 
00082 #if !defined(_WIN32)
00083 #define EXPORT_DLL
00084 #elif !defined(EXPORT_DLL)
00085 #if defined(_LIB)
00086 #define EXPORT_DLL
00087 #elif defined(_USRDLL)
00088 #define EXPORT_DLL __declspec(dllexport)
00089 #else
00090 #define EXPORT_DLL __declspec(dllimport)
00091 #endif
00092 #endif /* _WIN32 && EXPORT_DLL */
00093 
00094 #include "srm.h"
00095 
00096 #ifdef __cplusplus
00097 extern "C" {
00098 #endif
00099 
00109 typedef SRM_Status_Code SRM_ChangeCoordinate3DSRF
00110 (
00111           SRM_Object_Reference         this_object,
00112     const SRM_Object_Reference         source_srf,
00113     const SRM_Coordinate3D            *source_coordinate,
00114           SRM_Coordinate3D            *target_coordinate, /* OUT */
00115           SRM_Coordinate_Valid_Region *region             /* OUT */
00116 );
00117 
00130 typedef SRM_Status_Code SRM_ChangeCoordinate3DSRFObject
00131 (
00132           SRM_Object_Reference                  this_object,
00133     const SRM_Object_Reference                  source_srf,
00134     const SRM_Coordinate3D                     *source_coordinate,
00135     const SRM_ORM_Transformation_3D_Parameters *h_st,
00136           SRM_Coordinate3D                     *target_coordinate, /* OUT */
00137           SRM_Coordinate_Valid_Region          *region             /* OUT */
00138 );
00139 
00140 
00153 typedef SRM_Status_Code SRM_ChangeCoordinate3DArraySRF
00154 (
00155           SRM_Object_Reference               this_object,
00156     const SRM_Object_Reference               source_srf,
00157     const SRM_Coordinate3D_Array            *source_coordinate_array,
00158           SRM_Coordinate3D_Array            *target_coordinate_array, /* OUT */
00159           SRM_Integer_Positive              *index,                   /* OUT */
00160           SRM_Coordinate_Valid_Region_Array *region_array             /* OUT */
00161 );
00162 
00175 typedef SRM_Status_Code SRM_ChangeCoordinate3DArraySRFObject
00176 (
00177           SRM_Object_Reference                  this_object,
00178     const SRM_Object_Reference                  source_srf,
00179     const SRM_Coordinate3D_Array               *source_coordinate_array,
00180     const SRM_ORM_Transformation_3D_Parameters *h_st,
00181           SRM_Coordinate3D_Array               *target_coordinate_array, /* OUT */
00182           SRM_Integer_Positive                 *index,                   /* OUT */
00183           SRM_Coordinate_Valid_Region_Array    *region_array             /* OUT */
00184 );
00185 
00195 typedef SRM_Status_Code SRM_ChangeDirectionSRF
00196 (
00197           SRM_Object_Reference         this_object,
00198     const SRM_Object_Reference         source_srf,
00199     const SRM_Direction               *source_direction,
00200           SRM_Direction               *target_direction, /* OUT */
00201           SRM_Coordinate_Valid_Region *ref_coord_region  /* OUT */
00202  );
00203 
00216 typedef SRM_Status_Code SRM_ChangeDirectionSRFObject
00217 (
00218           SRM_Object_Reference                  this_object,
00219     const SRM_Object_Reference                  source_srf,
00220     const SRM_Direction                        *source_direction,
00221     const SRM_ORM_Transformation_3D_Parameters *h_st,
00222           SRM_Direction                        *target_direction, /* OUT */
00223           SRM_Coordinate_Valid_Region          *ref_coord_region  /* OUT */
00224 );
00225 
00236 typedef SRM_Status_Code SRM_ChangeDirectionArraySRF
00237 (
00238           SRM_Object_Reference               this_object,
00239     const SRM_Object_Reference               source_srf,
00240     const SRM_Direction_Array               *source_direction_array,
00241           SRM_Direction_Array               *target_direction_array, /* OUT */
00242           SRM_Integer_Positive              *index,                  /* OUT */
00243           SRM_Coordinate_Valid_Region_Array *ref_coord_region_array  /* OUT */
00244 );
00245 
00259 typedef SRM_Status_Code SRM_ChangeDirectionArraySRFObject
00260 (
00261           SRM_Object_Reference                  this_object,
00262     const SRM_Object_Reference                  source_srf,
00263     const SRM_Direction_Array                  *source_direction_array,
00264     const SRM_ORM_Transformation_3D_Parameters *h_st,
00265           SRM_Direction_Array                  *target_direction_array, /* OUT */
00266           SRM_Integer_Positive                 *index,                  /* OUT */
00267           SRM_Coordinate_Valid_Region_Array    *ref_coord_region_array  /* OUT */
00268 );
00269 
00278 typedef SRM_Status_Code SRM_CreateCoordinate3D
00279 (
00280     SRM_Object_Reference  this_object,
00281     SRM_Long_Float        first_coordinate_component,
00282     SRM_Long_Float        second_coordinate_component,
00283     SRM_Long_Float        third_coordinate_component,
00284     SRM_Coordinate3D     *new_coordinate                 /* OUT */
00285 );
00286 
00287 
00297 typedef SRM_Status_Code SRM_CreateDirection
00298 (
00299           SRM_Object_Reference  this_object,
00300     const SRM_Coordinate3D     *reference_coordinate,
00301           SRM_Long_Float        first_direction_component,
00302           SRM_Long_Float        second_direction_component,
00303           SRM_Long_Float        third_direction_component,
00304           SRM_Direction        *new_direction                /* OUT */
00305 );
00306 
00324 typedef SRM_Status_Code SRM_ComputeSRFOrientation
00325 (
00326           SRM_Object_Reference  this_object,
00327     const SRM_Object_Reference  source_srf,
00328     const SRM_Coordinate3D     *src_ref_loc,
00329     const SRM_Coordinate3D     *tgt_ref_loc,
00330           SRM_Object_Reference  out_ori
00331 );
00332 
00333 
00334 /* forward declaration of SRM_LococentricEuclidean3D */
00335 typedef struct _SRM_LococentricEuclidean3D SRM_LococentricEuclidean3D;
00336 
00347 typedef SRM_Status_Code SRM_CreateLococentricEuclidean3DSRF
00348 (
00349           SRM_Object_Reference        this_object,
00350     const SRM_Coordinate3D           *lococentre,
00351     const SRM_Direction              *primary_axis,
00352     const SRM_Direction              *secondary_axis,
00353           SRM_LococentricEuclidean3D *new_lce3d_srf
00354 );
00355 
00380 typedef SRM_Status_Code SRM_TransformOrientation
00381 (
00382           SRM_Object_Reference  this_object,
00383     const SRM_Object_Reference  source_srf,
00384     const SRM_Coordinate3D     *src_ref_loc,
00385     const SRM_Object_Reference  src_ori,
00386     const SRM_Coordinate3D     *tgt_ref_loc,
00387           SRM_Object_Reference  tgt_ori
00388 );
00389 
00390 
00418 typedef SRM_Status_Code SRM_TransformOrientationCommonOrigin
00419 (
00420           SRM_Object_Reference         this_object,
00421     const SRM_Object_Reference         source_srf,
00422     const SRM_Coordinate3D            *src_ref_loc,
00423     const SRM_Object_Reference         src_ori,
00424           SRM_Coordinate3D            *tgt_ref_loc,
00425           SRM_Object_Reference         tgt_ori,
00426           SRM_Coordinate_Valid_Region *ref_coord_region
00427 );
00428 
00429 
00456 typedef SRM_Status_Code SRM_TransformVectorInBodyFrame
00457 (
00458           SRM_Object_Reference  this_object,
00459     const SRM_Object_Reference  source_srf,
00460     const SRM_Coordinate3D     *src_ref_loc,
00461     const SRM_Object_Reference  src_ori,
00462     const SRM_Vector_3D        *vec,
00463     const SRM_Coordinate3D     *tgt_ref_loc,
00464           SRM_Vector_3D        *tgt_vec
00465 );
00466 
00467 
00494 typedef SRM_Status_Code SRM_TransformVectorInBodyFrameCommonOrigin
00495 (
00496           SRM_Object_Reference         this_object,
00497     const SRM_Object_Reference         source_srf,
00498     const SRM_Coordinate3D            *src_ref_loc,
00499     const SRM_Object_Reference         src_ori,
00500     const SRM_Vector_3D               *vec,
00501           SRM_Coordinate3D            *tgt_ref_loc,
00502           SRM_Vector_3D               *tgt_vec,
00503           SRM_Coordinate_Valid_Region *ref_coord_region
00504 );
00505 
00506 
00526 typedef SRM_Status_Code SRM_TransformVector
00527 (
00528           SRM_Object_Reference  this_object,
00529     const SRM_Object_Reference  source_srf,
00530     const SRM_Coordinate3D     *src_ref_loc,
00531     const SRM_Vector_3D        *src_vec,
00532     const SRM_Coordinate3D     *tgt_ref_loc,
00533           SRM_Vector_3D        *tgt_vec
00534 );
00535 
00556 typedef SRM_Status_Code SRM_TransformVectorCommonOrigin
00557 (
00558           SRM_Object_Reference  this_object,
00559     const SRM_Object_Reference  source_srf,
00560     const SRM_Coordinate3D      *src_ref_loc,
00561     const SRM_Vector_3D         *src_vec,
00562           SRM_Coordinate3D      *tgt_ref_loc,
00563           SRM_Vector_3D         *tgt_vec,
00564           SRM_Coordinate_Valid_Region  *ref_coord_region   /* OUT */
00565 );
00566 
00567 
00572 typedef SRM_Status_Code SRM_DestroyCoordinate3D
00573 (
00574     SRM_Object_Reference this_object,
00575     SRM_Object_Reference coordinate
00576 );
00577 
00578 
00583 typedef SRM_Status_Code SRM_DestroyDirection
00584 (
00585     SRM_Object_Reference this_object,
00586     SRM_Object_Reference direction
00587 );
00588 
00589 
00597 typedef SRM_Status_Code SRM_EuclideanDistance3D
00598 (
00599           SRM_Object_Reference  this_object,
00600     const SRM_Coordinate3D     *point1_coordinate,
00601     const SRM_Coordinate3D     *point2_coordinate,
00602           SRM_Long_Float       *distance           /* OUT */
00603 );
00604 
00613 typedef SRM_Status_Code SRM_GetCoordinate3DValues
00614 (
00615        SRM_Object_Reference  this_object,
00616  const SRM_Coordinate3D     *coordinate,
00617        SRM_Long_Float       *first_coordinate_component,  /* OUT */
00618        SRM_Long_Float       *second_coordinate_component, /* OUT */
00619        SRM_Long_Float       *third_coordinate_component   /* OUT */
00620 );
00621 
00622 
00632 typedef SRM_Status_Code SRM_GetDirectionValues
00633 (
00634           SRM_Object_Reference  this_object,
00635     const SRM_Direction        *direction,
00636           SRM_Coordinate3D     *reference_coordinate,        /* OUT */
00637           SRM_Long_Float       *first_direction_component,   /* OUT */
00638           SRM_Long_Float       *second_direction_component,  /* OUT */
00639           SRM_Long_Float       *third_direction_component    /* OUT */
00640 );
00641 
00642 
00657 typedef SRM_Status_Code SRM_GetExtendedValidRegion
00658 (
00659     SRM_Object_Reference   this_object,
00660     SRM_Integer            component_identifier,
00661     SRM_Interval_Type     *interval_type,        /* OUT */
00662     SRM_Long_Float        *extended_lower_bound, /* OUT */
00663     SRM_Long_Float        *lower_bound,          /* OUT */
00664     SRM_Long_Float        *upper_bound,          /* OUT */
00665     SRM_Long_Float        *extended_upper_bound  /* OUT */
00666  );
00667 
00668 
00681 typedef SRM_Status_Code SRM_GetValidRegion
00682 (
00683     SRM_Object_Reference  this_object,
00684     SRM_Integer           component_identifier,
00685     SRM_Interval_Type    *interval_type,        /* OUT */
00686     SRM_Long_Float       *lower_bound,          /* OUT */
00687     SRM_Long_Float       *upper_bound           /* OUT */
00688  );
00689 
00699 typedef SRM_Status_Code SRM_GetNaturalSRFSMemberCode
00700 (
00701           SRM_Object_Reference   this_object,
00702     const SRM_Coordinate3D      *source_coordinate,
00703           SRM_ORM_Code           orm_code,
00704           SRM_RT_Code            rt_code,
00705           SRM_SRFS_Code          target_srfs,
00706           SRM_SRFS_Code_Info    *srfs_code_info    /* OUT */
00707 );
00708 
00717 typedef SRM_Status_Code SRM_SetCoordinate3DValues
00718 (
00719     SRM_Object_Reference  this_object,
00720     SRM_Coordinate3D     *coordinate, /* IN / OUT */
00721     SRM_Long_Float        first_coordinate_component,
00722     SRM_Long_Float        second_coordinate_component,
00723     SRM_Long_Float        third_coordinate_component
00724 );
00725 
00726 
00746 typedef SRM_Status_Code SRM_SetExtendedValidRegion
00747 (
00748     SRM_Object_Reference  this_object,
00749     SRM_Integer           component_identifier,
00750     SRM_Interval_Type     interval_type,
00751     SRM_Long_Float        extended_lower_bound,
00752     SRM_Long_Float        lower_bound,
00753     SRM_Long_Float        upper_bound,
00754     SRM_Long_Float        extended_upper_bound
00755  );
00756 
00757 
00773 typedef SRM_Status_Code SRM_SetValidRegion
00774 (
00775     SRM_Object_Reference this_object,
00776     SRM_Integer          component_identifier,
00777     SRM_Interval_Type    interval_type,
00778     SRM_Long_Float       lower_bound,
00779     SRM_Long_Float       upper_bound
00780 );
00781 
00782 #ifdef __cplusplus
00783 }
00784 #endif
00785 #endif /* #ifndef/define/endif for SRM_BASESRF3D_H_INCLUDED */

C API Version: 4.4 - December 7, 2009
Copyright © 2009 SEDRIS Docs by Doxygen 1.3.2