oaGuide.h

Go to the documentation of this file.
00001 // *****************************************************************************
00002 // *****************************************************************************
00003 // oaGuide.h
00004 //
00005 // This file contains the definition for the oaGuide class.
00006 //
00007 // The oaGuide class specifies a connection between two points that are
00008 // intended to be wired together. Guides are generally placed into oaRoute
00009 // objects when the wiring for a net is completed. Guides can be used before
00010 // the detailed location of the wiring is known, but after the branching of the
00011 // wire into segments for each end point is known.
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: #1 $
00024 //  $Date: 2010/08/09 $
00025 //  $State: Exp $
00026 // *****************************************************************************
00027 // *****************************************************************************
00028 
00029 
00030 
00031 #if !defined(oaGuide_P)
00032 #define oaGuide_P
00033 
00034 
00035 
00036 // *****************************************************************************
00037 // Nested includes
00038 // *****************************************************************************
00039 #include "oaFig.h"
00040 #include "oaBlock.h"
00041 
00042 
00043 
00044 // *****************************************************************************
00045 // Declare and define types in the OpenAccess namespace.
00046 // *****************************************************************************
00047 BEGIN_OA_NAMESPACE
00048 
00049 
00050 
00051 // *****************************************************************************
00052 // oaGuide
00053 // *****************************************************************************
00054 class OA_DESIGN_DLL_API oaGuide : public oaConnFig {
00055 public:
00056     static oaGuide          *create(oaBlock         *block,
00057                                     const oaPoint   &beginPoint,
00058                                     const oaPoint   &endPoint,
00059                                     oaLayerNum      beginLayer = oacAnyLayerNum,
00060                                     oaLayerNum      endLayer = oacAnyLayerNum);
00061 
00062     oaLayerHeader           *getBeginLayerHeader() const;
00063     oaLayerHeader           *getEndLayerHeader() const;
00064     void                    getPoints(oaPoint   &beginPoint,
00065                                       oaPoint   &endPoint) const;
00066     oaLayerNum              getBeginLayerNum() const;
00067     oaLayerNum              getEndLayerNum() const;
00068     oaRoute                 *getRoute() const;
00069 
00070     oaBoolean               hasRoute() const;
00071     oaBoolean               followLayers() const;
00072 
00073     void                    setPoints(const oaPoint &beginPoint,
00074                                       const oaPoint &endPoint);
00075     void                    setBeginLayerNum(oaLayerNum layer);
00076     void                    setEndLayerNum(oaLayerNum layer);
00077     void                    setFollowLayers(oaBoolean value);
00078 
00079     enum {dtIndex = oacGuideDataType};
00080 };
00081 
00082 
00083 
00084 // *****************************************************************************
00085 // Design Traits.
00086 // *****************************************************************************
00087 template<>
00088 class oaTraits<oaGuide> {
00089 public:
00090     typedef oaConnFig           parentType;
00091     typedef oaGuideModTypeEnum  modTypeType;
00092     enum {domain = oacBlockDomain};
00093     enum {dbType = oacDesignDBType};
00094     enum {isMultiDomain = false};
00095     enum {dtIndex = oacGuideDataType};
00096     enum {isConcrete = true};
00097     enum {objectTypeEnumVal = oacGuideType};
00098     enum {dataTypeEnumVal = oacGuideDataType};
00099 };
00100 
00101 
00102 
00103 END_OA_NAMESPACE
00104 
00105 #endif

Return to top of page