- Main Page
- Related Pages
- Modules
- Classes
- Files

# IPolygon.h

Go to the documentation of this file.

    00001 #ifndef _IPOLYGON_H_
    00002 #define _IPOLYGON_H_
    00003
    00004 //
    00005 // Copyright (C) 2004-2006  Autodesk, Inc.
    00006 //
    00007 // This library is free software; you can redistribute it and/or
    00008 // modify it under the terms of version 2.1 of the GNU Lesser
    00009 // General Public License as published by the Free Software Foundation.
    00010 //
    00011 // This library is distributed in the hope that it will be useful,
    00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of
    00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    00014 // Lesser General Public License for more details.
    00015 //
    00016 // You should have received a copy of the GNU Lesser General Public
    00017 // License along with this library; if not, write to the Free Software
    00018 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
    00019 //
    00020
    00021
    00022
    00023 #ifdef _WIN32
    00024 #pragma once
    00025 #endif
    00026
    00027 #include <Geometry/ISurfaceAbstract.h>
    00028 #include <Geometry/ILinearRing.h>
    00029 #include <Common/Collection.h>
    00030
    00031 /// \brief
    00032 /// The FdoIPolygon class is a polygon Geometry type.
    00033 /// FdoIPolygon is defined by one exterior boundary and zero or more
    00034 /// interior boundaries.
    00035 /// Each of the boundaries must be a closed, simple LinearRing.
    00036 class FdoIPolygon : public FdoISurfaceAbstract
    00037 {
    00038 public:
    00039
    00040     /// \brief
    00041     /// Gets the ring defining the outer boundary.
    00042     ///
    00043     /// \return
    00044     /// Returns the exterior ring
    00045     ///
    00046     FDO_GEOM_API virtual FdoILinearRing* GetExteriorRing() const = 0;
    00047
    00048     /// \brief
    00049     /// Gets the number of interior rings.
    00050     ///
    00051     /// \return
    00052     /// Returns the number of interior rings
    00053     ///
    00054     FDO_GEOM_API virtual FdoInt32 GetInteriorRingCount() const = 0;
    00055
    00056     /// \brief
    00057     /// Gets the interior ring at the specified (zero-based) index.
    00058     ///
    00059     /// \param index
    00060     /// Input Zero-based index in the object's list of interior rings.
    00061     ///
    00062     /// \return
    00063     /// Returns the interior ring
    00064     ///
    00065     FDO_GEOM_API virtual FdoILinearRing* GetInteriorRing(
    00066         FdoInt32 index) const = 0;
    00067
    00068 protected:
    00069
    00070     /// \brief
    00071     /// Constructs a default instance.
    00072     ///
    00073     /// \return
    00074     /// Returns nothing
    00075     ///
    00076     FDO_GEOM_API FdoIPolygon() {};
    00077
    00078     /// \brief
    00079     /// Default destructor.
    00080     ///
    00081     /// \return
    00082     /// Returns nothing
    00083     ///
    00084     FDO_GEOM_API virtual ~FdoIPolygon() {};
    00085 };
    00086
    00087
    00088 /// \brief
    00089 ///  The FdoPolygonCollection class is a collection of CurvePolygon objects.
    00090 class FdoPolygonCollection : public FdoCollection<FdoIPolygon, FdoException>
    00091 {
    00092 public:
    00093     /// \brief
    00094     ///  Creates an instance of FdoPolygonCollection with no contained elements.
    00095     ///
    00096     /// \return
    00097     /// Returns an empty collection
    00098     ///
    00099     static FdoPolygonCollection* Create()
    00100     {
    00101         FdoPolygonCollection* value = new FdoPolygonCollection();
    00102         if (NULL == value)
    00103             throw FdoException::Create(FdoException::NLSGetMessage(FDO_NLSID(FDO_1_BADALLOC)));
    00104
    00105         return value;
    00106     }
    00107
    00108 protected:
    00109     void Dispose()
    00110     {
    00111         delete this;
    00112     }
    00113 };
    00114 #endif
    00115
    00116

Please send us your comment about this page