00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaConstraintParamDef.h 00004 // 00005 // This file contains the definitions for the following classes: 00006 // oaConstraintParamType 00007 // oaDistanceMeasureType 00008 // oaWidthLengthTableType 00009 // oaAlignmentype 00010 // oaSpacingDirectionType 00011 // oaConstraintParamDef 00012 // 00013 // ***************************************************************************** 00014 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00015 // Integration Initiative, this material may not be copied, modified, 00016 // re-published, uploaded, executed, or distributed in any way, in any medium, 00017 // in whole or in part, without prior written permission from Cadence. 00018 // 00019 // Copyright 2002-2005 Cadence Design Systems, Inc. 00020 // All Rights Reserved. 00021 // 00022 // $Author: icftcm $ 00023 // $Revision: #2 $ 00024 // $Date: 2010/10/18 $ 00025 // $State: Exp $ 00026 // ***************************************************************************** 00027 // ***************************************************************************** 00028 00029 00030 00031 #if !defined(oaConstraintParamDef_P) 00032 #define oaConstraintParamDef_P 00033 00034 00035 00036 // ***************************************************************************** 00037 // Nested includes 00038 // ***************************************************************************** 00039 #include "oaSessionObject.h" 00040 00041 00042 00043 // ***************************************************************************** 00044 // Declare and define types in the OpenAccess namespace. 00045 // ***************************************************************************** 00046 BEGIN_OA_NAMESPACE 00047 00048 00049 00050 // ***************************************************************************** 00051 // oaConstraintParamTypeEnum 00052 // ***************************************************************************** 00053 #define oavNumConstraintParamTypes 100 00054 00055 enum oaConstraintParamTypeEnum { 00056 oacDistanceConstraintParamType = 0, 00057 oacFrequencyConstraintParamType = 1, 00058 oacLengthConstraintParamType = 2, 00059 oacNumCutsConstraintParamType = 3, 00060 oacWidthConstraintParamType = 4, 00061 oacLengthSumConstraintParamType = 5, 00062 oacLowerLayerConstraintParamType = 6, 00063 oacUpperLayerConstraintParamType = 7, 00064 oacCoincidentAllowedParamType = 8, 00065 oacWidthLengthTableTypeConstraintParamType = 9, 00066 oacDistanceMeasureTypeConstraintParamType = 10, 00067 oacCountConstraintParamType = 11, 00068 oacParallelEdgeSpaceConstraintParamType = 12, 00069 oacParallelEdgeWithinConstraintParamType = 13, 00070 oacMaxLengthConstraintParamType = 14, 00071 oacMaxEdgeCountConstraintParamType = 15, 00072 oacMinNumCutsConstraintParamType = 16, 00073 oacAntennaAreaFactorConstraintParamType = 17, 00074 oacAntennaDiffPlusFactorConstraintParamType = 18, 00075 oacAntennaDiffMinusFactorConstraintParamType = 19, 00076 oacAntennaDiffAreaReduceFactorConstraintParamType = 20, 00077 oacAntennaCumRoutingPlusCutConstraintParamType = 21, 00078 oacAlignmentTypeConstraintParamType = 22, 00079 oacEndOfLineSpaceConstraintParamType = 23, 00080 oacSpacingDirectionConstraintParamType = 24, 00081 oacDistanceWithinConstraintParamType = 25, 00082 oacNotchLengthConstraintParamType = 26, 00083 oacNotchSpacingConstraintParamType = 27, 00084 oacNotchWidthConstraintParamType = 28, 00085 oacCutDistanceConstraintParamType = 29, 00086 oacNoSharedEdgeConstraintParamType = 30, 00087 oacObsoleteConstraintParamType31 = 31, 00088 oacCenterToCenterConstraintParamType = 32, 00089 oacAreaConstraintParamType = 33, 00090 oacStackConstraintParamType = 34, 00091 oacNoSingleCutViaConstraintParamType = 35, 00092 oacConnectivityTypeConstraintParamType = 36, 00093 oacPGNetConstraintParamType = 37, 00094 oacExceptSamePGNetConstraintParamType = 38, 00095 oacAboveOnlyConstraintParamType = 39, 00096 oacAllCutsConstraintParamType = 40, 00097 oacClassNameConstraintParamType = 41, 00098 oacCutClassCenterToCenterConstraintParamType = 42, 00099 oacCutClassConstraintParamType = 43, 00100 oacCutClassListConstraintParamType = 44, 00101 oacCutToMetalSpacingConstraintParamType = 45, 00102 oacEnclosedCutConstraintParamType = 46, 00103 oacEnclosedDistanceConstraintParamType = 47, 00104 oacEndOfLinePerpWidthConstraintParamType = 48, 00105 oacEndOfLineWidthConstraintParamType = 49, 00106 oacEndToEndSpacingConstraintParamType = 50, 00107 oacEqualRectWidthConstraintParamType = 51, 00108 oacExactAlignedConstraintParamType = 52, 00109 oacExactParallelRunLengthConstraintParamType = 53, 00110 oacExactSpacingConstraintParamType = 54, 00111 oacExceptConnectivityTypeConstraintParamType = 55, 00112 oacExceptEdgeLengthConstraintParamType = 56, 00113 oacExceptExtraCutConstraintParamType = 57, 00114 oacExceptLineTouchConstraintParamType = 58, 00115 oacExceptMinSizeConstraintParamType = 59, 00116 oacExceptPointTouchConstraintParamType = 60, 00117 oacExceptSameCornerConstraintParamType = 61, 00118 oacExceptSameViaCountConstraintParamType = 62, 00119 oacExceptTwoEdgesConstraintParamType = 63, 00120 oacFloatingAreaSpacingConstraintParamType = 64, 00121 oacFloatingMetalConstraintParamType = 65, 00122 oacInLayerDirectionConstraintParamType = 66, 00123 oacInterSpaceConstraintParamType = 67, 00124 oacMaxChannelLengthConstraintParamType = 68, 00125 oacMinJogLengthConstraintParamType = 69, 00126 oacMinLengthConstraintParamType = 70, 00127 oacMinLengthRatioConstraintParamType = 71, 00128 oacMinOppositeWidthConstraintParamType = 72, 00129 oacOtherEndWidthConstraintParamType = 73, 00130 oacParallelEdgeLengthConstraintParamType = 74, 00131 oacParallelEdgeMinLengthConstraintParamType = 75, 00132 oacParallelOverlapConstraintParamType = 76, 00133 oacParallelRunLengthConstraintParamType = 77, 00134 oacParallelRunLengthTableConstraintParamType = 78, 00135 oacRedundantCutDistanceConstraintParamType = 79, 00136 oacRoutingLayersConstraintParamType = 80, 00137 oacSpanLengthConstraintParamType = 81, 00138 oacSubtractEndOfLineWidthConstraintParamType = 82, 00139 oacTwoSidesConstraintParamType = 83, 00140 oacViaExtensionTypeConstraintParamType = 84, 00141 oacViaLengthMinConstraintParamType = 85, 00142 oacViaWidthMinConstraintParamType = 86, 00143 oacWindowStepSizeConstraintParamType = 87, 00144 oacExtensionSpacingConstraintParamType = 88, 00145 oacConvexCornerConstraintParamType = 89, 00146 oacHasParallelRunLengthConstraintParamType = 90, 00147 oacJointWidthConstraintParamType = 91, 00148 oacWrongDirectionConstraintParamType = 92, 00149 oacExceptEdgeLengthPRLConstraintParamType = 93, 00150 oacEndSideOverhangConstraintParamType = 94, 00151 oacJointToEdgeEndLengthConstraintParamType = 95, 00152 oacSideParallelOverlapConstraintParamType = 96, 00153 oacNeighborLayerMetalConstraintParamType = 97, 00154 oacExceptCutMetalEdgeExtensionConstraintParamType = 98, 00155 oacCutClassProfileConstraintParamType = 99 00156 }; 00157 00158 00159 00160 // ***************************************************************************** 00161 // oaDistanceMeasureTypeEnum 00162 // ***************************************************************************** 00163 #define oavNumDistanceMeasureTypes 2 00164 00165 enum oaDistanceMeasureTypeEnum { 00166 oacEuclidianDistanceMeasureType = 0, 00167 oacManhattanDistanceMeasureType = 1 00168 }; 00169 00170 00171 00172 // ***************************************************************************** 00173 // oaWidthLengthTableTypeEnum 00174 // ***************************************************************************** 00175 #define oavNumWidthLengthTableTypes 3 00176 00177 enum oaWidthLengthTableTypeEnum { 00178 oacWidthParallelRunLengthTableType = 0, 00179 oacWidthWidthTableType = 1, 00180 oacTwoWidthParallelRunLengthTableType = 2 00181 }; 00182 00183 00184 00185 // ***************************************************************************** 00186 // oaAlignmentTypeEnum 00187 // ***************************************************************************** 00188 #define oavNumAlignmentTypes 3 00189 00190 enum oaAlignmentTypeEnum { 00191 oacInsideAlignmentType = 0, 00192 oacOutsideAlignmentType = 1, 00193 oacInsideOutsideAlignmentType = 2 00194 }; 00195 00196 00197 00198 // ***************************************************************************** 00199 // oaSpacingDirectionTypeEnum 00200 // ***************************************************************************** 00201 #define oavNumSpacingDirectionTypes 3 00202 00203 enum oaSpacingDirectionTypeEnum { 00204 oacAnySpacingDirectionType = 0, 00205 oacHorizontalSpacingDirectionType = 1, 00206 oacVerticalSpacingDirectionType = 2 00207 }; 00208 00209 00210 00211 // ***************************************************************************** 00212 // oaConnectivityTypeEnum 00213 // ***************************************************************************** 00214 #define oavNumConnectivityTypes 5 00215 00216 enum oaConnectivityTypeEnum { 00217 oacAnyConnectivityType = 0, 00218 oacSameNetConnectivityType = 1, 00219 oacContiguousShapesConnectivityType = 2, 00220 oacDirectShapesConnectivityType = 3, 00221 oacSameViaConnectivityType = 4 00222 }; 00223 00224 00225 00226 // ***************************************************************************** 00227 // oaViaExtensionTypeEnum 00228 // ***************************************************************************** 00229 #define oavNumViaExtensionTypes 3 00230 00231 enum oaViaExtensionTypeEnum { 00232 oacOneThreeViaExtensionType = 0, 00233 oacOneOneTwoViaExtensionType = 1, 00234 oacDiagonalViaExtensionType = 2 00235 }; 00236 00237 00238 00239 // ***************************************************************************** 00240 // oaConnectLayerTypeEnum 00241 // ***************************************************************************** 00242 #define oavNumConnectLayerTypes 3 00243 00244 enum oaConnectLayerTypeEnum { 00245 oacSingleConnectLayerType = 0, 00246 oacConnectedConnectLayerType = 1, 00247 oacAllConnectedConnectLayerType = 2 00248 }; 00249 00250 00251 00252 // ***************************************************************************** 00253 // oaSpacingTypeEnum 00254 // ***************************************************************************** 00255 #define oavNumSpacingTypes 4 00256 00257 enum oaSpacingTypeEnum { 00258 oacEndToEndSpacingType = 0, 00259 oacEndToJoiintSpacingType = 1, 00260 oacJointToEndSpacingType = 2, 00261 oacJointToJointSpacingType = 3 00262 }; 00263 00264 00265 00266 // ***************************************************************************** 00267 // oaSpacingMeasureTypeEnum 00268 // ***************************************************************************** 00269 #define oavNumSpacingMeasureTypes 2 00270 00271 enum oaSpacingMeasureTypeEnum { 00272 oacEdgeToEdgeSpacingMeasureType = 0, 00273 oacCenterToCenterSpacingMeasureType = 1 00274 }; 00275 00276 00277 00278 // ***************************************************************************** 00279 // oaEnclosedCutTypeEnum 00280 // ***************************************************************************** 00281 #define oavNumEnclosedCutTypes 3 00282 00283 enum oaEnclosedCutTypeEnum { 00284 oacAllEnclosedCutType = 0, 00285 oacBelowEnclosedCutType = 1, 00286 oacAboveEnclosedCutType = 2 00287 }; 00288 00289 00290 00291 // ***************************************************************************** 00292 // oaNeighborLayerMetalTypeEnum 00293 // ***************************************************************************** 00294 #define oavNeighborLayerMetalType 3 00295 00296 enum oaNeighborLayerMetalTypeEnum { 00297 oacUpperLowerLayerMetalType = 0, 00298 oacUpperLayerMetalType = 1, 00299 oacLowerLayerMetalType = 2 00300 }; 00301 00302 00303 00304 // ***************************************************************************** 00305 // oaConstraintParamType 00306 // ***************************************************************************** 00307 class OA_BASE_DLL_API oaConstraintParamType { 00308 public: 00309 oaConstraintParamType(oaConstraintParamTypeEnum typeIn); 00310 oaConstraintParamType(const oaString &name); 00311 ~oaConstraintParamType(); 00312 00313 const oaString &getName() const; 00314 operator oaConstraintParamTypeEnum() const; 00315 00316 private: 00317 static const oaString *initNames(); 00318 00319 oaConstraintParamTypeEnum type; 00320 00321 static const oaString names[]; 00322 }; 00323 00324 00325 00326 // ***************************************************************************** 00327 // oaDistanceMeasureType 00328 // ***************************************************************************** 00329 class OA_BASE_DLL_API oaDistanceMeasureType { 00330 public: 00331 oaDistanceMeasureType(oaDistanceMeasureTypeEnum valueIn); 00332 oaDistanceMeasureType(const oaString &name); 00333 ~oaDistanceMeasureType(); 00334 00335 const oaString &getName() const; 00336 operator oaDistanceMeasureTypeEnum() const; 00337 00338 private: 00339 static const oaString *initNames(); 00340 00341 oaDistanceMeasureTypeEnum value; 00342 00343 static const oaString *names; 00344 }; 00345 00346 00347 00348 // ***************************************************************************** 00349 // oaWidthLengthTableType 00350 // ***************************************************************************** 00351 class OA_BASE_DLL_API oaWidthLengthTableType { 00352 public: 00353 oaWidthLengthTableType(oaWidthLengthTableTypeEnum valueIn); 00354 oaWidthLengthTableType(const oaString &name); 00355 ~oaWidthLengthTableType(); 00356 00357 const oaString &getName() const; 00358 operator oaWidthLengthTableTypeEnum() const; 00359 00360 private: 00361 static const oaString *initNames(); 00362 00363 oaWidthLengthTableTypeEnum value; 00364 00365 static const oaString *names; 00366 }; 00367 00368 00369 00370 // ***************************************************************************** 00371 // oaAlignmentType 00372 // ***************************************************************************** 00373 class OA_BASE_DLL_API oaAlignmentType { 00374 public: 00375 oaAlignmentType(oaAlignmentTypeEnum typeIn); 00376 oaAlignmentType(const oaString &name); 00377 ~oaAlignmentType(); 00378 00379 const oaString &getName() const; 00380 operator oaAlignmentTypeEnum() const; 00381 00382 private: 00383 static const oaString *initNames(); 00384 00385 oaAlignmentTypeEnum value; 00386 00387 static const oaString *names; 00388 }; 00389 00390 00391 00392 // ***************************************************************************** 00393 // oaSpacingDirectionType 00394 // ***************************************************************************** 00395 class OA_BASE_DLL_API oaSpacingDirectionType { 00396 public: 00397 oaSpacingDirectionType(oaSpacingDirectionTypeEnum typeIn); 00398 oaSpacingDirectionType(const oaString &name); 00399 ~oaSpacingDirectionType(); 00400 00401 const oaString &getName() const; 00402 operator oaSpacingDirectionTypeEnum() const; 00403 00404 private: 00405 static const oaString *initNames(); 00406 00407 oaSpacingDirectionTypeEnum value; 00408 00409 static const oaString *names; 00410 }; 00411 00412 00413 00414 // ***************************************************************************** 00415 // oaConnectivityConstraintType 00416 // ***************************************************************************** 00417 class OA_BASE_DLL_API oaConnectivityType { 00418 public: 00419 oaConnectivityType(oaConnectivityTypeEnum typeIn); 00420 oaConnectivityType(const oaString &name); 00421 ~oaConnectivityType(); 00422 00423 const oaString &getName() const; 00424 operator oaConnectivityTypeEnum() const; 00425 00426 private: 00427 static const oaString *initNames(); 00428 00429 oaConnectivityTypeEnum type; 00430 00431 static const oaString *names; 00432 }; 00433 00434 00435 00436 // ***************************************************************************** 00437 // oaViaExtensionType 00438 // ***************************************************************************** 00439 class OA_BASE_DLL_API oaViaExtensionType { 00440 public: 00441 oaViaExtensionType(oaViaExtensionTypeEnum type); 00442 oaViaExtensionType(const oaString &name); 00443 00444 const oaString &getName() const; 00445 operator oaViaExtensionTypeEnum() const; 00446 00447 private: 00448 static const oa::oaString *initNames(); 00449 00450 oaViaExtensionTypeEnum m_type; 00451 00452 static const oaString *s_names; 00453 }; 00454 00455 00456 00457 // ***************************************************************************** 00458 // oaConnectLayerType 00459 // ***************************************************************************** 00460 class OA_BASE_DLL_API oaConnectLayerType { 00461 public: 00462 oaConnectLayerType(oaConnectLayerTypeEnum type); 00463 oaConnectLayerType(const oaString &name); 00464 00465 const oaString &getName() const; 00466 operator oaConnectLayerTypeEnum() const; 00467 00468 private: 00469 static const oa::oaString *initNames(); 00470 00471 oaConnectLayerTypeEnum m_type; 00472 00473 static const oaString *s_names; 00474 }; 00475 00476 00477 00478 // ***************************************************************************** 00479 // oaSpacingType 00480 // ***************************************************************************** 00481 class OA_BASE_DLL_API oaSpacingType { 00482 public: 00483 oaSpacingType(oaSpacingTypeEnum type); 00484 oaSpacingType(const oaString &name); 00485 00486 const oaString &getName() const; 00487 operator oaSpacingTypeEnum() const; 00488 00489 private: 00490 static const oaString *initNames(); 00491 00492 oaSpacingTypeEnum m_type; 00493 00494 static const oaString *s_names; 00495 }; 00496 00497 00498 00499 // ***************************************************************************** 00500 // oaSpacingMeasureType 00501 // ***************************************************************************** 00502 class OA_BASE_DLL_API oaSpacingMeasureType { 00503 public: 00504 oaSpacingMeasureType(oaSpacingMeasureTypeEnum type); 00505 oaSpacingMeasureType(const oaString &name); 00506 00507 const oaString &getName() const; 00508 operator oaSpacingMeasureTypeEnum() const; 00509 00510 private: 00511 static const oaString *initNames(); 00512 00513 oaSpacingMeasureTypeEnum m_type; 00514 00515 static const oaString *s_names; 00516 }; 00517 00518 00519 00520 // ***************************************************************************** 00521 // oaEnclosedCutType 00522 // ***************************************************************************** 00523 class OA_BASE_DLL_API oaEnclosedCutType { 00524 public: 00525 oaEnclosedCutType(oaEnclosedCutTypeEnum type); 00526 oaEnclosedCutType(const oaString &name); 00527 00528 const oaString &getName() const; 00529 operator oaEnclosedCutTypeEnum() const; 00530 00531 private: 00532 static const oaString *initNames(); 00533 00534 oaEnclosedCutTypeEnum m_type; 00535 00536 static const oaString *s_names; 00537 }; 00538 00539 00540 00541 // ***************************************************************************** 00542 // oaNeighborLayerMetalType 00543 // ***************************************************************************** 00544 class OA_BASE_DLL_API oaNeighborLayerMetalType { 00545 public: 00546 oaNeighborLayerMetalType(oaNeighborLayerMetalTypeEnum type); 00547 oaNeighborLayerMetalType(const oaString &name); 00548 00549 const oaString &getName() const; 00550 operator oaNeighborLayerMetalTypeEnum() const; 00551 00552 private: 00553 static const oaString *initNames(); 00554 00555 oaNeighborLayerMetalTypeEnum m_type; 00556 00557 static const oaString *s_names; 00558 }; 00559 00560 00561 00562 // ***************************************************************************** 00563 // oaConstraintParamDef 00564 // ***************************************************************************** 00565 class OA_BASE_DLL_API oaConstraintParamDef : public oaSessionObject { 00566 public: 00567 static oaConstraintParamDef *create(const oaString &name, 00568 oaType valueType); 00569 00570 static oaConstraintParamDef *find(const oaString &name); 00571 static oaConstraintParamDef *get(oaConstraintParamType type); 00572 00573 void getName(oaString &name) const; 00574 oaType getValueType() const; 00575 oaBoolean isBuiltIn() const; 00576 00577 void destroy(); 00578 void remove(oaObject *database); 00579 00580 enum {dtIndex = oacBaseConstraintParamDefDataType}; 00581 }; 00582 00583 00584 00585 // ***************************************************************************** 00586 // Traits 00587 // ***************************************************************************** 00588 template<> 00589 class oaTraits<oaConstraintParamDef> { 00590 public: 00591 typedef oaSessionObject parentType; 00592 typedef oaConstraintParamDefModTypeEnum modTypeType; 00593 enum {domain = oacNoDomain}; 00594 enum {isMultiDomain = false}; 00595 enum {dbType = oacBaseDBType}; 00596 enum {isConcrete = true}; 00597 enum {dtIndex = oacBaseConstraintParamDefDataType}; 00598 enum {objectTypeEnumVal = oacConstraintParamDefType}; 00599 enum {dataTypeEnumVal = oacBaseConstraintParamDefDataType}; 00600 }; 00601 00602 00603 00604 END_OA_NAMESPACE 00605 00606 #endif 00607
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.