FDO .NET API Reference Feature Data Objects

mgIEnvelopeImp.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 #pragma once
00020 
00021 #include "mgIEnvelope.h"
00022 
00023 class FdoIEnvelope;
00024 
00025 BEGIN_NAMESPACE_OSGEO_GEOMETRY
00026 
00027 /// \ingroup (OSGeoFDOGeometry)
00028 /// \brief
00029 /// The IEnvelopeImp class is a three-dimensional, axis-aligned box.  This is a
00030 /// helper type for Geometries, and does not itself inherit from
00031 /// IGeometry.
00032 /// \remarks
00033 /// This type is typically used to record the "extents" of a shape, also
00034 /// known in 2 dimensions as an MBR ("Minimum Bounding Rectangle").
00035 /// The box may be initially empty, meaning that no dimensions have an
00036 /// assigned value. Each individual extent may be unassigned, in which case using its
00037 /// accessor will return numeric_limits::quiet_NaN().
00038 public __gc class IEnvelopeImp : public NAMESPACE_OSGEO_RUNTIME::Disposable, public NAMESPACE_OSGEO_GEOMETRY::IEnvelope
00039 {
00040 public:
00041     /// \brief
00042     /// Constructs an IEnvelopeImp managed object based on an unmanaged instance of the object
00043     /// 
00044     /// \param unmanaged 
00045     /// Input A Pointer to the unmanaged object.
00046     /// 
00047     /// \param autoDelete 
00048     /// Input Indicates if the constructed object should be automatically deleted 
00049     /// once it no longer referenced.
00050     /// 
00051     IEnvelopeImp(System::IntPtr unmanaged, System::Boolean autoDelete);
00052 
00053 /// \cond DOXYGEN-IGNORE
00054 protected:
00055     System::Void ReleaseUnmanagedObject();
00056 /// \endcond
00057 
00058 public:
00059     /// \brief
00060     /// Gets the minimum X coordinate value.
00061     /// 
00062     /// \remarks
00063     /// This is the smallest X ordinate value for the envelope, regardless
00064     /// of the sense of the axes.  In a conventional right-handed system,
00065     /// this would be the X coordinate for the point in the rear, lower-left
00066     /// corner of the envelope.
00067     /// 
00068     /// \return
00069     /// Returns the miniumum X ordinate; numeric_limits::quiet_NaN() by default
00070     /// 
00071     __property System::Double get_MinX();
00072 
00073     /// \brief
00074     /// Gets the minimum Y coordinate value.
00075     /// 
00076     /// \remarks
00077     /// This is the smallest Y ordinate value for the envelope, regardless
00078     /// of the sense of the axes.  In a conventional right-handed system,
00079     /// this would be the Y coordinate for the point in the rear, lower-left
00080     /// corner of the envelope.
00081     /// 
00082     /// \return
00083     /// Returns the miniumum Y ordinate; numeric_limits::quiet_NaN() by default
00084     /// 
00085     __property System::Double get_MinY();
00086 
00087     /// \brief
00088     /// Gets the minimum Z coordinate value.
00089     /// 
00090     /// \remarks
00091     /// This is the smallest Z ordinate value for the envelope, regardless
00092     /// of the sense of the axes.  In a conventional right-handed system,
00093     /// this would be the Z coordinate for the point in the rear, lower-left
00094     /// corner of the envelope.
00095     /// 
00096     /// \return
00097     /// Returns the miniumum Z ordinate; numeric_limits::quiet_NaN() by default
00098     /// 
00099     __property System::Double get_MinZ();
00100 
00101     /// \brief
00102     /// Gets the maximum X coordinate value.
00103     /// 
00104     /// \remarks
00105     /// This is the largest X ordinate value for the envelope, regardless
00106     /// of the sense of the axes.  In a conventional right-handed system,
00107     /// this would be the X coordinate for the point in the front, upper-right
00108     /// corner of the envelope.
00109     /// 
00110     /// \return
00111     /// Returns the maxiumum X ordinate; numeric_limits::quiet_NaN() by default
00112     /// 
00113     __property System::Double get_MaxX();
00114 
00115     /// \brief
00116     /// Gets the maximum Y coordinate value.
00117     /// 
00118     /// \remarks
00119     /// This is the largest Y ordinate value for the envelope, regardless
00120     /// of the sense of the axes.  In a conventional right-handed system,
00121     /// this would be the Y coordinate for the point in the front, upper-right
00122     /// corner of the envelope.
00123     /// 
00124     /// \return
00125     /// Returns the maxiumum Y ordinate; numeric_limits::quiet_NaN() by default
00126     /// 
00127     __property System::Double get_MaxY();
00128 
00129     /// \brief
00130     /// Gets the maximum Z coordinate value.
00131     /// 
00132     /// \remarks
00133     /// This is the largest Z ordinate value for the envelope, regardless
00134     /// of the sense of the axes.  In a conventional right-handed system,
00135     /// this would be the Z coordinate for the point in the front, upper-right
00136     /// corner of the envelope.
00137     /// 
00138     /// \return
00139     /// Returns the maxiumum Z ordinate; numeric_limits::quiet_NaN() by default
00140     /// 
00141     __property System::Double get_MaxZ();
00142 
00143     /// \brief
00144     /// Indicates whether the envelope's extents are set.
00145     /// 
00146     /// \return
00147     /// Returns 'true' if none of the X, Y and Z extents have been set; 'false' otherwise
00148     /// 
00149     __property System::Boolean get_IsEmpty();
00150 
00151 public private:
00152     FdoIEnvelope *GetImpObj();
00153 };
00154 
00155 END_NAMESPACE_OSGEO_GEOMETRY
00156 
00157 

Comments or suggestions? Send us feedback.