[commit] r2140 - in trunk: GME/Gme/AutoRoute Paradigms/MetaGME/MetaDecorator

GMESRC Repository Notifications gme-commit at list.isis.vanderbilt.edu
Tue Jan 15 14:30:34 CST 2013


Author: ksmyth
Date: Tue Jan 15 14:30:34 2013
New Revision: 2140

Log:
Fix bug where connections were never straight: now that elements' top left corner are aligned on GME grid (instead of centered), autorouter needs to change to start/end connections in the center of a grid

Modified:
   trunk/GME/Gme/AutoRoute/AutoRouterPort.cpp
   trunk/Paradigms/MetaGME/MetaDecorator/DecoratorStd.h

Modified: trunk/GME/Gme/AutoRoute/AutoRouterPort.cpp
==============================================================================
--- trunk/GME/Gme/AutoRoute/AutoRouterPort.cpp	Tue Jan 15 14:29:36 2013	(r2139)
+++ trunk/GME/Gme/AutoRoute/AutoRouterPort.cpp	Tue Jan 15 14:30:34 2013	(r2140)
@@ -263,6 +263,11 @@
 	return point;
 }
 
+static inline LONG RoundToHalfGrid(LONG left, LONG right)
+{
+	return ((right + left) / 2) / GME_GRID_SIZE * GME_GRID_SIZE + (GME_GRID_SIZE / 2);
+}
+
 CPoint CAutoRouterPort::CreateStartEndPointOn(RoutingDirection dir) const
 {
 	ASSERT( !rect.IsRectEmpty() );
@@ -271,16 +276,16 @@
 	switch( dir )
 	{
 	case Dir_Top:
-		return CPoint((rect.left + rect.right) / 2, rect.top);
+		return CPoint(RoundToHalfGrid(rect.left, rect.right), rect.top);
 
 	case Dir_Bottom:
-		return CPoint((rect.left + rect.right) / 2, rect.bottom - 1);
+		return CPoint(RoundToHalfGrid(rect.left, rect.right), rect.bottom - 1);
 
 	case Dir_Left:
-		return CPoint(rect.left, (rect.top + rect.bottom) / 2);
+		return CPoint(rect.left, RoundToHalfGrid(rect.top, rect.bottom));
 	}
 
-	return CPoint(rect.right - 1, (rect.top + rect.bottom) / 2);
+	return CPoint(rect.right - 1, RoundToHalfGrid(rect.top, rect.bottom));
 }
 
 CPoint CAutoRouterPort::CreateStartEndPointTo(const CPoint& point, bool isStart) const

Modified: trunk/Paradigms/MetaGME/MetaDecorator/DecoratorStd.h
==============================================================================
--- trunk/Paradigms/MetaGME/MetaDecorator/DecoratorStd.h	Tue Jan 15 14:29:36 2013	(r2139)
+++ trunk/Paradigms/MetaGME/MetaDecorator/DecoratorStd.h	Tue Jan 15 14:30:34 2013	(r2140)
@@ -44,7 +44,7 @@
 #define	 META_DECORATOR_MARGINY		4
 #define	 META_DECORATOR_GAPY		0
 #define  META_DECORATOR_MINATTRSIZE	13
-#define  META_INHERITANCE_WIDTH		24
+#define  META_INHERITANCE_WIDTH		21
 									// sin 60
 #define  META_INHERITANCE_RATIO		0.86602540378443864676372317075294
 #define	 META_INHERITANCE_HEIGHT	(META_INHERITANCE_RATIO * META_INHERITANCE_WIDTH)


More information about the gme-commit mailing list