00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaWaferFeature.h 00004 // 00005 // This file contains the definition for the oaWaferFeature class and its 00006 // public supporting classes. A wafer feature is an area that prevents printing 00007 // on the wafer itself. 00008 // 00009 // ***************************************************************************** 00010 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00011 // Integration Initiative, this material may not be copied, modified, 00012 // re-published, uploaded, executed, or distributed in any way, in any medium, 00013 // in whole or in part, without prior written permission from Cadence. 00014 // 00015 // Copyright 2004-2005 Cadence Design Systems, Inc. 00016 // All Rights Reserved. 00017 // 00018 // $Author: icftcm $ 00019 // $Revision: #1 $ 00020 // $Date: 2010/08/09 $ 00021 // $State: Exp $ 00022 // ***************************************************************************** 00023 // ***************************************************************************** 00024 00025 00026 00027 #if !defined(oaWaferFeature_P) 00028 #define oaWaferFeature_P 00029 00030 00031 00032 // ***************************************************************************** 00033 // Nested includes 00034 // ***************************************************************************** 00035 #include "oaPointArray.h" 00036 #include "oaWaferModTypes.h" 00037 #include "oaWaferObject.h" 00038 00039 00040 00041 // ***************************************************************************** 00042 // Declare and define types in the OpenAccess namespace. 00043 // ***************************************************************************** 00044 BEGIN_OA_NAMESPACE 00045 00046 00047 00048 // ***************************************************************************** 00049 // oaWaferFeatureEnum 00050 // ***************************************************************************** 00051 #define oavNumWaferFeatures 6 00052 00053 enum oaWaferFeatureEnum { 00054 oacFlatWaferFeature = 0, 00055 oacNotchWaferFeature = 1, 00056 oacBlockageWaferFeature = 2, 00057 oacClampWaferFeature = 3, 00058 oacLaserWaferFeature = 4, 00059 oacOtherWaferFeature = 5 00060 }; 00061 00062 00063 00064 // ***************************************************************************** 00065 // oaWaferFeatureType 00066 // ***************************************************************************** 00067 class OA_WAFER_DLL_API oaWaferFeatureType { 00068 public: 00069 oaWaferFeatureType(oaWaferFeatureEnum valueIn); 00070 oaWaferFeatureType(const oaString &name); 00071 ~oaWaferFeatureType(); 00072 00073 const oaString &getName() const; 00074 00075 operator oaWaferFeatureEnum() const; 00076 00077 private: 00078 static const oaString *initNames(); 00079 00080 oaWaferFeatureEnum value; 00081 00082 static const oaString names[]; 00083 }; 00084 00085 00086 00087 // ***************************************************************************** 00088 // oaWaferFeature 00089 // ***************************************************************************** 00090 class OA_WAFER_DLL_API oaWaferFeature : public oaWaferObject { 00091 public: 00092 static oaWaferFeature *create(oaWaferDesc *waferDesc, 00093 const oaString &name, 00094 oaWaferFeatureType feature, 00095 const oaPointArray &boundary); 00096 00097 static oaWaferFeature *find(const oaWaferDesc *waferDesc, 00098 const oaString &name); 00099 00100 void destroy(); 00101 00102 void getName(oaString &name) const; 00103 oaWaferFeatureType getWaferFeatureType() const; 00104 void getBoundary(oaPointArray &points) const; 00105 00106 void setName(const oaString &name); 00107 void setWaferFeatureType(oaWaferFeatureType feature); 00108 void setBoundary(const oaPointArray &points); 00109 00110 enum {dtIndex = oacWaferFeatureWaferDataType}; 00111 }; 00112 00113 00114 00115 // ***************************************************************************** 00116 // Wafer traits. 00117 // ***************************************************************************** 00118 template<> 00119 class oaTraits<oaWaferFeature> { 00120 public: 00121 typedef oaWaferObject parentType; 00122 typedef oaWaferFeatureModTypeEnum modTypeType; 00123 enum {dbType = oacWaferDBType}; 00124 enum {domain = oacNoDomain}; 00125 enum {isMultiDomain = false}; 00126 enum {dtIndex = oacWaferFeatureWaferDataType}; 00127 enum {isConcrete = true}; 00128 enum {objectTypeEnumVal = oacWaferFeatureType}; 00129 enum {dataTypeEnumVal = oacWaferFeatureWaferDataType}; 00130 }; 00131 00132 00133 00134 END_OA_NAMESPACE 00135 00136 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.