00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaLayerHeader.h 00004 // 00005 // This file contains the definition for the oaLayerHeader class and its public 00006 // supporting classes. The oaLayerHeader class implements an object that holds 00007 // information about a particular layer and the set of figures that use it in a 00008 // design database. The set of oaLayerHeaders in a design represent the set of 00009 // individual layers currently in use. 00010 // 00011 // ***************************************************************************** 00012 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00013 // Integration Initiative, this material may not be copied, modified, 00014 // re-published, uploaded, executed, or distributed in any way, in any medium, 00015 // in whole or in part, without prior written permission from Cadence. 00016 // 00017 // Copyright 2002-2005 Cadence Design Systems, Inc. 00018 // All Rights Reserved. 00019 // 00020 // $Author: icftcm $ 00021 // $Revision: #1 $ 00022 // $Date: 2010/08/09 $ 00023 // $State: Exp $ 00024 // ***************************************************************************** 00025 // ***************************************************************************** 00026 00027 00028 00029 #if !defined(oaLayerHeader_P) 00030 #define oaLayerHeader_P 00031 00032 00033 00034 // ***************************************************************************** 00035 // Nested includes 00036 // ***************************************************************************** 00037 #include "oaBlock.h" 00038 00039 00040 00041 // ***************************************************************************** 00042 // Declare and define types in the OpenAccess namespace. 00043 // ***************************************************************************** 00044 BEGIN_OA_NAMESPACE 00045 00046 00047 00048 // ***************************************************************************** 00049 // oaLayerHeader 00050 // ***************************************************************************** 00051 class OA_DESIGN_DLL_API oaLayerHeader : public oaBlockObject { 00052 public: 00053 static oaLayerHeader *find(const oaBlock *block, 00054 oaLayerNum layerNum); 00055 00056 oaLayer *getLayer() const; 00057 oaLayerNum getLayerNum() const; 00058 void getSteinerBBox(oaBox &bBox) const; 00059 void getBlockageBBox(oaBox &bBox) const; 00060 void getGuideBBox(oaBox &bBox) const; 00061 00062 oaCollection<oaSteiner, oaLayerHeader> getSteiners() const; 00063 oaCollection<oaBlockage, oaLayerHeader> getBlockages() const; 00064 oaCollection<oaGuide, oaLayerHeader> getGuides(oaUInt4 filterFlags 00065 = oacGuideIterBeginAndEndLayers) const; 00066 oaCollection<oaLPPHeader, oaLayerHeader> getLPPHeaders() const; 00067 00068 oaBoolean isBound() const; 00069 00070 enum {dtIndex = oacLayerHeaderDataType}; 00071 }; 00072 00073 00074 00075 // ***************************************************************************** 00076 // oaLayerHeaderArray 00077 // ***************************************************************************** 00078 class OA_DESIGN_DLL_API oaLayerHeaderArray : public oaArray<oaLayerHeader*> { 00079 public: 00080 oaLayerHeaderArray(oaUInt4 sizeIn = 0); 00081 }; 00082 00083 00084 00085 // ***************************************************************************** 00086 // Design Traits. 00087 // ***************************************************************************** 00088 template<> 00089 class oaTraits<oaLayerHeader> { 00090 public: 00091 typedef oaBlockObject parentType; 00092 typedef oaLayerHeaderModTypeEnum modTypeType; 00093 enum {domain = oacBlockDomain}; 00094 enum {dbType = oacDesignDBType}; 00095 enum {isMultiDomain = false}; 00096 enum {dtIndex = oacLayerHeaderDataType}; 00097 enum {isConcrete = true}; 00098 enum {objectTypeEnumVal = oacLayerHeaderType}; 00099 enum {dataTypeEnumVal = oacLayerHeaderDataType}; 00100 }; 00101 00102 00103 00104 END_OA_NAMESPACE 00105 00106 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.