FDO .NET API Reference Feature Data Objects

mgDirectPositionImpl.h

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