亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gds.java

?? The ElectricTM VLSI Design System is an open-source Electronic Design Automation (EDA) system that c
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
		boolean trans = false;		if (theToken == GDS_STRANS)		{			ReadOrientation ro = new ReadOrientation();			ro.doIt();			angle = ro.angle;			trans = ro.trans;		}		int nCols = 0, nRows = 0;		if (theToken == GDS_COLROW)		{			getToken();			nCols = tokenValue16;			getToken();			nRows = tokenValue16;			getToken();		}		if (theToken != GDS_XY) handleError("Array reference has no parameters");		getToken();		determinePoints(3, 3);		// see if the instance is a single object		if (TALLYCONTENTS)		{			countARef++;			countATotal += nCols*nRows;			return;		}		boolean mY = false;		boolean mX = false;		if (trans)		{			mY = true;			angle = (angle + 900) % 3600;		}		Point2D colInterval = new Point2D.Double(0, 0);		if (nCols != 1)		{			colInterval.setLocation((theVertices[1].getX() - theVertices[0].getX()) / nCols,				(theVertices[1].getY() - theVertices[0].getY()) / nCols);		}		Point2D rowInterval = new Point2D.Double(0, 0);		if (nRows != 1)		{			rowInterval.setLocation((theVertices[2].getX() - theVertices[0].getX()) / nRows,				(theVertices[2].getY() - theVertices[0].getY()) / nRows);		}		theCell.makeInstanceArray(theNodeProto, nCols, nRows, Orientation.fromJava(angle, mX, mY),			theVertices[0], rowInterval, colInterval);	}	private class ReadOrientation	{		private int angle;		private boolean trans;		private double scale;		private void doIt()			throws IOException		{			double anglevalue = 0.0;			scale = 1.0;			boolean mirror_x = false;			getToken();			if (theToken != GDS_FLAGSYM) handleError("Structure reference is missing its flags field");			if ((tokenFlags&0100000) != 0) mirror_x = true;			getToken();			if (theToken == GDS_MAG)			{				getToken();				scale = tokenValueDouble;				getToken();			}			if (theToken == GDS_ANGLE)			{				getToken();				anglevalue = tokenValueDouble * 10;				getToken();			}			angle = ((int)anglevalue) % 3600;			trans = mirror_x;			if (trans)				angle = (2700 - angle) % 3600;			// should not happen...*/			if (angle < 0) angle = angle + 3600;		}	}	private void determineSRef()		throws IOException	{		getToken();		readUnsupported(unsupportedSet);		if (theToken != GDS_SNAME) handleError("Structure reference name is missing");		getToken();		getPrototype(tokenString);		getToken();		int angle = 0;		boolean trans = false;		if (theToken == GDS_STRANS)		{			ReadOrientation ro = new ReadOrientation();			ro.doIt();			angle = ro.angle;			trans = ro.trans;		}		if (theToken != GDS_XY) handleError("Structure reference has no translation value");		getToken();		determinePoints(1, 1);		if (TALLYCONTENTS)		{			countSRef++;			return;		}		Point2D loc = new Point2D.Double(theVertices[0].getX(), theVertices[0].getY());		boolean mY = false;		if (trans)		{			mY = true;			angle = (angle + 900) % 3600;		}		theCell.makeInstance(theNodeProto, loc, Orientation.fromJava(angle, false, mY), 0, 0, null);	}	private void determineShape()		throws IOException	{		getToken();		readUnsupported(unsupportedSet);		determineLayer();		getToken();		if (theToken != GDS_XY) handleError("Boundary has no points");		getToken();		int n = determinePoints(3, MAXPOINTS);		if (TALLYCONTENTS)		{			countShape++;			return;		}		determineBoundary(n);	}	private void determineBoundary(int npts)	{		boolean is90 = true;		boolean is45 = true;		for (int i=0; i<npts-1 && i<MAXPOINTS-1; i++)		{			double dx = theVertices[i+1].getX() - theVertices[i].getX();			double dy = theVertices[i+1].getY() - theVertices[i].getY();			if (dx != 0 && dy != 0)			{				is90 = false;				if (Math.abs(dx) != Math.abs(dy)) is45 = false;			}		}		ShapeType perimeter = SHAPELINE;		if (theVertices[0].getX() == theVertices[npts-1].getX() &&			theVertices[0].getY() == theVertices[npts-1].getY())				perimeter = SHAPECLOSED;		ShapeType oclass = SHAPEOBLIQUE;		if (perimeter == SHAPECLOSED && (is90 || is45))			oclass = SHAPEPOLY;		if (npts == 5 && is90 && perimeter == SHAPECLOSED)			oclass = SHAPERECTANGLE;		if (oclass == SHAPERECTANGLE)		{			readBox();			// create the rectangle			if (layerUsed)			{				Point2D ctr = new Point2D.Double((theVertices[0].getX()+theVertices[1].getX())/2,					(theVertices[0].getY()+theVertices[1].getY())/2);				double sX = Math.abs(theVertices[1].getX() - theVertices[0].getX());				double sY = Math.abs(theVertices[1].getY() - theVertices[0].getY());				if (mergeThisCell)				{					PrimitiveNode plnp = layerNodeProto;					NodeLayer [] layers = plnp.getLayers();					merge.addPolygon(layers[0].getLayer(), new Poly(ctr.getX(), ctr.getY(), sX, sY));				} else				{                    theCell.makeInstance(layerNodeProto, ctr, Orientation.IDENT, sX, sY, null);				}			}			return;		}		if (oclass == SHAPEOBLIQUE || oclass == SHAPEPOLY)		{			if (!layerUsed) return;			if (mergeThisCell)			{				PrimitiveNode plnp = layerNodeProto;				NodeLayer [] layers = plnp.getLayers();				merge.addPolygon(layers[0].getLayer(), new Poly(theVertices)); // ??? npts			} else			{				// determine the bounds of the polygon				double lx = theVertices[0].getX();				double hx = theVertices[0].getX();				double ly = theVertices[0].getY();				double hy = theVertices[0].getY();				for (int i=1; i<npts;i++)				{					if (lx > theVertices[i].getX()) lx = theVertices[i].getX();					if (hx < theVertices[i].getX()) hx = theVertices[i].getX();					if (ly > theVertices[i].getY()) ly = theVertices[i].getY();					if (hy < theVertices[i].getY()) hy = theVertices[i].getY();				}				// store the trace information				EPoint [] points = new EPoint[npts];				for(int i=0; i<npts; i++)				{					points[i] = new EPoint(theVertices[i].getX(), theVertices[i].getY());				}				// now create the node                theCell.makeInstance(layerNodeProto, new EPoint((lx+hx)/2, (ly+hy)/2),                	Orientation.IDENT, hx-lx, hy-ly, points);			}			return;		}	}	private void readBox()	{		double pxm = theVertices[4].getX();		double pxs = theVertices[4].getX();		double pym = theVertices[4].getY();		double pys = theVertices[4].getY();		for (int i = 0; i<4; i++)		{			if (theVertices[i].getX() > pxm) pxm = theVertices[i].getX();			if (theVertices[i].getX() < pxs) pxs = theVertices[i].getX();			if (theVertices[i].getY() > pym) pym = theVertices[i].getY();			if (theVertices[i].getY() < pys) pys = theVertices[i].getY();		}		theVertices[0].setLocation(pxs, pys);		theVertices[1].setLocation(pxm, pym);	}	private void determinePath()		throws IOException	{		int endcode = 0;		getToken();		readUnsupported(unsupportedSet);		determineLayer();		getToken();		if (theToken == GDS_PATHTYPE)		{			getToken();			endcode = tokenValue16;			getToken();		}		double width = 0;		if (theToken == GDS_WIDTH)		{			getToken();			width = tokenValue32 * theScale;			getToken();		}		double bgnextend = (endcode == 0 || endcode == 4 ? 0 : width/2);		double endextend = bgnextend;		if (theToken == GDS_BGNEXTN)		{			getToken();			if (endcode == 4)				bgnextend = tokenValue32 * theScale;			getToken();		}		if (theToken == GDS_ENDEXTN)		{			getToken();			if (endcode == 4)				endextend = tokenValue32 * theScale;			getToken();		}		if (theToken == GDS_XY)		{			getToken();			int n = determinePoints(2, MAXPOINTS);			if (TALLYCONTENTS)			{				countPath++;				return;			}			// construct the path			for (int i=0; i < n-1; i++)			{				Point2D fromPt = theVertices[i];				Point2D toPt = theVertices[i+1];				// determine whether either end needs to be shrunk				double fextend = width / 2;				double textend = fextend;				int thisAngle = GenMath.figureAngle(fromPt, toPt);				if (i > 0)				{					Point2D prevPoint = theVertices[i-1];					int lastAngle = GenMath.figureAngle(prevPoint, fromPt);					if (Math.abs(thisAngle-lastAngle) % 900 != 0)					{						int ang = Math.abs(thisAngle-lastAngle) / 10;						if (ang > 180) ang = 360 - ang;						if (ang > 90) ang = 180 - ang;						fextend = Poly.getExtendFactor(width, ang);					}				} else				{					fextend = bgnextend;				}				if (i+1 < n-1)				{					Point2D nextPoint = theVertices[i+2];					int nextAngle = GenMath.figureAngle(toPt, nextPoint);					if (Math.abs(thisAngle-nextAngle) % 900 != 0)					{						int ang = Math.abs(thisAngle-nextAngle) / 10;						if (ang > 180) ang = 360 - ang;						if (ang > 90) ang = 180 - ang;						textend = Poly.getExtendFactor(width, ang);					}				} else				{					textend = endextend;				}				// handle arbitrary angle path segment				if (layerUsed)				{					// determine shape of segment					double length = fromPt.distance(toPt);					Poly poly = Poly.makeEndPointPoly(length, width, GenMath.figureAngle(toPt, fromPt),						fromPt, fextend, toPt, textend, Poly.Type.FILLED);					if (mergeThisCell)					{						PrimitiveNode plnp = layerNodeProto;						NodeLayer [] layers = plnp.getLayers();						merge.addPolygon(layers[0].getLayer(), poly);					} else					{						// make the node for this segment						Rectangle2D polyBox = poly.getBox();						if (polyBox != null)						{                            theCell.makeInstance(layerNodeProto, new EPoint(polyBox.getCenterX(),                            	polyBox.getCenterY()), Orientation.IDENT, polyBox.getWidth(), polyBox.getHeight(), null);						} else						{							polyBox = poly.getBounds2D();							double cx = polyBox.getCenterX();							double cy = polyBox.getCenterY();							// store the trace information							Point2D [] polyPoints = poly.getPoints();							EPoint [] points = new EPoint[polyPoints.length];							for(int j=0; j<polyPoints.length; j++)							{								points[j] = new EPoint(polyPoints[j].getX(), polyPoints[j].getY());							}							// store the trace information                            theCell.makeInstance(layerNodeProto, new EPoint(cx, cy), Orientation.IDENT,                            	polyBox.getWidth(), polyBox.getHeight(), points);						}					}				}			}		} else		{			handleError("Path element has no points");		}	}	private void determineNode()		throws IOException	{		getToken();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99v久久综合狠狠综合久久| 国产精品欧美久久久久无广告 | 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 精品国产99国产精品| 国产不卡高清在线观看视频| 国产亚洲综合av| 欧美日韩综合色| 精品一区免费av| 亚洲最新在线观看| 亚洲精品一区二区三区在线观看| 精品午夜一区二区三区在线观看 | 91精品国产色综合久久不卡电影 | 亚洲国产人成综合网站| 国产亚洲欧美日韩俺去了| 色婷婷久久久综合中文字幕| 看国产成人h片视频| 亚洲人成人一区二区在线观看| 日韩一二三区视频| 91激情在线视频| av一区二区三区四区| 国产精品一二三区| 久久99在线观看| 婷婷久久综合九色综合绿巨人 | 欧美日韩一区在线观看| 欧美亚洲一区二区三区四区| thepron国产精品| 97久久超碰国产精品| 不卡av电影在线播放| 国产成都精品91一区二区三| 国产一区二区视频在线播放| 激情文学综合插| 国产精品伊人色| 成人激情免费电影网址| 成人精品国产一区二区4080| 成人av资源站| 99re66热这里只有精品3直播| 99国产精品一区| 欧美亚一区二区| 欧美电影免费观看高清完整版在线观看 | 欧美疯狂性受xxxxx喷水图片| 91日韩精品一区| 欧美日韩国产综合一区二区三区| 欧美日韩一区二区三区免费看| 一本高清dvd不卡在线观看| 欧洲视频一区二区| 日韩欧美另类在线| 国产精品国模大尺度视频| 一区二区视频在线| 久久aⅴ国产欧美74aaa| av一区二区三区在线| 91精品国产综合久久精品麻豆 | 亚洲欧美日韩电影| 国产综合色视频| 欧美在线观看一区二区| 久久这里都是精品| 亚洲1区2区3区4区| 99久久99久久久精品齐齐| 日韩一区二区在线观看视频| 中文字幕一区二区三区四区不卡 | 欧美精彩视频一区二区三区| 婷婷久久综合九色国产成人 | 成人午夜视频在线| 精品久久久久久久久久久久久久久 | 亚洲午夜免费视频| 成人99免费视频| 日韩美女在线视频| 日韩在线播放一区二区| 欧美色精品在线视频| 国产日韩欧美精品在线| 国产综合色在线视频区| 精品理论电影在线| 久久91精品久久久久久秒播| 欧美精品丝袜久久久中文字幕| 亚洲综合一区二区| 欧美日本在线播放| 青青青伊人色综合久久| 精品国产成人在线影院| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 一区二区三国产精华液| 欧美日韩在线亚洲一区蜜芽| 久久草av在线| 国产天堂亚洲国产碰碰| 91视频在线观看| 日韩中文字幕区一区有砖一区| 欧美大胆人体bbbb| 91视频一区二区三区| 日本伊人午夜精品| 国产精品高潮久久久久无| 欧美日韩在线观看一区二区| 国模一区二区三区白浆| 亚洲免费资源在线播放| 26uuu国产在线精品一区二区| 91老司机福利 在线| 免费看日韩a级影片| 亚洲在线观看免费| 中文一区一区三区高中清不卡| 欧美日韩国产美| 日韩视频一区二区三区| 91年精品国产| 国产成人精品午夜视频免费| 日韩精品一级二级| 亚洲电影中文字幕在线观看| 中文一区一区三区高中清不卡| 日韩欧美一区二区视频| 欧美女孩性生活视频| 欧美性生活久久| av亚洲精华国产精华精华| 捆绑变态av一区二区三区| 精品综合免费视频观看| 日韩av网站在线观看| 美女国产一区二区| 狠狠狠色丁香婷婷综合激情| 蜜桃91丨九色丨蝌蚪91桃色| 免费黄网站欧美| 精品一区二区三区香蕉蜜桃 | 国产精品久久久久aaaa樱花| 国产欧美精品一区aⅴ影院| 国产欧美日韩不卡免费| 中文字幕免费在线观看视频一区| 欧美va亚洲va在线观看蝴蝶网| 制服丝袜亚洲色图| 日韩一区二区三区电影| 久久夜色精品一区| 一区二区三区四区精品在线视频| 亚洲综合激情另类小说区| 久久精品国产成人一区二区三区| 国产成人欧美日韩在线电影| 99re这里都是精品| 欧美一区二区视频免费观看| 久久九九久久九九| 午夜一区二区三区在线观看| 国产激情一区二区三区四区| 色狠狠色噜噜噜综合网| 久久亚洲二区三区| 天天综合天天综合色| 99视频热这里只有精品免费| 日韩一卡二卡三卡四卡| 亚洲成人免费视频| 色婷婷综合久久久中文一区二区 | 欧美精品在线观看一区二区| 精品国产a毛片| 日本成人在线不卡视频| 欧美日韩激情一区二区三区| 综合av第一页| 国产精品资源站在线| 欧美日韩高清在线播放| 亚洲人成网站在线| 成人午夜私人影院| 国产日韩成人精品| 精品一区二区三区久久久| 91精品国产高清一区二区三区蜜臀| 一区二区三区四区不卡在线 | 欧美男同性恋视频网站| 日韩精品中文字幕一区二区三区 | 亚洲最新在线观看| 欧美不卡视频一区| 欧美午夜宅男影院| 国产99精品国产| 中文字幕一区二区在线播放| 成人av影视在线观看| 亚洲永久精品大片| 日韩欧美一级二级| 成人网男人的天堂| 亚洲色图视频网| 91精品国产手机| 国产成人亚洲综合a∨婷婷 | 亚洲国产电影在线观看| 色诱视频网站一区| 精品一区二区三区免费视频| 中文av字幕一区| 欧美大片国产精品| 91高清视频在线| 欧美在线观看视频在线| 亚洲成av人片一区二区梦乃| 国产精品久久久久久久久图文区| 日韩精品一区二区三区视频| 欧美乱妇23p| 欧美日韩亚洲国产综合| 成人午夜私人影院| 99久久婷婷国产综合精品| 国产一区二区按摩在线观看| 亚洲gay无套男同| 亚洲一二三区在线观看| 亚洲综合视频在线| 性做久久久久久久免费看| 亚洲国产一区二区a毛片| 一区二区三区在线不卡| 亚洲欧美偷拍另类a∨色屁股| 国产日韩在线不卡| 久久综合九色综合欧美就去吻| 日韩一区二区三区观看| 精品少妇一区二区三区免费观看 | 在线综合+亚洲+欧美中文字幕| 911精品产国品一二三产区| 日韩一区二区三区在线| 国产精品国产三级国产有无不卡 | 国产成人鲁色资源国产91色综| 高清视频一区二区| 捆绑调教美女网站视频一区| 天堂va蜜桃一区二区三区|