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

Orientation.h

Go to the documentation of this file.
00001 
00005 // SRM SDK Release 4.1.2 - July 1, 2009
00006 
00007 // - SRM spec. 4.1
00008 
00009 /*
00010  *                             NOTICE
00011  * 
00012  * This software is provided openly and freely for use in representing and
00013  * interchanging environmental data & databases.
00014  * 
00015  * This software was developed for use by the United States Government with
00016  * unlimited rights.  The software was developed under contract
00017  * DASG60-02-D-0006 TO-193 by Science Applications International Corporation.
00018  * The software is unclassified and is deemed as Distribution A, approved
00019  * for Public Release.
00020  * 
00021  * Use by others is permitted only upon the ACCEPTANCE OF THE TERMS AND
00022  * CONDITIONS, AS STIPULATED UNDER THE FOLLOWING PROVISIONS:
00023  * 
00024  *    1. Recipient may make unlimited copies of this software and give
00025  *       copies to other persons or entities as long as the copies contain
00026  *       this NOTICE, and as long as the same copyright notices that
00027  *       appear on, or in, this software remain.
00028  * 
00029  *    2. Trademarks. All trademarks belong to their respective trademark
00030  *       holders.  Third-Party applications/software/information are
00031  *       copyrighted by their respective owners.
00032  * 
00033  *    3. Recipient agrees to forfeit all intellectual property and
00034  *       ownership rights for any version created from the modification
00035  *       or adaptation of this software, including versions created from
00036  *       the translation and/or reverse engineering of the software design.
00037  * 
00038  *    4. Transfer.  Recipient may not sell, rent, lease, or sublicense
00039  *       this software.  Recipient may, however enable another person
00040  *       or entity the rights to use this software, provided that this
00041  *       AGREEMENT and NOTICE is furnished along with the software and
00042  *       /or software system utilizing this software.
00043  * 
00044  *       All revisions, modifications, created by the Recipient, to this
00045  *       software and/or related technical data shall be forwarded by the 
00046  *       Recipient to the Government at the following address:
00047  * 
00048  *         SMDC
00049  *         Attention SEDRIS (TO193) TPOC
00050  *         P.O. Box 1500
00051  *         Hunstville, AL  35807-3801
00052  * 
00053  *         or via electronic mail to:  [email protected]
00054  * 
00055  *    5. No Warranty. This software is being delivered to you AS IS
00056  *       and there is no warranty, EXPRESS or IMPLIED, as to its use
00057  *       or performance.
00058  * 
00059  *       The RECIPIENT ASSUMES ALL RISKS, KNOWN AND UNKNOWN, OF USING
00060  *       THIS SOFTWARE.  The DEVELOPER EXPRESSLY DISCLAIMS, and the
00061  *       RECIPIENT WAIVES, ANY and ALL PERFORMANCE OR RESULTS YOU MAY
00062  *       OBTAIN BY USING THIS SOFTWARE OR DOCUMENTATION.  THERE IS
00063  *       NO WARRANTY, EXPRESS OR, IMPLIED, AS TO NON-INFRINGEMENT OF
00064  *       THIRD PARTY RIGHTS, MERCHANTABILITY, OR FITNESS FOR ANY
00065  *       PARTICULAR PURPOSE.  IN NO EVENT WILL THE DEVELOPER, THE
00066  *       UNITED STATES GOVERNMENT OR ANYONE ELSE ASSOCIATED WITH THE
00067  *       DEVELOPMENT OF THIS SOFTWARE BE HELD LIABLE FOR ANY CONSEQUENTIAL,
00068  *       INCIDENTAL OR SPECIAL DAMAGES, INCLUDING ANY LOST PROFITS
00069  *       OR LOST SAVINGS WHATSOEVER.
00070  */
00071 
00072 // SRM_OTHERS_GOES_HERE
00073 
00074 // $Id: Orientation.h,v 1.11.1.5 2008/11/16 22:07:34 worleym Exp $
00075 
00076 #ifndef _Orientation_h
00077 #define _Orientation_h
00078 
00079 #if !defined(_WIN32)
00080 #define EXPORT_SRM_CPP_DLL
00081 #elif defined(BUILD_SRM_CPP) /* SRM CPP Case */
00082 #if !defined(EXPORT_SRM_CPP_DLL)
00083 #if defined(_LIB)
00084 #define EXPORT_SRM_CPP_DLL
00085 #elif defined(_USRDLL)
00086 #define EXPORT_SRM_CPP_DLL __declspec(dllexport)
00087 #else
00088 #define EXPORT_SRM_CPP_DLL __declspec(dllimport)
00089 #endif
00090 #endif
00091 #else /* SRM C Case */
00092 #define EXPORT_SRM_CPP_DLL
00093 #endif /* _WIN32 && EXPORT_DLL */
00094 
00095 #include "BaseSRF.h" 
00096 #include "Exception.h"
00097 
00098 namespace srm
00099 {
00104 class EXPORT_SRM_CPP_DLL Orientation
00105 {
00106 public:
00109     BaseSRF *getSRF() const
00110     {
00111         return _srf;
00112     }
00113 
00117     void getRefCoord( Coord3D &coord ) const;
00118 
00121     void getMatrix( SRM_Matrix_3x3 mat ) const;
00122 
00126     void getDirectionComp1( Direction &dir ) const;
00127 
00131     void getDirectionComp2( Direction &dir ) const;
00132 
00136     void getDirectionComp3( Direction &dir ) const;
00137 
00142     void getDirectionComp( SRM_Integer index, Direction &dir ) const;
00143 
00147     void setDirectionComp( const Direction &dir1,
00148                            const Direction &dir2,
00149                            const Direction &dir3 );
00150 
00155     void setDirectionComp( const SRM_Integer index,
00156                            const Direction   &dir );
00157 
00160     void setMatrix( const SRM_Matrix_3x3 mat );
00161 
00164     bool isEqual( const Orientation &ori ) const;
00165 
00168     bool operator==(const Orientation & rhs) const;
00169 
00172     Orientation* makeCopy() const;
00173 
00174 protected:
00175     friend class BaseSRF_3D;
00176 
00180     Orientation( BaseSRF *srf,
00181                  const SRM_Vector_3D ref_coord,
00182                  const SRM_Matrix_3x3 matrix );
00183 
00186     virtual ~Orientation();
00187 
00188     Orientation &operator =( const Orientation & ) { return *this; } 
00189 
00192     BaseSRF *_srf;
00195     SRM_Vector_3D _ref_coord;
00198     SRM_Matrix_3x3 _mat;
00199 };
00200 
00201 } // namespace srm
00202 
00203 #endif // _Orientation_h
00204 

Spatial Reference Model C++ API Version 4.1.2 - 1 Jul 2009
Copyright © 2009 SEDRIS Docs by Doxygen 1.3.2