FDO API Reference | Feature Data Objects |
00001 #ifndef _FDOTOPOGEOMETRYPROPERTYDEFINITION_H_ 00002 #define _FDOTOPOGEOMETRYPROPERTYDEFINITION_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 #ifdef _WIN32 00022 #pragma once 00023 #endif 00024 00025 #include <FdoStd.h> 00026 #include <Fdo/Schema/GeometricPropertyDefinition.h> 00027 00028 /// \brief 00029 /// FdoTopoGeometryPropertyDefinition derives from 00030 /// FdoGeometricPropertyDefinition, but it has behavior of both geometry and 00031 /// fixed association. It can be used to relate an application-domain feature 00032 /// class (other than a topological primitive class) to a topology. One can use 00033 /// the short form TopoGeometry to refer to these properties. Values of this 00034 /// property can be used: 00035 /// <ul> 00036 /// <li> as spatial geometries; use FdoIFeatureReader::GetGeometry(). 00037 /// <li> to gain access to relationships to underlying features, including 00038 /// topology primitives, similar to Association Properties; e.g. use 00039 /// FdoIFeatureReader::GetObject() to retrieve, and associated feature 00040 /// identifiers to insert/update. 00041 /// </ul> 00042 /// \note 00043 /// This Help topic is provided for informational use only. There is 00044 /// no interface or support provided. Autodesk reserves the right to change 00045 /// the software related to the content herein. 00046 class FdoTopoGeometryPropertyDefinition : public FdoGeometricPropertyDefinition 00047 { 00048 public: 00049 FdoTopoGeometryPropertyDefinition( 00050 FdoString * name, 00051 FdoString * description, 00052 FdoString * topologyName, 00053 bool system = false 00054 ); 00055 00056 /// Get the name of the topology to which this property belongs. 00057 FdoString * GetTopologyName(); 00058 00059 /// Set the name of the topology to which this property belongs. The 00060 /// referenced topology must exist. 00061 void SetTopologyName( 00062 FdoString * topologyName 00063 ); 00064 00065 /// Gets the topo geometry property definition on which the current topo 00066 /// geometry property depends. If the current property is not in a topology 00067 /// hierarchy, then null is returned. 00068 FdoTopoGeometryPropertyDefinition * GetDependsOnTopoGeometry(); 00069 00070 /// Set the top geometry property on which the current topo geometry 00071 /// property depends. This is set only if the current topo geometry property 00072 /// is in a topology hierarchy. Set it to null (the default) to indicate 00073 /// that the current property is not in a topology hierarchy. 00074 void SetDependsOnTopoGeometry( 00075 FdoTopoGeometryPropertyDefinition * dependsOnTopoGeometry 00076 ); 00077 00078 /// \cond DOXYGEN-IGNORE 00079 00080 /// Public non-API functions for XML support 00081 00082 /// Initialize the class from its XML attributes 00083 virtual void InitFromXml(const FdoString* classTypeName, FdoSchemaXmlContext* pContext, FdoXmlAttributeCollection* attrs); 00084 virtual void InitFromXml(FdoSchemaXmlContext* pContext, FdoXmlAttributeCollection* attrs); 00085 00086 /// Handle sub-elements such as properties 00087 /// Element start 00088 virtual FdoXmlSaxHandler* XmlStartElement( 00089 FdoXmlSaxContext* context, 00090 FdoString* uri, 00091 FdoString* name, 00092 FdoString* qname, 00093 FdoXmlAttributeCollection* atts 00094 ); 00095 /// Element end 00096 virtual FdoBoolean XmlEndElement( 00097 FdoXmlSaxContext* context, 00098 FdoString* uri, 00099 FdoString* name, 00100 FdoString* qname 00101 ); 00102 00103 /// Serialize this class to XML. 00104 virtual void _writeXml( FdoSchemaXmlContext* pContext ); 00105 00106 protected: 00107 /// The name of the related topology. 00108 FdoString * topologyName; 00109 00110 FdoTopoGeometryPropertyDefinition * dependsOnTopoGeometry; 00111 00112 /// \brief 00113 /// Dispose this object. 00114 /// 00115 /// \return 00116 /// Returns nothing 00117 /// 00118 virtual void Dispose (); 00119 00120 /// Hide default constructor to ensure that it cannot be used. 00121 FdoTopoGeometryPropertyDefinition() {}; 00122 virtual ~FdoTopoGeometryPropertyDefinition(); 00123 00124 /// FdoFeatureSchema::RejectChanges() support 00125 virtual void _StartChanges(); 00126 virtual void _BeginChangeProcessing(); 00127 virtual void _AcceptChanges(); 00128 virtual void _RejectChanges(); 00129 virtual void _EndChangeProcessing(); 00130 /// \endcond 00131 }; 00132 00133 00134 00135 #endif /* _FDOTOPOGEOMETRYPROPERTYDEFINITION_H_ */ 00136 00137
Comments or suggestions? Send us feedback. |