irit.attrib( prmdomain, "transp", irit.GenRealObject(0.8 )) all = irit.list( warpedteapot, prmdomain ) * irit.rx( 90 ) * irit.ry( 20 ) * irit.rx( 10 ) * irit.sc( 0.5 ) interact( irit.list( all, irit.GetViewMatrix() ) ) irit.save( "warp2trv", all ) # ############################################################################ # # Let the Genie come out of the teapot... # teapot = teapotorig * irit.sc( 0.2 ) * irit.sx( (-1 ) ) * irit.rx( 90 ) * irit.rz( 180 ) s = irit.planesrf( (-1 ), (-1 ), 1, 1 ) * irit.sc( 1.7 ) discs = irit.list( s * irit.sc( 0.01 ) * irit.sx( 2 ) * irit.tx( 0.58 ) * irit.tz( 0.42 ), s * irit.sc( 0.01 ) * irit.sx( 2 ) * irit.tx( 0.62 ) * irit.tz( 0.46 ), s * irit.sc( 0.05 ) * irit.sx( 1.5 ) * irit.tx( 0.65 ) * irit.tz( 0.55 ), s * irit.sc( 0.07 ) * irit.sx( 1.5 ) * irit.tx( 0.7 ) * irit.tz( 0.7 ), s * irit.sc( 0.09 ) * irit.sx( 1.5 ) * irit.tx( 0.65 ) * irit.tz( 0.85 ), s * irit.sc( 0.08 ) * irit.sx( 1.5 ) * irit.tx( 0.7 ) * irit.tz( 1 ), s * irit.sc( 0.07 ) * irit.tx( 0.7 ) * irit.tz( 1.1 ) ) tv = irit.tfromsrfs( discs, 3, irit.KV_OPEN ) # Create a refined cylinder to warp out of the teapot... c = irit.creparam( irit.pcircle( ( 0.5, 0.5, 0.001 ), 0.45 ), 0, 1 ) srf = irit.extrude( c, ( 0, 0, 0.99 ), 0 ) srf = irit.srefine( irit.srefine( srf, irit.COL, 0, irit.list( 0.1, 0.2, 0.3, 0.4, 0.6, 0.7,\ 0.8, 0.9 ) ), irit.ROW, 0, irit.list( 0.1, 0.2, 0.3, 0.4, 0.5, 0.6,\ 0.7, 0.8, 0.9 ) ) warpedsrf = warpsurface( (-srf ), tv ) irit.attrib( warpedsrf, "ptexture", irit.GenStrObject("g.gif" )) irit.view( irit.list( teapot, warpedsrf ), irit.ON )
antantenna() * irit.ry((-110)) * irit.trans(((-0.02), 0.2, 1.6)), antantenna() * irit.ry((-70)) * irit.trans((0.02, 0.2, 1.6))) irit.attrprop(antennas, "u_resolution", irit.GenRealObject(0.2)) body = (body + irit.gpolygon(llegs, 1) + irit.gpolygon(llegs, 1) * irit.sx( (-1)) + irit.gpolygon(antennas, 1)) irit.attrib(body, "rgb", irit.GenStrObject("255,50,50")) irit.SetResolution(save_res) retval = irit.list( body, eyes) * irit.sz(1.3) * irit.sc(1) * irit.ty(0.28785) * irit.rx(90) return retval # ############################################################################ b = (-irit.planesrf((-6), (-6), 6, 6)) all = irit.list(irit.planesrf(6, 6, (-6), (-6)), ant(1)) irit.view(all, irit.ON) irit.save("ant.itd.gz", all) # ############################################################################ # # s: 1 or -1 based on leg timing. # def antlleganim(s): retval = antleg()
retval = warppoly(obj, tv) else: retval = obj * irit.tx(0) return retval # # Define the FFD trivariate # teapot = teapotorig * \ irit.sc( 0.2 ) * \ irit.sx( (-1 ) ) * \ irit.rx( 90 ) * \ irit.rz( 180 ) s = irit.planesrf((-1), (-1), 1, 1) * irit.sc(2.4) discs = irit.list( s * \ irit.sc( 0.02 ) * \ irit.sx( 2 ) * \ irit.tx( 0.56 ) * \ irit.tz( 0.42 ), s * \ irit.sc( 0.02 ) * \ irit.sx( 2 ) * \ irit.trans( ( 0.66, 0, 0.5 ) ), s * \ irit.sc( 0.04 ) * \ irit.sx( 1.5 ) * \ irit.trans( ( 0.66, 0, 0.7 ) ), s * \ irit.sc( 0.15 ) * \
cross = (irit.arc((0.2, 0, 0), (0.2, 0.2, 0), (0, 0.2, 0)) + irit.arc( (0, 0.4, 0), (0.1, 0.4, 0), (0.1, 0.5, 0)) + irit.arc( (0.8, 0.5, 0), (0.8, 0.3, 0), (1, 0.3, 0)) + irit.arc( (1, 0.1, 0), (0.9, 0.1, 0), (0.9, 0, 0)) + irit.ctlpt(irit.E2, 0.2, 0)) crossply = irit.cnvrtcrvtopolygon(cross, 50, 0) cyl = irit.extrude(crossply, (0, 0, 1), 3) irit.interact(irit.list(cyl, crossply, cross)) irit.save("macros6", irit.list(cyl, crossply, cross)) irit.free(crossply) irit.free(cross) irit.free(cyl) s = irit.planesrf((-1), (-1), 1, 1) irit.interact(s) s1 = irit.spheresrf(0.4) irit.interact(s1) s2 = irit.spheresrf(0.7) irit.interact(s2) s3 = irit.torussrf(0.5, 0.4) irit.interact(s3) s4 = irit.torussrf(0.5, 0.05) irit.interact(s4) s5 = irit.cylinsrf(0.5, 0.4) irit.interact(s5) s6 = irit.cylinsrf(0.5, 0.05)
# # A cone: returned is (Error, Xapex, Yapex, Zapex, angle, # Xdir, Ydir, Zdir) # x1 = irit.maxedgelen( irit.triangl( irit.con2( ( 0, 0, 0 ), ( 0, 0, 1 ), 1, 2, 0 ),\ 1 ), 0.3 ) x2 = irit.maxedgelen( irit.triangl( irit.con2( ( (-1 ), 1.2, (-0.5 ) ), ( 2, 1, 1 ), 0.5, 0, 0 ),\ 1 ), 0.3 ) conefit = irit.list(irit.fitpmodel(x1, 4, 0.001, 30), irit.fitpmodel(x2, 4, 1e-005, 30)) # # Planar fit: return is (Error, A, B, C, D) # x1 = irit.triangl(irit.gpolygon(irit.planesrf(0, 0, 1, 1), 1), 1) x1 = irit.maxedgelen(x1, 0.2) x2 = x1 * irit.rx(45) irit.view(irit.list(irit.GetAxes(), x2), irit.ON) planefit = irit.list(irit.fitpmodel(x1, 0, 1e-005, 100), irit.fitpmodel(x2, 0, 1e-005, 100)) # # Some a larger test on planes # x1 = irit.nil() i = 0 while (i <= 2):
irit.color(s1, irit.RED) irit.color(s2, irit.GREEN) i = testinter(s1, s2) all = irit.list(s1, s2, i) irit.interact(all) irit.save("ssi17", all) # # 18. Simple plane intersection (a test with an E2 surface). # s1 = irit.planesrf(0, 0, 4, 4) s2 = s2 * irit.tz((-0.7)) irit.color(s1, irit.RED) irit.color(s2, irit.GREEN) i = testinter(s1, s2) all = irit.list(s1, s2, i) irit.interact(all) irit.save("ssi18", all) # # 19. This is between two quadratic Bspline surfaces. #