FDO API Reference | Feature Data Objects |
00001 #ifndef _GEOMETRYSTREAMWRITER_H_ 00002 #define _GEOMETRYSTREAMWRITER_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 <FdoCommon.h> 00028 #include <Geometry/IDirectPosition.h> 00029 #include <Geometry/GeometryStream/GeometryStreamReader.h> 00030 #include <Geometry/ILinearRing.h> 00031 00032 class FdoGeometryStreamFactory; // forward declare 00033 00034 /// \brief 00035 /// The FdoGeometryStreamWriter class is a writer for geometric data (abstract). The destination for the data is defined by the implementation. 00036 /// FdoGeometryStreamWriter is a helper type and does not inherit from FdoIGeometry. 00037 class FdoGeometryStreamWriter /* Abstract */ : public FdoIDisposable 00038 { 00039 public: 00040 00041 /// \brief 00042 /// Gets a reader of data on this object's stream. 00043 /// 00044 /// \return 00045 /// Returns a Geometry stream reader 00046 /// 00047 FDO_GEOM_API virtual FdoGeometryStreamReader* GetReader() = 0; 00048 00049 /// \brief 00050 /// Writes one number as a "double" into the stream. 00051 /// 00052 /// \param value 00053 /// Input Data value to write into the stream. 00054 /// 00055 /// \return 00056 /// Returns nothing 00057 /// 00058 FDO_GEOM_API virtual void WriteDouble( 00059 double value) = 0; 00060 00061 /// \brief 00062 /// Writes one number as a "FdoInt32" into the stream. 00063 /// 00064 /// \param value 00065 /// Input Data value to write into the stream. 00066 /// 00067 /// \return 00068 /// Returns nothing 00069 /// 00070 FDO_GEOM_API virtual void WriteInt( 00071 FdoInt32 value) = 0; 00072 00073 /// \brief 00074 /// Writes one byte into the stream. 00075 /// 00076 /// \param value 00077 /// Input Data value to write into the stream. 00078 /// 00079 /// \return 00080 /// Returns nothing 00081 /// 00082 FDO_GEOM_API virtual void WriteByte( 00083 FdoByte value) = 0; 00084 00085 /// \brief 00086 /// Writes a geometric position into the stream. The position's dimension is 00087 /// taken from the position, itself. 00088 /// 00089 /// \param value 00090 /// Input Data value to write into the stream. 00091 /// 00092 /// \return 00093 /// Returns nothing 00094 /// 00095 FDO_GEOM_API virtual void WriteDirectPosition( 00096 FdoIDirectPosition * value) = 0; 00097 00098 /// \brief 00099 /// Gets a factory object that can create more streams of the same implementation type as this object. 00100 /// 00101 /// \return 00102 /// Returns A Geometry stream factory 00103 /// 00104 FDO_GEOM_API virtual FdoGeometryStreamFactory * GetFactory() = 0; 00105 00106 protected: 00107 00108 /// \brief 00109 /// Constructs a default instance. 00110 /// 00111 /// \return 00112 /// Returns nothing 00113 /// 00114 FDO_GEOM_API FdoGeometryStreamWriter() {}; 00115 00116 /// \brief 00117 /// Default destructor. 00118 /// 00119 /// \return 00120 /// Returns nothing 00121 /// 00122 FDO_GEOM_API virtual ~FdoGeometryStreamWriter() {}; 00123 }; 00124 #endif 00125 00126
Comments or suggestions? Send us feedback. |