body = irit.sbspline( 4, 4, irit.list( irit.list( irit.ctlpt( irit.E3, 1.4, 2.25, 0 ), \ irit.ctlpt( irit.E3, 1.3375, 2.38125, 0 ), \ irit.ctlpt( irit.E3, 1.4375, 2.38125, 0 ), \ irit.ctlpt( irit.E3, 1.5, 2.25, 0 ), \ irit.ctlpt( irit.E3, 1.75, 1.725, 0 ), \ irit.ctlpt( irit.E3, 2, 1.2, 0 ), \ irit.ctlpt( irit.E3, 2, 0.75, 0 ), \ irit.ctlpt( irit.E3, 2, 0.3, 0 ), \ irit.ctlpt( irit.E3, 1.5, 0.075, 0 ), \ irit.ctlpt( irit.E3, 1.5, 0, 0 ) ), irit.list( \ irit.ctlpt( irit.E3, 1.4, 2.25, 0.784 ), \ irit.ctlpt( irit.E3, 1.3375, 2.38125, 0.749 ), \ irit.ctlpt( irit.E3, 1.4375, 2.38125, 0.805 ), \ irit.ctlpt( irit.E3, 1.5, 2.25, 0.84 ), \ irit.ctlpt( irit.E3, 1.75, 1.725, 0.98 ), \ irit.ctlpt( irit.E3, 2, 1.2, 1.12 ), \ irit.ctlpt( irit.E3, 2, 0.75, 1.12 ), \ irit.ctlpt( irit.E3, 2, 0.3, 1.12 ), \ irit.ctlpt( irit.E3, 1.5, 0.075, 0.84 ), \ irit.ctlpt( irit.E3, 1.5, 0, 0.84 ) ), irit.list( \ irit.ctlpt( irit.E3, 0.784, 2.25, 1.4 ), \ irit.ctlpt( irit.E3, 0.749, 2.38125, 1.3375 ), \ irit.ctlpt( irit.E3, 0.805, 2.38125, 1.4375 ), \ irit.ctlpt( irit.E3, 0.84, 2.25, 1.5 ), \ irit.ctlpt( irit.E3, 0.98, 1.725, 1.75 ), \ irit.ctlpt( irit.E3, 1.12, 1.2, 2 ), \ irit.ctlpt( irit.E3, 1.12, 0.75, 2 ), \ irit.ctlpt( irit.E3, 1.12, 0.3, 2 ), \ irit.ctlpt( irit.E3, 0.84, 0.075, 1.5 ), \ irit.ctlpt( irit.E3, 0.84, 0, 1.5 ) ), irit.list( \ irit.ctlpt( irit.E3, 0, 2.25, 1.4 ), \ irit.ctlpt( irit.E3, 0, 2.38125, 1.3375 ), \ irit.ctlpt( irit.E3, 0, 2.38125, 1.4375 ), \ irit.ctlpt( irit.E3, 0, 2.25, 1.5 ), \ irit.ctlpt( irit.E3, 0, 1.725, 1.75 ), \ irit.ctlpt( irit.E3, 0, 1.2, 2 ), \ irit.ctlpt( irit.E3, 0, 0.75, 2 ), \ irit.ctlpt( irit.E3, 0, 0.3, 2 ), \ irit.ctlpt( irit.E3, 0, 0.075, 1.5 ), \ irit.ctlpt( irit.E3, 0, 0, 1.5 ) ), irit.list( \ irit.ctlpt( irit.E3, (-0.784 ), 2.25, 1.4 ), \ irit.ctlpt( irit.E3, (-0.749 ), 2.38125, 1.3375 ), \ irit.ctlpt( irit.E3, (-0.805 ), 2.38125, 1.4375 ), \ irit.ctlpt( irit.E3, (-0.84 ), 2.25, 1.5 ), \ irit.ctlpt( irit.E3, (-0.98 ), 1.725, 1.75 ), \ irit.ctlpt( irit.E3, (-1.12 ), 1.2, 2 ), \ irit.ctlpt( irit.E3, (-1.12 ), 0.75, 2 ), \ irit.ctlpt( irit.E3, (-1.12 ), 0.3, 2 ), \ irit.ctlpt( irit.E3, (-0.84 ), 0.075, 1.5 ), \ irit.ctlpt( irit.E3, (-0.84 ), 0, 1.5 ) ), irit.list( \ irit.ctlpt( irit.E3, (-1.4 ), 2.25, 0.784 ), \ irit.ctlpt( irit.E3, (-1.3375 ), 2.38125, 0.749 ), \ irit.ctlpt( irit.E3, (-1.4375 ), 2.38125, 0.805 ), \ irit.ctlpt( irit.E3, (-1.5 ), 2.25, 0.84 ), \ irit.ctlpt( irit.E3, (-1.75 ), 1.725, 0.98 ), \ irit.ctlpt( irit.E3, (-2 ), 1.2, 1.12 ), \ irit.ctlpt( irit.E3, (-2 ), 0.75, 1.12 ), \ irit.ctlpt( irit.E3, (-2 ), 0.3, 1.12 ), \ irit.ctlpt( irit.E3, (-1.5 ), 0.075, 0.84 ), \ irit.ctlpt( irit.E3, (-1.5 ), 0, 0.84 ) ), irit.list( \ irit.ctlpt( irit.E3, (-1.4 ), 2.25, 0 ), \ irit.ctlpt( irit.E3, (-1.3375 ), 2.38125, 0 ), \ irit.ctlpt( irit.E3, (-1.4375 ), 2.38125, 0 ), \ irit.ctlpt( irit.E3, (-1.5 ), 2.25, 0 ), \ irit.ctlpt( irit.E3, (-1.75 ), 1.725, 0 ), \ irit.ctlpt( irit.E3, (-2 ), 1.2, 0 ), \ irit.ctlpt( irit.E3, (-2 ), 0.75, 0 ), \ irit.ctlpt( irit.E3, (-2 ), 0.3, 0 ), \ irit.ctlpt( irit.E3, (-1.5 ), 0.075, 0 ), \ irit.ctlpt( irit.E3, (-1.5 ), 0, 0 ) ), irit.list( \ irit.ctlpt( irit.E3, (-1.4 ), 2.25, (-0.784 ) ), \ irit.ctlpt( irit.E3, (-1.3375 ), 2.38125, (-0.749 ) ), \ irit.ctlpt( irit.E3, (-1.4375 ), 2.38125, (-0.805 ) ), \ irit.ctlpt( irit.E3, (-1.5 ), 2.25, (-0.84 ) ), \ irit.ctlpt( irit.E3, (-1.75 ), 1.725, (-0.98 ) ), \ irit.ctlpt( irit.E3, (-2 ), 1.2, (-1.12 ) ), \ irit.ctlpt( irit.E3, (-2 ), 0.75, (-1.12 ) ), \ irit.ctlpt( irit.E3, (-2 ), 0.3, (-1.12 ) ), \ irit.ctlpt( irit.E3, (-1.5 ), 0.075, (-0.84 ) ), \ irit.ctlpt( irit.E3, (-1.5 ), 0, (-0.84 ) ) ), irit.list( \ irit.ctlpt( irit.E3, (-0.784 ), 2.25, (-1.4 ) ), \ irit.ctlpt( irit.E3, (-0.749 ), 2.38125, (-1.3375 ) ), \ irit.ctlpt( irit.E3, (-0.805 ), 2.38125, (-1.4375 ) ), \ irit.ctlpt( irit.E3, (-0.84 ), 2.25, (-1.5 ) ), \ irit.ctlpt( irit.E3, (-0.98 ), 1.725, (-1.75 ) ), \ irit.ctlpt( irit.E3, (-1.12 ), 1.2, (-2 ) ), \ irit.ctlpt( irit.E3, (-1.12 ), 0.75, (-2 ) ), \ irit.ctlpt( irit.E3, (-1.12 ), 0.3, (-2 ) ), \ irit.ctlpt( irit.E3, (-0.84 ), 0.075, (-1.5 ) ), \ irit.ctlpt( irit.E3, (-0.84 ), 0, (-1.5 ) ) ), irit.list( \ irit.ctlpt( irit.E3, 0, 2.25, (-1.4 ) ), \ irit.ctlpt( irit.E3, 0, 2.38125, (-1.3375 ) ), \ irit.ctlpt( irit.E3, 0, 2.38125, (-1.4375 ) ), \ irit.ctlpt( irit.E3, 0, 2.25, (-1.5 ) ), \ irit.ctlpt( irit.E3, 0, 1.725, (-1.75 ) ), \ irit.ctlpt( irit.E3, 0, 1.2, (-2 ) ), \ irit.ctlpt( irit.E3, 0, 0.75, (-2 ) ), \ irit.ctlpt( irit.E3, 0, 0.3, (-2 ) ), \ irit.ctlpt( irit.E3, 0, 0.075, (-1.5 ) ), \ irit.ctlpt( irit.E3, 0, 0, (-1.5 ) ) ), irit.list( \ irit.ctlpt( irit.E3, 0.784, 2.25, (-1.4 ) ), \ irit.ctlpt( irit.E3, 0.749, 2.38125, (-1.3375 ) ), \ irit.ctlpt( irit.E3, 0.805, 2.38125, (-1.4375 ) ), \ irit.ctlpt( irit.E3, 0.84, 2.25, (-1.5 ) ), \ irit.ctlpt( irit.E3, 0.98, 1.725, (-1.75 ) ), \ irit.ctlpt( irit.E3, 1.12, 1.2, (-2 ) ), \ irit.ctlpt( irit.E3, 1.12, 0.75, (-2 ) ), \ irit.ctlpt( irit.E3, 1.12, 0.3, (-2 ) ), \ irit.ctlpt( irit.E3, 0.84, 0.075, (-1.5 ) ), \ irit.ctlpt( irit.E3, 0.84, 0, (-1.5 ) ) ), irit.list( \ irit.ctlpt( irit.E3, 1.4, 2.25, (-0.784 ) ), \ irit.ctlpt( irit.E3, 1.3375, 2.38125, (-0.749 ) ), \ irit.ctlpt( irit.E3, 1.4375, 2.38125, (-0.805 ) ), \ irit.ctlpt( irit.E3, 1.5, 2.25, (-0.84 ) ), \ irit.ctlpt( irit.E3, 1.75, 1.725, (-0.98 ) ), \ irit.ctlpt( irit.E3, 2, 1.2, (-1.12 ) ), \ irit.ctlpt( irit.E3, 2, 0.75, (-1.12 ) ), \ irit.ctlpt( irit.E3, 2, 0.3, (-1.12 ) ), \ irit.ctlpt( irit.E3, 1.5, 0.075, (-0.84 ) ), \ irit.ctlpt( irit.E3, 1.5, 0, (-0.84 ) ) ), irit.list( \ irit.ctlpt( irit.E3, 1.4, 2.25, 0 ), \ irit.ctlpt( irit.E3, 1.3375, 2.38125, 0 ), \ irit.ctlpt( irit.E3, 1.4375, 2.38125, 0 ), \ irit.ctlpt( irit.E3, 1.5, 2.25, 0 ), \ irit.ctlpt( irit.E3, 1.75, 1.725, 0 ), \ irit.ctlpt( irit.E3, 2, 1.2, 0 ), \ irit.ctlpt( irit.E3, 2, 0.75, 0 ), \ irit.ctlpt( irit.E3, 2, 0.3, 0 ), \ irit.ctlpt( irit.E3, 1.5, 0.075, 0 ), \ irit.ctlpt( irit.E3, 1.5, 0, 0 ) ) ), irit.list( irit.list( 0, 0, 0, 0, 1, 1,\ 1, 2, 2, 2, 3, 3,\ 3, 3 ), irit.list( 0, 0, 0, 0, 1, 1,\ 1, 2, 2, 2, 3, 3,\ 3, 4, 4, 4, 4 ) ) )
csec3 = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, (-1 ), 0 ), \ irit.ctlpt( irit.E1, (-1 ) ), \ irit.ctlpt( irit.E2, (-0.1 ), 0.06 ), \ irit.ctlpt( irit.E2, (-1 ), 1.8 ), \ irit.ctlpt( irit.E2, 0, 0.4 ), \ irit.ctlpt( irit.E2, 1, 1.8 ), \ irit.ctlpt( irit.E2, 0.1, 0.06 ), \ irit.ctlpt( irit.E1, 1 ), \ irit.ctlpt( irit.E1, 1 ) ), irit.list( irit.KV_OPEN ) ) srf1 = irit.sbspline( 4, 3, irit.list( irit.list( irit.ctlpt( irit.E3, (-0.365 ), 1.1, 0.122 ), \ irit.ctlpt( irit.E3, (-0.292 ), 0.188, (-0.334 ) ), \ irit.ctlpt( irit.E3, (-0.334 ), (-0.171 ), (-0.147 ) ), \ irit.ctlpt( irit.E3, (-0.293 ), (-0.632 ), (-0.145 ) ) ), irit.list( \ irit.ctlpt( irit.E3, 0.0448, 0.639, (-0.239 ) ), \ irit.ctlpt( irit.E3, 0.0636, 0.159, (-0.467 ) ), \ irit.ctlpt( irit.E3, 0.0242, (-0.308 ), (-0.238 ) ), \ irit.ctlpt( irit.E3, 0.0812, (-0.631 ), 0.0995 ) ), irit.list( \ irit.ctlpt( irit.E3, 0.404, 0.697, 0.00532 ), \ irit.ctlpt( irit.E3, 0.451, 0.167, (-0.265 ) ), \ irit.ctlpt( irit.E3, 0.234, (-0.279 ), 0.0477 ), \ irit.ctlpt( irit.E3, 0.369, (-0.929 ), (-0.187 ) ) ) ), irit.list( irit.list( irit.KV_OPEN ), irit.list( irit.KV_OPEN ) ) ) irit.attrib(srf1, "rgb", irit.GenStrObject("255,255,100")) srf2 = irit.sbspline( 4, 3, irit.list( irit.list( irit.ctlpt( irit.E3, 0.633, 0.711, 0.316 ), \ irit.ctlpt( irit.E3, 0.916, (-0.0498 ), 0.157 ), \ irit.ctlpt( irit.E3, 0.767, (-0.586 ), 0.258 ), \ irit.ctlpt( irit.E3, 0.651, (-1.07 ), 0.0614 ) ), irit.list( \ irit.ctlpt( irit.E3, 0.938, 0.741, 0.563 ), \ irit.ctlpt( irit.E3, 1.05, 0.00168, 0.603 ), \ irit.ctlpt( irit.E3, 0.87, (-0.535 ), 0.649 ), \ irit.ctlpt( irit.E3, 0.668, (-0.963 ), 0.649 ) ), irit.list( \
paramumb = irit.sumbilic(s, 0.05, 1e-009) irit.interact(irit.list(evaltoeuclidean(s, paramumb), s)) # ################################ wig = irit.sbspline( 4, 4, irit.list( irit.list( irit.ctlpt( irit.E3, 0.0135, 0.463, (-1.01 ) ), \ irit.ctlpt( irit.E3, 0.411, (-0.462 ), (-0.94 ) ), \ irit.ctlpt( irit.E3, 0.699, 0.072, (-0.382 ) ), \ irit.ctlpt( irit.E3, 0.999, 0.072, (-0.382 ) ) ), irit.list( \ irit.ctlpt( irit.E3, (-0.202 ), 1.16, (-0.345 ) ), \ irit.ctlpt( irit.E3, 0.211, 0.0227, (-0.343 ) ), \ irit.ctlpt( irit.E3, 0.5, 0.557, 0.215 ), \ irit.ctlpt( irit.E3, 0.7, 0.557, 0.215 ) ), irit.list( \ irit.ctlpt( irit.E3, (-0.294 ), 0.182, (-0.234 ) ), \ irit.ctlpt( irit.E3, 0.104, (-0.744 ), (-0.163 ) ), \ irit.ctlpt( irit.E3, 0.392, (-0.209 ), 0.395 ), \ irit.ctlpt( irit.E3, 0.592, (-0.209 ), 0.395 ) ), irit.list( \ irit.ctlpt( irit.E3, (-0.509 ), 0.876, 0.432 ), \ irit.ctlpt( irit.E3, (-0.0963 ), (-0.259 ), 0.434 ), \ irit.ctlpt( irit.E3, 0.193, 0.276, 0.992 ), \ irit.ctlpt( irit.E3, 0.293, 0.276, 0.992 ) ), irit.list( \ irit.ctlpt( irit.E3, (-0.601 ), (-0.0993 ), 0.543 ), \ irit.ctlpt( irit.E3, (-0.203 ), (-1.03 ), 0.614 ), \ irit.ctlpt( irit.E3, 0.0854, (-0.491 ), 1.17 ), \ irit.ctlpt( irit.E3, 0.4854, (-0.491 ), 1.17 ) ) ), irit.list( irit.list( irit.KV_OPEN ), irit.list( irit.KV_OPEN ) ) ) irit.color(wig, irit.RED) paramumb = irit.sumbilic(wig, 0.05, 0.0001) irit.interact(irit.list(evaltoeuclidean(wig, paramumb), wig)) irit.free(wig)
irit.color(s1, irit.RED) irit.color(s2, irit.BLUE) testssi(s1, s2, 0.1) testssi(s1, s2, 0.03) # ############################################################################ wiggle = irit.sbspline( 3, 3, irit.list( irit.list( irit.ctlpt( irit.E3, 0.013501, 0.46333, (-1.01136 ) ), \ irit.ctlpt( irit.E3, 0.410664, (-0.462427 ), (-0.939545 ) ), \ irit.ctlpt( irit.E3, 0.699477, 0.071974, (-0.381915 ) ) ), irit.list( \ irit.ctlpt( irit.E3, (-0.201925 ), 1.15706, (-0.345263 ) ), \ irit.ctlpt( irit.E3, 0.210717, 0.022708, (-0.34285 ) ), \ irit.ctlpt( irit.E3, 0.49953, 0.557109, 0.21478 ) ), irit.list( \ irit.ctlpt( irit.E3, (-0.293521 ), 0.182036, (-0.234382 ) ), \ irit.ctlpt( irit.E3, 0.103642, (-0.743721 ), (-0.162567 ) ), \ irit.ctlpt( irit.E3, 0.392455, (-0.20932 ), 0.395063 ) ), irit.list( \ irit.ctlpt( irit.E3, (-0.508947 ), 0.875765, 0.431715 ), \ irit.ctlpt( irit.E3, (-0.096305 ), (-0.258586 ), 0.434128 ), \ irit.ctlpt( irit.E3, 0.192508, 0.275815, 0.991758 ) ), irit.list( \ irit.ctlpt( irit.E3, (-0.600543 ), (-0.099258 ), 0.542596 ), \ irit.ctlpt( irit.E3, (-0.20338 ), (-1.02502 ), 0.614411 ), \ irit.ctlpt( irit.E3, 0.085433, (-0.490614 ), 1.17204 ) ) ), irit.list( irit.list( irit.KV_OPEN ), irit.list( irit.KV_OPEN ) ) ) irit.color(wiggle, irit.BLUE) wiggle2 = wiggle * irit.rx(4) * irit.rz(2) irit.color(wiggle2, irit.RED) testssi(wiggle, wiggle2, 0.1) testssi(wiggle, wiggle2, 0.03) # ############################################################################
irit.ctlpt( irit.E3, 0, 2, 1 ) ), irit.list( \ irit.ctlpt( irit.E3, 1.1, 0, 0 ), \ irit.ctlpt( irit.E3, 1.3, 1.5, 2 ), \ irit.ctlpt( irit.E3, 1, 2.1, 0 ) ), irit.list( \ irit.ctlpt( irit.E3, 2.1, 0, 2 ), \ irit.ctlpt( irit.E3, 2.3, 1, 0 ), \ irit.ctlpt( irit.E3, 2, 2, 2 ) ), irit.list( \ irit.ctlpt( irit.E3, 3.1, 0, 0 ), \ irit.ctlpt( irit.E3, 3.3, 1.5, 2 ), \ irit.ctlpt( irit.E3, 3, 2.1, 0 ) ), irit.list( \ irit.ctlpt( irit.E3, 4.1, 0, 1 ), \ irit.ctlpt( irit.E3, 4.3, 1, 0 ), \ irit.ctlpt( irit.E3, 4, 2, 1 ) ) ) sb1 = irit.sbezier(spts) sb2 = irit.sbspline( 3, 3, spts, irit.list(irit.list(irit.KV_OPEN), irit.list(irit.KV_OPEN))) irit.free(spts) # # Constructor using TrimSrf # tcrv1 = irit.cbspline( 2, irit.list( irit.ctlpt( irit.E2, 0.3, 0.3 ), \ irit.ctlpt( irit.E2, 0.7, 0.3 ), \ irit.ctlpt( irit.E2, 0.7, 0.7 ), \ irit.ctlpt( irit.E2, 0.3, 0.7 ), \ irit.ctlpt( irit.E2, 0.3, 0.3 ) ), irit.list( irit.KV_OPEN ) ) tcrv2 = irit.circle((0.5, 0.5, 0), 0.25) tcrv3 = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, 0.3, 0.3 ), \ irit.ctlpt( irit.E2, 0.7, 0.3 ), \ irit.ctlpt( irit.E2, 0.7, 0.7 ), \
irit.color(aiso, irit.YELLOW) irit.interact(irit.list(irit.GetAxes(), srf1, aiso)) irit.color(srf1, irit.MAGENTA) aiso = irit.adapiso(srf1, irit.ROW, 0.05, irit.TRUE, irit.FALSE) irit.color(aiso, irit.YELLOW) irit.interact(irit.list(irit.GetAxes(), srf1, aiso)) aiso = irit.adapiso(srf1, irit.ROW, 0.05, irit.FALSE, irit.FALSE) irit.color(aiso, irit.YELLOW) irit.interact(irit.list(irit.GetAxes(), srf1, aiso)) srf2 = irit.sbspline( 3, 3, irit.list( irit.list( irit.ctlpt( irit.E3, 1, 0, 0 ), \ irit.ctlpt( irit.E3, 1, 1, 2 ), \ irit.ctlpt( irit.E3, 1, 2, 0 ) ), irit.list( \ irit.ctlpt( irit.E3, 2, 0.9, 2 ), \ irit.ctlpt( irit.E3, 2, 1, 0 ), \ irit.ctlpt( irit.E3, 2, 1.1, 2 ) ), irit.list( \ irit.ctlpt( irit.E3, 3, 0, 0 ), \ irit.ctlpt( irit.E3, 3, 1, 2 ), \ irit.ctlpt( irit.E3, 3, 2, 0 ) ), irit.list( \ irit.ctlpt( irit.E3, 4, 0.9, 1 ), \ irit.ctlpt( irit.E3, 4, 1, 0 ), \ irit.ctlpt( irit.E3, 4, 1.1, 1 ) ) ), irit.list( irit.list( irit.KV_OPEN ), irit.list( irit.KV_OPEN ) ) ) * irit.scale( ( 0.5, 0.5, 0.5 ) ) * irit.trans( ( (-0.5 ), 0, 0 ) ) irit.color(srf2, irit.MAGENTA) aiso = irit.adapiso(srf2, irit.COL, 0.05, irit.TRUE, irit.FALSE) irit.color(aiso, irit.YELLOW) irit.interact(irit.list(irit.GetAxes(), srf2, aiso)) irit.save("adap1iso", irit.list(irit.GetAxes(), srf2, aiso)) aiso = irit.adapiso(srf2, irit.COL, 0.05, irit.FALSE, irit.FALSE) irit.color(aiso, irit.YELLOW) irit.interact(irit.list(irit.GetAxes(), srf2, aiso))
irit.interact(all) irit.save("ssi3", all) # # 4. Two biquadratic polynomial Bspline surfaces. Intersection is open. # s1 = irit.sbspline( 3, 3, irit.list( irit.list( irit.ctlpt( irit.E3, 0.1, 0, 1 ), \ irit.ctlpt( irit.E3, 0.3, 1, 0.5 ), \ irit.ctlpt( irit.E3, 0, 2, 1 ) ), irit.list( \ irit.ctlpt( irit.E3, 1.1, 0, 0.5 ), \ irit.ctlpt( irit.E3, 1.3, 1, 0 ), \ irit.ctlpt( irit.E3, 1, 2, 0.5 ) ), irit.list( \ irit.ctlpt( irit.E3, 2.1, 0, 1.1 ), \ irit.ctlpt( irit.E3, 2.3, 1, 0.4 ), \ irit.ctlpt( irit.E3, 2, 2, 1.2 ) ), irit.list( \ irit.ctlpt( irit.E3, 3.1, 0, 1.9 ), \ irit.ctlpt( irit.E3, 3.3, 1.1, 1.4 ), \ irit.ctlpt( irit.E3, 3, 2, 1.9 ) ), irit.list( \ irit.ctlpt( irit.E3, 4.1, 0, 1.1 ), \ irit.ctlpt( irit.E3, 4.3, 1, (-0.4 ) ), \ irit.ctlpt( irit.E3, 4, 2.2, 1.2 ) ) ), irit.list( irit.list( irit.KV_OPEN ), irit.list( irit.KV_OPEN ) ) ) s2 = irit.sbspline( 3, 3, irit.list( irit.list( irit.ctlpt( irit.E3, 0.1, 0, 1 ), \ irit.ctlpt( irit.E3, 0.3, 0.7, 0.5 ), \ irit.ctlpt( irit.E3, 0.1, 1.2, 1 ), \ irit.ctlpt( irit.E3, 0, 2, 0.5 ) ), irit.list( \ irit.ctlpt( irit.E3, 1.1, 0, 0.5 ), \ irit.ctlpt( irit.E3, 1.3, 1, 0 ), \ irit.ctlpt( irit.E3, 1.1, 1.3, 0.5 ), \ irit.ctlpt( irit.E3, 1, 2, 0.5 ) ), irit.list( \
irit.ctlpt( irit.E3, 0.25, 1, 1 ), \ irit.ctlpt( irit.E3, 0.5, 0.25, 2 ) ), irit.list( \ irit.ctlpt( irit.E3, 0.5, (-1 ), 3 ), \ irit.ctlpt( irit.E3, 0.75, 0.25, 4 ), \ irit.ctlpt( irit.E3, 1, (-0.5 ), 5 ) ), irit.list( \ irit.ctlpt( irit.E3, 1, 0, 6 ), \ irit.ctlpt( irit.E3, 1.25, 1, 7 ), \ irit.ctlpt( irit.E3, 1.3, 0.25, 8 ) ) ) ) irit.attrib(s, "color", irit.GenRealObject(7)) irit.attrib(s, "rgb", irit.GenStrObject("244,164,96")) s3 = irit.sbspline( 3, 3, irit.list( irit.list( irit.ctlpt( irit.E3, 0, 0, 0 ), \ irit.ctlpt( irit.E3, 0.25, 1, 1 ), \ irit.ctlpt( irit.E3, 0.5, 0.25, 2 ) ), irit.list( \ irit.ctlpt( irit.E3, 0.5, (-1 ), 3 ), \ irit.ctlpt( irit.E3, 0.75, 0.25, 4 ), \ irit.ctlpt( irit.E3, 1, (-0.5 ), 5 ) ), irit.list( \ irit.ctlpt( irit.E3, 1, 0, 6 ), \ irit.ctlpt( irit.E3, 1.25, 1, 7 ), \ irit.ctlpt( irit.E3, 1.3, 0.25, 8 ) ) ), irit.list( irit.list( irit.KV_PERIODIC ), irit.list( irit.KV_PERIODIC ) ) ) ms = irit.mbezier( irit.list( 3, 3 ), irit.list( irit.ctlpt( irit.E3, 0, 0, 0 ), \ irit.ctlpt( irit.E3, 0.25, 1, 1 ), \ irit.ctlpt( irit.E3, 0.5, 0.25, 2 ), \ irit.ctlpt( irit.E3, 0.5, (-1 ), 3 ), \ irit.ctlpt( irit.E3, 0.75, 0.25, 4 ), \ irit.ctlpt( irit.E3, 1, (-0.5 ), 5 ), \ irit.ctlpt( irit.E3, 1, 0, 6 ), \ irit.ctlpt( irit.E3, 1.25, 1, 7 ), \ irit.ctlpt( irit.E3, 1.3, 0.25, 8 ) ) )
irit.ctlpt( irit.E3, 2.1, 0, 2 ), \ irit.ctlpt( irit.E3, 2.3, 1, 0 ), \ irit.ctlpt( irit.E3, 2, 2, 2 ) ), irit.list( \ irit.ctlpt( irit.E3, 3.1, 0, 0 ), \ irit.ctlpt( irit.E3, 3.3, 1, 2 ), \ irit.ctlpt( irit.E3, 3, 2, 0 ) ), irit.list( \ irit.ctlpt( irit.E3, 4.1, 0, 1 ), \ irit.ctlpt( irit.E3, 4.3, 1, 0 ), \ irit.ctlpt( irit.E3, 4, 2, 1 ) ) ) cb = irit.cbspline(3, cbsp, irit.list(0, 0, 0, 1, 1, 1)) * irit.scale( (0.7, 1.4, 1)) irit.free(cbsp) irit.color(cb, irit.RED) sb = irit.sbspline( 3, 3, sbsp, irit.list( irit.list( 1, 1, 1, 2, 2, 2 ),\ irit.list( 3, 3, 3, 4, 5, 6,\ 6, 6 ) ) ) irit.color(sb, irit.RED) irit.save( "bspline1", irit.list(irit.fforder(cb), irit.ffmsize(cb), irit.ffkntvec(cb), irit.ffctlpts(cb), irit.fforder(sb), irit.ffmsize(sb), irit.ffkntvec(sb), irit.ffctlpts(sb))) if (display == 1): irit.interact(irit.list(irit.GetAxes(), cb, sb)) irit.viewstate("dsrfmesh", 1) irit.pause() irit.viewstate("dsrfmesh", 0) irit.pause()
handle = (-irit.sbspline( 4, 4, irit.list( irit.list( irit.ctlpt( irit.E3, (-1.595 ), 1.875, 0 ), \ irit.ctlpt( irit.E3, (-2.295 ), 1.875, 0 ), \ irit.ctlpt( irit.E3, (-2.695 ), 1.875, 0 ), \ irit.ctlpt( irit.E3, (-2.695 ), 1.65, 0 ), \ irit.ctlpt( irit.E3, (-2.695 ), 1.425, 0 ), \ irit.ctlpt( irit.E3, (-2.495 ), 0.975, 0 ), \ irit.ctlpt( irit.E3, (-1.995 ), 0.75, 0 ) ), irit.list( \ irit.ctlpt( irit.E3, (-1.595 ), 1.875, 0.3 ), \ irit.ctlpt( irit.E3, (-2.295 ), 1.875, 0.3 ), \ irit.ctlpt( irit.E3, (-2.695 ), 1.875, 0.3 ), \ irit.ctlpt( irit.E3, (-2.695 ), 1.65, 0.3 ), \ irit.ctlpt( irit.E3, (-2.695 ), 1.425, 0.3 ), \ irit.ctlpt( irit.E3, (-2.495 ), 0.975, 0.3 ), \ irit.ctlpt( irit.E3, (-1.995 ), 0.75, 0.3 ) ), irit.list( \ irit.ctlpt( irit.E3, (-1.495 ), 2.1, 0.3 ), \ irit.ctlpt( irit.E3, (-2.495 ), 2.1, 0.3 ), \ irit.ctlpt( irit.E3, (-2.995 ), 2.1, 0.3 ), \ irit.ctlpt( irit.E3, (-2.995 ), 1.65, 0.3 ), \ irit.ctlpt( irit.E3, (-2.995 ), 1.2, 0.3 ), \ irit.ctlpt( irit.E3, (-2.645 ), 0.7875, 0.3 ), \ irit.ctlpt( irit.E3, (-1.895 ), 0.45, 0.3 ) ), irit.list( \ irit.ctlpt( irit.E3, (-1.495 ), 2.1, 0 ), \ irit.ctlpt( irit.E3, (-2.495 ), 2.1, 0 ), \ irit.ctlpt( irit.E3, (-2.995 ), 2.1, 0 ), \ irit.ctlpt( irit.E3, (-2.995 ), 1.65, 0 ), \ irit.ctlpt( irit.E3, (-2.995 ), 1.2, 0 ), \ irit.ctlpt( irit.E3, (-2.645 ), 0.7875, 0 ), \ irit.ctlpt( irit.E3, (-1.895 ), 0.45, 0 ) ), irit.list( \ irit.ctlpt( irit.E3, (-1.495 ), 2.1, (-0.3 ) ), \ irit.ctlpt( irit.E3, (-2.495 ), 2.1, (-0.3 ) ), \ irit.ctlpt( irit.E3, (-2.995 ), 2.1, (-0.3 ) ), \ irit.ctlpt( irit.E3, (-2.995 ), 1.65, (-0.3 ) ), \ irit.ctlpt( irit.E3, (-2.995 ), 1.2, (-0.3 ) ), \ irit.ctlpt( irit.E3, (-2.645 ), 0.7875, (-0.3 ) ), \ irit.ctlpt( irit.E3, (-1.895 ), 0.45, (-0.3 ) ) ), irit.list( \ irit.ctlpt( irit.E3, (-1.595 ), 1.875, (-0.3 ) ), \ irit.ctlpt( irit.E3, (-2.295 ), 1.875, (-0.3 ) ), \ irit.ctlpt( irit.E3, (-2.695 ), 1.875, (-0.3 ) ), \ irit.ctlpt( irit.E3, (-2.695 ), 1.65, (-0.3 ) ), \ irit.ctlpt( irit.E3, (-2.695 ), 1.425, (-0.3 ) ), \ irit.ctlpt( irit.E3, (-2.495 ), 0.975, (-0.3 ) ), \ irit.ctlpt( irit.E3, (-1.995 ), 0.75, (-0.3 ) ) ), irit.list( \ irit.ctlpt( irit.E3, (-1.595 ), 1.875, 0 ), \ irit.ctlpt( irit.E3, (-2.295 ), 1.875, 0 ), \ irit.ctlpt( irit.E3, (-2.695 ), 1.875, 0 ), \ irit.ctlpt( irit.E3, (-2.695 ), 1.65, 0 ), \ irit.ctlpt( irit.E3, (-2.695 ), 1.425, 0 ), \ irit.ctlpt( irit.E3, (-2.495 ), 0.975, 0 ), \ irit.ctlpt( irit.E3, (-1.995 ), 0.75, 0 ) ) ), irit.list( irit.list( 0, 0, 0, 0, 1, 1,\ 1, 2, 2, 2, 2 ), irit.list( 0, 0, 0, 0, 1, 1,\ 1, 2, 2, 2, 2 ) ) ) ) * irit.tx( 2.5 ) * irit.ty( (-1 ) )
s45 = math.sin( math.pi/4 ) cbzr = irit.list( irit.ctlpt( irit.P2, 1, 1, 0 ), \ irit.ctlpt( irit.P2, s45, s45, s45 ), \ irit.ctlpt( irit.P2, 1, 0, 1 ) ) sbsp = irit.list( irit.list( irit.ctlpt( irit.E3, 0.1, 0, 1 ), \ irit.ctlpt( irit.E3, 0.3, 1, 0 ), \ irit.ctlpt( irit.E3, 0, 2, 1 ) ), irit.list( \ irit.ctlpt( irit.E3, 3.1, 0, 0 ), \ irit.ctlpt( irit.E3, 3.3, 1, 2 ), \ irit.ctlpt( irit.E3, 3, 2, 0 ) ), irit.list( \ irit.ctlpt( irit.E3, 4.1, 0, 1 ), \ irit.ctlpt( irit.E3, 4.3, 1, 0 ), \ irit.ctlpt( irit.E3, 4, 2, 1 ) ) ) cb = irit.cbezier( cbzr ) sb = irit.sbspline( 3, 3, sbsp, irit.list( irit.list( 1, 1, 1, 2, 2, 2 ),\ irit.list( irit.KV_OPEN ) ) ) irit.free( cbzr ) irit.free( sbsp ) tb = irit.tfromsrfs( irit.list( irit.srefine( sb, irit.ROW, 0, irit.list( 0.3, 0.6 ) ), irit.sraise( sb, irit.ROW, 4 ) * irit.tz( 1 ) ), 2, irit.KV_OPEN ) mb = irit.coerce( tb, irit.MULTIVAR_TYPE ) irit.snoc( irit.coord( cb, 1 ), results ) irit.snoc( irit.coord( sb, 0 ), results ) irit.snoc( irit.coord( sb, 1 ), results ) irit.snoc( irit.coord( sb, 8 ), results ) irit.snoc( irit.coord( tb, 0 ), results ) irit.snoc( irit.coord( tb, 3 ), results ) irit.snoc( irit.coord( tb, 47 ), results ) irit.snoc( irit.coord( mb, 1 ), results ) irit.snoc( irit.coord( mb, 15 ), results )
# # Simple polynomial surface. # sbsp = irit.list( irit.list( irit.ctlpt( irit.E3, 0, 0, 1 ), \ irit.ctlpt( irit.E3, 0, 1, 0.8 ), \ irit.ctlpt( irit.E3, 0, 2.1, 1 ) ), irit.list( \ irit.ctlpt( irit.E3, 1, 0, 2 ), \ irit.ctlpt( irit.E3, 1.1, 1, 1 ), \ irit.ctlpt( irit.E3, 1, 2.1, 2 ) ), irit.list( \ irit.ctlpt( irit.E3, 2, 0, 1 ), \ irit.ctlpt( irit.E3, 2, 1, 0.8 ), \ irit.ctlpt( irit.E3, 2, 2.1, 1 ) ), irit.list( \ irit.ctlpt( irit.E3, 3, 0, 2 ), \ irit.ctlpt( irit.E3, 3.1, 1, 1.8 ), \ irit.ctlpt( irit.E3, 3, 2.1, 2 ) ) ) s = irit.sbspline(3, 4, sbsp, irit.list(irit.list(irit.KV_OPEN), irit.list(irit.KV_OPEN))) irit.color(s, irit.WHITE) irit.free(sbsp) dus = irit.sderive(s, irit.ROW) * irit.scale((0.5, 0.5, 0.5)) irit.color(dus, irit.GREEN) dvs = irit.sderive(s, irit.COL) * irit.scale((0.5, 0.5, 0.5)) irit.color(dvs, irit.MAGENTA) if (display == 1): irit.viewobj(irit.GetAxes()) irit.viewstate("dsrfmesh", 1) irit.interact(irit.list(irit.GetAxes(), s, dus, dvs)) irit.viewstate("dsrfmesh", 0) ns = irit.snrmlsrf(s) * irit.scale((0.3, 0.3, 0.3)) irit.color(ns, irit.GREEN)
# ############################################################################ s1 = irit.sbspline( 4, 4, irit.list( irit.list( irit.ctlpt( irit.E3, (-1 ), (-1 ), 0 ), \ irit.ctlpt( irit.E2, (-0.6667 ), (-1 ) ), \ irit.ctlpt( irit.E2, 0, (-1 ) ), \ irit.ctlpt( irit.E2, 0.6667, (-1 ) ), \ irit.ctlpt( irit.E2, 1, (-1 ) ) ), irit.list( \ irit.ctlpt( irit.E3, (-1.026 ), (-0.1631 ), 0.8864 ), \ irit.ctlpt( irit.E3, (-0.4817 ), (-0.5642 ), 0.176 ), \ irit.ctlpt( irit.E3, (-0.03526 ), (-0.595 ), 0.1037 ), \ irit.ctlpt( irit.E3, 0.6046, (-0.05832 ), 1.267 ), \ irit.ctlpt( irit.E3, 1.01, (-0.1999 ), 0.929 ) ), irit.list( \ irit.ctlpt( irit.E3, (-1.083 ), 0.377, 0.8322 ), \ irit.ctlpt( irit.E3, (-0.6685 ), 0.5344, 1.272 ), \ irit.ctlpt( irit.E1, 0 ), \ irit.ctlpt( irit.E3, 0.6425, 0.5309, 1.208 ), \ irit.ctlpt( irit.E3, 1.045, 0.41, 0.8736 ) ), irit.list( \ irit.ctlpt( irit.E3, (-1.108 ), 0.8457, 0.5472 ), \ irit.ctlpt( irit.E3, (-0.6899 ), 0.8424, 0.4805 ), \ irit.ctlpt( irit.E2, 0, 0.6667 ), \ irit.ctlpt( irit.E2, 0.6667, 0.6667 ), \ irit.ctlpt( irit.E2, 1, 0.6667 ) ), irit.list( \ irit.ctlpt( irit.E3, (-1.125 ), 0.8487, (-0.1662 ) ), \ irit.ctlpt( irit.E3, (-0.4435 ), 1.007, (-0.05021 ) ), \ irit.ctlpt( irit.E2, 0, 1 ), \ irit.ctlpt( irit.E2, 0.6667, 1 ), \ irit.ctlpt( irit.E2, 1, 1 ) ) ), irit.list( irit.list( irit.KV_OPEN ), irit.list( irit.KV_OPEN ) ) ) irit.attrib(s1, "transp", irit.GenRealObject(0.5)) parab = irit.sparabolc(s1, 1)