00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaDerivedLayer.h 00004 // 00005 // This file contains the definition for the oaDerivedLayer class. The 00006 // oaDerivedLayer class defines a derived layer, which is formed from the 00007 // combination of one or two layers, a layer operation, a derived layer 00008 // definition and derived layer parameters. 00009 // 00010 // ***************************************************************************** 00011 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00012 // Integration Initiative, this material may not be copied, modified, 00013 // re-published, uploaded, executed, or distributed in any way, in any medium, 00014 // in whole or in part, without prior written permission from Cadence. 00015 // 00016 // Copyright 2002-2005 Cadence Design Systems, Inc. 00017 // All Rights Reserved. 00018 // 00019 // $Author: icftcm $ 00020 // $Revision: #1 $ 00021 // $Date: 2010/08/09 $ 00022 // $State: Exp $ 00023 // ***************************************************************************** 00024 // ***************************************************************************** 00025 00026 00027 00028 #if !defined(oaDerivedLayer_P) 00029 #define oaDerivedLayer_P 00030 00031 00032 00033 // ***************************************************************************** 00034 // Nested includes 00035 // ***************************************************************************** 00036 #include "oaLayer.h" 00037 #include "oaDerivedLayerParam.h" 00038 #include "oaDerivedLayerDef.h" 00039 00040 00041 00042 // ***************************************************************************** 00043 // Declare and define types in the OpenAccess namespace. 00044 // ***************************************************************************** 00045 BEGIN_OA_NAMESPACE 00046 00047 00048 00049 // ***************************************************************************** 00050 // oaDerivedLayer 00051 // ***************************************************************************** 00052 class OA_TECH_DLL_API oaDerivedLayer : public oaLayer { 00053 public: 00054 static oaDerivedLayer *create(oaLayer *layer1, 00055 oaLayer *layer2, 00056 oaLayerOp operation, 00057 const oaString &name, 00058 oaLayerNum number); 00059 static oaDerivedLayer *create(oaTech *tech, 00060 oaLayer *layer1, 00061 oaLayer *layer2, 00062 oaLayerOp operation, 00063 const oaString &name, 00064 oaLayerNum number); 00065 static oaDerivedLayer *create(oaTech *tech, 00066 const oaLayer *layer, 00067 const oaDerivedLayerDef *def, 00068 const oaString &name, 00069 oaLayerNum number, 00070 const oaDerivedLayerParamArray *params = NULL); 00071 static oaDerivedLayer *create(oaTech *tech, 00072 const oaLayer *layer1, 00073 const oaLayer *layer2, 00074 const oaDerivedLayerDef *def, 00075 const oaString &name, 00076 oaLayerNum number, 00077 const oaDerivedLayerParamArray *params = NULL); 00078 00079 static oaDerivedLayer *find(const oaTech *tech, 00080 const oaString &name); 00081 static oaDerivedLayer *find(const oaTech *tech, 00082 const oaString &name, 00083 oaBoolean local); 00084 static oaDerivedLayer *find(const oaTech *tech, 00085 oaLayerNum number); 00086 static oaDerivedLayer *find(const oaTech *tech, 00087 oaLayerNum number, 00088 oaBoolean local); 00089 static oaDerivedLayer *find(const oaTech *tech, 00090 oaLayerNum layerNum, 00091 const oaDerivedLayerDef *def, 00092 const oaDerivedLayerParamArray *params = NULL, 00093 oaBoolean local = false); 00094 static oaDerivedLayer *find(const oaTech *tech, 00095 oaLayerNum layer1Num, 00096 oaLayerNum layer2Num, 00097 const oaDerivedLayerDef *def, 00098 const oaDerivedLayerParamArray *params = NULL, 00099 oaBoolean local = false); 00100 static oaDerivedLayer *find(const oaLayer *layer1, 00101 const oaLayer *layer2, 00102 oaLayerOp operation); 00103 00104 oaLayer *getLayer1() const; 00105 oaLayer *getLayer2() const; 00106 oaLayerNum getLayer1Num() const; 00107 oaLayerNum getLayer2Num() const; 00108 oaLayerOp getOperation() const; 00109 00110 oaDerivedLayerDef *getDef() const; 00111 void getParams(oaDerivedLayerParamArray ¶ms) const; 00112 00113 oaBoolean hasParams() const; 00114 00115 void setParams(const oaDerivedLayerParamArray ¶ms); 00116 }; 00117 00118 00119 00120 // ***************************************************************************** 00121 // oaTech traits 00122 // ***************************************************************************** 00123 template<> 00124 class oaTraits<oaDerivedLayer> { 00125 public: 00126 typedef oaLayerModTypeEnum modTypeType; 00127 typedef oaLayer parentType; 00128 enum {dtIndex = oacLayerDataType}; 00129 enum {dataTypeEnumVal = oacLayerDataType}; 00130 enum {dbType = oacTechDBType}; 00131 enum {domain = oacNoDomain}; 00132 enum {isMultiDomain = false}; 00133 enum {isConcrete = true}; 00134 enum {objectTypeEnumVal = oacDerivedLayerType}; 00135 }; 00136 00137 00138 00139 END_OA_NAMESPACE 00140 00141 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.