mirror of
https://github.com/KLayout/klayout.git
synced 2026-09-04 08:43:42 +02:00
Added "transformed" method to several shape primitives
The new version will transform double-coordinate types to integer-coordinate types through a "VCplxTrans".
This commit is contained in:
Vendored
+4
@@ -124,7 +124,11 @@ class DBBox_TestClass < TestBase
|
||||
t = RBA::DTrans::new( RBA::DTrans::R90, RBA::DPoint::new( 5, 6 ))
|
||||
assert_equal( b.transformed(t).to_s, "(-17,7;6,23)" )
|
||||
m = RBA::DCplxTrans::new( t, 1.5 )
|
||||
assert_equal( b.transformed(m).class.to_s, "RBA::DBox" )
|
||||
assert_equal( b.transformed(m).to_s, "(-28,7.5;6.5,31.5)" )
|
||||
m = RBA::VCplxTrans::new( 1000.0 )
|
||||
assert_equal( b.transformed(m).class.to_s, "RBA::Box" )
|
||||
assert_equal( b.transformed(m).to_s, "(1000,-1000;17000,22000)" )
|
||||
|
||||
end
|
||||
|
||||
|
||||
Vendored
+3
@@ -62,7 +62,10 @@ class DBEdgePair_TestClass < TestBase
|
||||
assert_equal(ep.normalized.to_s, "(10,20;0,0)/(-10,0;-10,30)")
|
||||
|
||||
assert_equal(ep.transformed(RBA::DTrans::new(1)).to_s, "(0,0;-20,10)/(0,-10;-30,-10)")
|
||||
assert_equal(ep.transformed(RBA::DCplxTrans::new(2.5)).class.to_s, "RBA::DEdgePair")
|
||||
assert_equal(ep.transformed(RBA::DCplxTrans::new(2.5)).to_s, "(0,0;25,50)/(-25,0;-25,75)")
|
||||
assert_equal(ep.transformed(RBA::VCplxTrans::new(2.5)).class.to_s, "RBA::EdgePair")
|
||||
assert_equal(ep.transformed(RBA::VCplxTrans::new(2.5)).to_s, "(0,0;25,50)/(-25,0;-25,75)")
|
||||
|
||||
assert_equal(ep.polygon(0).to_s, "(-10,0;-10,30;0,0;10,20)")
|
||||
assert_equal(ep.polygon(0).class.to_s, "RBA::DPolygon")
|
||||
|
||||
Vendored
+4
@@ -96,6 +96,10 @@ class DBEdge_TestClass < TestBase
|
||||
assert_equal( a.to_s, "(6,2;-2,2)" )
|
||||
|
||||
assert_equal( a.transformed(RBA::DCplxTrans::new(2.2)).to_s, "(13.2,4.4;-4.4,4.4)" )
|
||||
assert_equal( a.transformed(RBA::DCplxTrans::new(2.2)).class.to_s, "RBA::DEdge" )
|
||||
|
||||
assert_equal( a.transformed(RBA::VCplxTrans::new(22)).to_s, "(132,44;-44,44)" )
|
||||
assert_equal( a.transformed(RBA::VCplxTrans::new(22)).class.to_s, "RBA::Edge" )
|
||||
|
||||
assert_equal( RBA::DEdge::new( -1, -5, -1, -1 ).crossed_by?( a ), true )
|
||||
assert_equal( RBA::DEdge::new( -1, -5, -1, -1 ).crossing_point( a ).to_s, "-1,2" )
|
||||
|
||||
Vendored
+5
@@ -76,8 +76,13 @@ class DBPath_TestClass < TestBase
|
||||
assert_equal( b.to_s, "(1,1;3,2;2,5) w=2.5 bx=-0.5 ex=1.5 r=false" )
|
||||
|
||||
m = RBA::DCplxTrans::new( RBA::DTrans::new, 1.5 )
|
||||
assert_equal( a.transformed(m).class.to_s, "RBA::DPath")
|
||||
assert_equal( a.transformed(m).to_s, "(1.5,1.5;4.5,3;3,7.5) w=3.75 bx=-0.75 ex=2.25 r=false" )
|
||||
|
||||
m = RBA::VCplxTrans::new(1000.0)
|
||||
assert_equal( a.transformed(m).class.to_s, "RBA::Path")
|
||||
assert_equal( a.transformed(m).to_s, "(1000,1000;3000,2000;2000,5000) w=2500 bx=-500 ex=1500 r=false" )
|
||||
|
||||
a.points = [ RBA::DPoint::new( 0, 1 ), RBA::DPoint::new( 1, 1 ), RBA::DPoint::new( 1, 5 ) ]
|
||||
a.width = 2.0
|
||||
a.bgn_ext = 1.0
|
||||
|
||||
Vendored
+5
@@ -56,8 +56,13 @@ class DBPolygon_TestClass < TestBase
|
||||
assert_equal( b.to_s, "(6,-10;6,15;21,15;21,-10)" )
|
||||
|
||||
m = RBA::DCplxTrans::new( RBA::DTrans::new, 1.5 )
|
||||
assert_equal( a.transformed(m).class.to_s, "RBA::DPolygon" )
|
||||
assert_equal( a.transformed(m).to_s, "(9,-15;9,22.5;31.5,22.5;31.5,-15)" )
|
||||
|
||||
m = RBA::VCplxTrans::new( 1000.0 )
|
||||
assert_equal( a.transformed(m).class.to_s, "RBA::Polygon" )
|
||||
assert_equal( a.transformed(m).to_s, "(6000,-10000;6000,15000;21000,15000;21000,-10000)" )
|
||||
|
||||
a.hull = [ RBA::DPoint::new( 0, 1 ), RBA::DPoint::new( 1, 1 ), RBA::DPoint::new( 1, 5 ) ]
|
||||
assert_equal( a.bbox.to_s, "(0,1;1,5)" )
|
||||
|
||||
|
||||
Vendored
+5
@@ -65,6 +65,7 @@ class DBSimplePolygon_TestClass < TestBase
|
||||
assert_equal( b.to_s, "(6,-10;6,15;21,15;21,-10)" )
|
||||
|
||||
m = RBA::DCplxTrans::new( RBA::DTrans::new, 1.5 )
|
||||
assert_equal( a.transformed(m).class.to_s, "RBA::DSimplePolygon" )
|
||||
assert_equal( a.transformed(m).to_s, "(9,-15;9,22.5;31.5,22.5;31.5,-15)" )
|
||||
assert_equal( a.to_s, "(6,-10;6,15;21,15;21,-10)" )
|
||||
|
||||
@@ -72,6 +73,10 @@ class DBSimplePolygon_TestClass < TestBase
|
||||
b.transform(m)
|
||||
assert_equal( b.to_s, "(9,-15;9,22.5;31.5,22.5;31.5,-15)" )
|
||||
|
||||
m = RBA::VCplxTrans::new( 1000.0 )
|
||||
assert_equal( a.transformed(m).class.to_s, "RBA::SimplePolygon" )
|
||||
assert_equal( a.transformed(m).to_s, "(6000,-10000;6000,15000;21000,15000;21000,-10000)" )
|
||||
|
||||
a.points = [ RBA::DPoint::new( 0, 1 ), RBA::DPoint::new( 1, 1 ), RBA::DPoint::new( 1, 5 ) ]
|
||||
assert_equal( a.bbox.to_s, "(0,1;1,5)" )
|
||||
|
||||
|
||||
Vendored
+5
@@ -68,8 +68,13 @@ class DBText_TestClass < TestBase
|
||||
assert_equal( b.to_s, "('hallo',m45 6,7)" )
|
||||
|
||||
m = RBA::DCplxTrans::new( RBA::DTrans::new, 1.5 )
|
||||
assert_equal( a.transformed(m).class.to_s, "RBA::DText" )
|
||||
assert_equal( a.transformed(m).to_s, "('hallo',m45 9,10.5)" )
|
||||
|
||||
m = RBA::VCplxTrans::new( 1000.0 )
|
||||
assert_equal( a.transformed(m).class.to_s, "RBA::Text" )
|
||||
assert_equal( a.transformed(m).to_s, "('hallo',m45 6000,7000)" )
|
||||
|
||||
end
|
||||
|
||||
# Text basics
|
||||
|
||||
Reference in New Issue
Block a user