# Katabatic Documentation

# Katabatic - Routing Toolbox

AutoContactTerminal.h
1 // -*- C++ -*-
2 //
3 // This file is part of the Coriolis Software.
4 // Copyright (c) UPMC/LIP6 2012-2018, All Rights Reserved
5 //
6 // +-----------------------------------------------------------------+
7 // | C O R I O L I S |
8 // | K a t a b a t i c - Routing Toolbox |
9 // | |
10 // | Author : Jean-Paul CHAPUT |
11 // | E-mail : Jean-Paul.Chaput@lip6.fr |
12 // | =============================================================== |
13 // | C++ Header : "./katabatic/AutoContactTerminal.h" |
14 // +-----------------------------------------------------------------+
15
16
17 #ifndef KATABATIC_AUTOCONTACT_TERMINAL_H
18 #define KATABATIC_AUTOCONTACT_TERMINAL_H
19
20 #include "katabatic/AutoContact.h"
21
22
23 namespace Katabatic {
24
25
26 // -------------------------------------------------------------------
27 // Class : "Katabatic::AutoContactTerminal".
28
29
30 class AutoContactTerminal : public AutoContact {
31 friend class AutoContact;
32 public:
33 static AutoContactTerminal* create ( GCell* gcell
34 , Component* anchor
35 , const Layer* layer
36 , Point point
37 , DbU::Unit width
38 , DbU::Unit height
39 );
40 static AutoContactTerminal* create ( GCell* gcell
41 , Component* anchor
42 , const Layer* layer
43 , const DbU::Unit dx
44 , const DbU::Unit dy
45 , const DbU::Unit width
46 , const DbU::Unit height
47 );
48 protected:
49 // Constructors & Destructors.
50 AutoContactTerminal ( GCell*, Contact* );
51 virtual ~AutoContactTerminal ();
52 virtual void _invalidate ( unsigned int flags );
53 public:
54 virtual Box getNativeConstraintBox () const;
55 inline AutoSegment* getSegment () const;
56 virtual AutoSegment* getSegment ( unsigned int ) const;
57 virtual AutoSegment* getOpposite ( const AutoSegment* ) const;
58 virtual AutoSegment* getPerpandicular ( const AutoSegment* ) const;
59 virtual void updateGeometry ();
60 virtual void updateTopology ();
61 virtual void cacheDetach ( AutoSegment* );
62 virtual void cacheAttach ( AutoSegment* );
63 virtual void updateCache ();
64 virtual string _getTypeName () const;
65 private:
66 AutoContactTerminal ( const AutoContactTerminal& );
67 AutoContactTerminal& operator= ( const AutoContactTerminal& );
68 protected:
69 AutoSegment* _segment;
70 };
71
72
73 inline AutoSegment* AutoContactTerminal::getSegment () const { return _segment; }
74
75
76 } // Katabatic namespace.
77
78
79 INSPECTOR_P_SUPPORT(Katabatic::AutoContactTerminal);
80
81
82 #endif // KATABATIC_AUTOCONTACT_TERMINAL_H
Hurricane::Component
Hurricane::Contact
Katabatic::AutoContactTerminal::updateGeometry
virtual void updateGeometry()
Definition: AutoContactTerminal.cpp:313
Hurricane::DbU::Unit
std::int64_t Unit
Katabatic::AutoContactTerminal::create
static AutoContactTerminal * create(GCell *gcell, Component *anchor, const Layer *layer, Point point, DbU::Unit width, DbU::Unit height)
Definition: AutoContactTerminal.cpp:55
Hurricane::Point
Katabatic::GCell
Routing Global Cell.
Definition: GCell.h:74
Katabatic::AutoSegment
Abstract base class for AutoSegment.
Definition: AutoSegment.h:104
Katabatic
The namespace dedicated to Katabatic.
Definition: Katabatic.dox:13
Hurricane::Box
Katabatic::AutoContactTerminal::getOpposite
virtual AutoSegment * getOpposite(const AutoSegment *) const
Definition: AutoContactTerminal.cpp:122
Hurricane::Layer
Katabatic::AutoContactTerminal
AutoContact Terminal (S/T is a Terminal)
Definition: AutoContactTerminal.h:30
Katabatic::AutoContactTerminal::updateTopology
virtual void updateTopology()
Definition: AutoContactTerminal.cpp:362
Katabatic::AutoContact
Abstract base class for AutoContact.
Definition: AutoContact.h:70
Katabatic::AutoContactTerminal::getPerpandicular
virtual AutoSegment * getPerpandicular(const AutoSegment *) const
Definition: AutoContactTerminal.cpp:126
Katabatic::AutoContactTerminal::getNativeConstraintBox
virtual Box getNativeConstraintBox() const
Definition: AutoContactTerminal.cpp:142