32#ifndef HURRICANE_VIA_LAYER_H
33#define HURRICANE_VIA_LAYER_H
37#include "hurricane/Layer.h"
38#include "hurricane/ViaLayers.h"
46 class ViaLayer :
public Layer {
60 virtual const Layer* getCut ()
const;
61 virtual const Layer*
getTop ()
const;
63 virtual const Layer* getOpposite (
const Layer* )
const;
64 virtual DbU::Unit getEnclosure ( uint32_t flags )
const;
66 virtual DbU::Unit getTopEnclosure ( uint32_t flags )
const;
67 virtual DbU::Unit getBottomEnclosure ( uint32_t flags )
const;
71 virtual void _toJson ( JsonWriter* )
const;
72 virtual void _onDbuChange (
float scale );
73 virtual string _getTypeName ()
const;
74 virtual string _getString ()
const;
75 virtual Record* _getRecord ()
const;
79 vector<BasicLayer*> _basicLayers;
80 vector< pair<DbU::Unit,DbU::Unit> > _enclosures;
97 class JsonViaLayer :
public JsonLayer {
99 static void initialize ();
100 JsonViaLayer (
unsigned long flags );
103 virtual JsonViaLayer* clone (
unsigned long )
const;
BasicLayer description (API).
Definition BasicLayer.h:42
std::int64_t Unit
Definition DbU.h:67
virtual std::string getTypeName() const =0
JSON Parser Stack.
Definition JsonObject.h:249
virtual const Layer * getTop() const
virtual BasicLayers getBasicLayers() const =0
virtual const Layer * getBottom() const
Name description (API).
Definition Name.h:35
Technological rules description (API).
Definition Technology.h:62
ViaLayer description (API).
Definition ViaLayer.h:46
static ViaLayer * create(Technology *technology, const Name &name, BasicLayer *bottomLayer, BasicLayer *cutLayer, BasicLayer *topLayer)
Contains Almost Everything.
Definition BasicLayer.h:39