FDO .NET API Reference | Feature Data Objects |
00001 /* 00002 * Copyright (C) 2004-2006 Autodesk, Inc. 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of version 2.1 of the GNU Lesser 00006 * General Public License as published by the Free Software Foundation. 00007 * 00008 * This library is distributed in the hope that it will be useful, 00009 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00010 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00011 * Lesser General Public License for more details. 00012 * 00013 * You should have received a copy of the GNU Lesser General Public 00014 * License along with this library; if not, write to the Free Software 00015 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00016 * 00017 */ 00018 00019 00020 #pragma once 00021 00022 #include "mgIDirectPositionImp.h" 00023 00024 class FdoDirectPositionImpl; 00025 00026 BEGIN_NAMESPACE_OSGEO_GEOMETRY 00027 00028 /// \ingroup (OSGeoFDOGeometry) 00029 /// \brief 00030 /// The DirectPositionImpl class is a default implementation of IDirectPosition. 00031 /// DirectPositionImpl implements accessors from IDirectPosition, matching mutators, and simple data members. 00032 /// Assignment and exact equality operators are also provided. 00033 public __gc class DirectPositionImpl : public NAMESPACE_OSGEO_RUNTIME::Disposable, public NAMESPACE_OSGEO_GEOMETRY::IDirectPosition 00034 { 00035 public: 00036 /// \brief 00037 /// InEquality function for DirectPositionImpl. 00038 /// 00039 /// \param right 00040 /// Input envelope for comparison (right-hand-side of equation) 00041 /// 00042 /// \param left 00043 /// Input envelope for comparison (left-hand-side of equation) 00044 /// 00045 /// \return 00046 /// Returns true if all ordinates and dimensionality are not exactly equal. 00047 /// 00048 static System::Boolean op_Inequality(DirectPositionImpl *left, DirectPositionImpl *right); 00049 00050 /// \brief 00051 /// Constructs a default instance of a DirectPositionImpl object. 00052 /// 00053 /// \remarks 00054 /// Ordinate values default to System::Double::NaN. 00055 /// Dimensionality defaults to Dimensionality_XY. 00056 /// 00057 DirectPositionImpl(); 00058 00059 /// \brief 00060 /// Constructs a 2D DirectPositionImpl object from X and Y ordinates. 00061 /// 00062 /// \remarks 00063 /// Z and M ordinate values default to System::Double::NaN. 00064 /// Dimensionality is set to Dimensionality_XY. 00065 /// 00066 /// \param coordinateX 00067 /// Input X ordinate value 00068 /// \param coordinateY 00069 /// Input Y ordinate value 00070 /// 00071 DirectPositionImpl(System::Double coordinateX, System::Double coordinateY); 00072 00073 /// \brief 00074 /// Constructs a 3D DirectPositionImpl object from X, Y and Z ordinates. 00075 /// 00076 /// \remarks 00077 /// M ordinate value defaults to System::Double::NaN. 00078 /// Dimensionality is set to Dimensionality_XYZ. 00079 /// 00080 /// \param coordinateX 00081 /// Input X ordinate value 00082 /// \param coordinateY 00083 /// Input Y ordinate value 00084 /// \param coordinateZ 00085 /// Input Z ordinate value 00086 /// 00087 DirectPositionImpl(System::Double coordinateX, System::Double coordinateY, System::Double coordinateZ); 00088 00089 /// \brief 00090 /// Constructs a 4D DirectPositionImpl object from X, Y, Z and M ordinates. 00091 /// 00092 /// \remarks 00093 /// Dimensionality is set to Dimensionality_XYZ|Dimensionality_M. 00094 /// 00095 /// \param coordinateX 00096 /// Input X ordinate value 00097 /// \param coordinateY 00098 /// Input Y ordinate value 00099 /// \param coordinateZ 00100 /// Input Z ordinate value 00101 /// \param coordinateM 00102 /// Input M ordinate value 00103 /// 00104 DirectPositionImpl(System::Double coordinateX, System::Double coordinateY, System::Double coordinateZ, System::Double coordinateM); 00105 00106 /// \brief 00107 /// Constructs a copy of a DirectPositionImpl 00108 /// 00109 /// \param position 00110 /// Input position to copy 00111 /// 00112 DirectPositionImpl(DirectPositionImpl *position); 00113 00114 /// \brief 00115 /// Constructs a copy of a DirectPositionImpl 00116 /// 00117 /// \remarks 00118 /// Copies position data using only public methods of IDirectPosition, 00119 /// thus supporting conversion from any implementation of the interface. 00120 /// 00121 /// \param position 00122 /// Input position to copy 00123 /// 00124 DirectPositionImpl(NAMESPACE_OSGEO_GEOMETRY::IDirectPosition *position); 00125 00126 /// \brief 00127 /// Assignment function for DirectPositionImpl. 00128 /// 00129 /// \param left 00130 /// Input Source position to copy 00131 /// 00132 /// \param right 00133 /// Input Destination position 00134 /// 00135 static System::Void op_Assign(DirectPositionImpl *left, DirectPositionImpl *right); 00136 00137 /// \brief 00138 /// Assignment function for DirectPositionImpl from a IDirectPosition, using public methods. 00139 /// 00140 /// \param left 00141 /// Input Source position to copy 00142 /// 00143 /// \param right 00144 /// Input Destination position 00145 /// 00146 static System::Void op_Assign(DirectPositionImpl *left, IDirectPosition *right); 00147 00148 /// \brief 00149 /// Equality function for FdoDirectPositionImpl. 00150 /// 00151 /// \param obj 00152 /// Input position for comparison (right-hand-side of equation) 00153 /// 00154 /// \return 00155 /// Returns true if all ordinates and dimensionality are exactly equal. 00156 /// 00157 System::Boolean Equals(System::Object* obj); 00158 00159 /// \cond DOXYGEN-IGNORE 00160 System::Int32 GetHashCode(); 00161 /// \endcond 00162 00163 /// \brief 00164 /// Equality function for DirectPositionImpl. 00165 /// 00166 /// \param left 00167 /// Input position for comparison (left-hand-side of equation) 00168 /// 00169 /// \param right 00170 /// Input position for comparison (right-hand-side of equation) 00171 /// 00172 /// \return 00173 /// Returns true if all ordinates and dimensionality are exactly equal. 00174 /// 00175 static System::Boolean op_Equality(DirectPositionImpl *left, DirectPositionImpl *right); 00176 00177 /// \brief 00178 /// Gets the X ordinate. 00179 /// 00180 /// \return 00181 /// Returns the X ordinate; default is numeric_limits::quiet_NaN() 00182 /// 00183 __property System::Double get_X(); 00184 00185 /// \brief 00186 /// Sets the X ordinate. 00187 /// 00188 /// \param value 00189 /// Input X ordinate value 00190 /// 00191 /// \return 00192 /// Returns nothing 00193 /// 00194 __property System::Void set_X(System::Double value); 00195 00196 /// \brief 00197 /// Gets the Y ordinate. 00198 /// 00199 /// \return 00200 /// Returns the Y ordinate; default is numeric_limits::quiet_NaN() 00201 /// 00202 __property System::Double get_Y(); 00203 00204 /// \brief 00205 /// Sets the Y ordinate. 00206 /// 00207 /// \param value 00208 /// Input Y ordinate value 00209 /// 00210 /// \return 00211 /// Returns nothing 00212 /// 00213 __property System::Void set_Y(System::Double value); 00214 00215 /// \brief 00216 /// Gets the Z ordinate. 00217 /// 00218 /// \return 00219 /// Returns the Z ordinate; default is numeric_limits::quiet_NaN() 00220 /// 00221 __property System::Double get_Z(); 00222 00223 /// \brief 00224 /// Sets the Z ordinate. 00225 /// 00226 /// \param value 00227 /// Input Z ordinate value 00228 /// 00229 /// \return 00230 /// Returns nothing 00231 /// 00232 __property System::Void set_Z(System::Double value); 00233 00234 /// \brief 00235 /// Gets the M ordinate. 00236 /// 00237 /// \return 00238 /// Returns the M ordinate; default is numeric_limits::quiet_NaN() 00239 /// 00240 __property System::Double get_M(); 00241 00242 /// \brief 00243 /// Sets the M ordinate. 00244 /// 00245 /// \param value 00246 /// Input M ordinate value 00247 /// 00248 /// \return 00249 /// Returns nothing 00250 /// 00251 __property System::Void set_M(System::Double value); 00252 00253 /// \brief 00254 /// Gets the dimensionality of ordinates in this position. 00255 /// 00256 /// \remarks 00257 /// Values are from the Dimensionality enumeration. 00258 /// A return type of "Int32" is used instead of the enumeration, catering to typical use with bit masking. 00259 /// 00260 /// \return 00261 /// Returns the ordinate dimensionality 00262 /// 00263 __property System::Int32 get_Dimensionality(); 00264 00265 /// \brief 00266 /// Sets the dimensionality. 00267 /// 00268 /// \remarks 00269 /// Use values (including bitwise combinations) from the Dimensionality enumeration. 00270 /// 00271 /// \param value 00272 /// Input dimensionality value 00273 /// 00274 /// \return 00275 /// Returns nothing 00276 /// 00277 __property System::Void set_Dimensionality(System::Int32 value); 00278 00279 public: 00280 /// \brief 00281 /// Constructs an Position based on an unmanaged instance of the object 00282 /// 00283 /// \param unmanaged 00284 /// Input A Pointer to the unmanaged object. 00285 /// 00286 /// \param autoDelete 00287 /// Input Indicates if the constructed object should be automatically deleted 00288 /// once it no longer referenced. 00289 /// 00290 DirectPositionImpl(System::IntPtr unmanaged, System::Boolean autoDelete); 00291 00292 /// \cond DOXYGEN-IGNORE 00293 protected: 00294 System::Void ReleaseUnmanagedObject(); 00295 00296 public private: 00297 FdoDirectPositionImpl *GetImpObj(); 00298 /// \endcond 00299 }; 00300 END_NAMESPACE_OSGEO_GEOMETRY 00301 00302
Comments or suggestions? Send us feedback. |